Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// for this example we will enable runtime data checking even in production mode
setGlobalConfig({
modelAutoTypeChecking: ModelAutoTypeCheckingMode.AlwaysOn,
})
// the model decorator marks this class as a model, an object with actions, etc.
// the string identifies this model type and must be unique across your whole application
@model("todoSample/Todo")
export class Todo extends Model({
// here we define the type of the model data, which is observable and snapshottable
// and also part of the required initialization data of the model
// in this case we use runtime type checking,
id: tProp(types.string, () => uuid.v4()), // an optional string that will use a random id when not provided
text: tProp(types.string), // a required string
done: tProp(types.boolean, false), // an optional boolean that will default to false
// if we didn't require runtime type checking we could do this
// id: prop(() => uuid.v4())
// text: prop(),
// done: prop(false)
}) {
// the modelAction decorator marks the function as a model action, giving it access
// to modify any model data and other superpowers such as action
// middlewares, replication, etc.
@modelAction
setDone(done: boolean) {
this.done = done
}
@modelAction
setText(text: string) {