@jbrowse/mobx-state-tree 5.6.9 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/action.js.map +1 -1
- package/dist/core/actionContext.js.map +1 -1
- package/dist/core/flow.js.map +1 -1
- package/dist/core/json-patch.js.map +1 -1
- package/dist/core/mst-operations.js.map +1 -1
- package/dist/core/node/BaseNode.js.map +1 -1
- package/dist/core/node/Hook.js.map +1 -1
- package/dist/core/node/create-node.js.map +1 -1
- package/dist/core/node/identifier-cache.js.map +1 -1
- package/dist/core/node/livelinessChecking.js.map +1 -1
- package/dist/core/node/node-utils.js.map +1 -1
- package/dist/core/node/object-node.d.ts +3 -1
- package/dist/core/node/object-node.js +2 -1
- package/dist/core/node/object-node.js.map +1 -1
- package/dist/core/node/scalar-node.d.ts +3 -1
- package/dist/core/node/scalar-node.js +2 -1
- package/dist/core/node/scalar-node.js.map +1 -1
- package/dist/core/process.js.map +1 -1
- package/dist/core/type/type-checker.js.map +1 -1
- package/dist/core/type/type.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/middlewares/create-action-tracking-middleware.js.map +1 -1
- package/dist/middlewares/createActionTrackingMiddleware2.js.map +1 -1
- package/dist/middlewares/on-action.js.map +1 -1
- package/dist/package.json +1 -0
- package/dist/types/complex-types/array.d.ts +2 -1
- package/dist/types/complex-types/array.js +2 -1
- package/dist/types/complex-types/array.js.map +1 -1
- package/dist/types/complex-types/map.d.ts +2 -1
- package/dist/types/complex-types/map.js +2 -1
- package/dist/types/complex-types/map.js.map +1 -1
- package/dist/types/complex-types/model.d.ts +2 -1
- package/dist/types/complex-types/model.js +2 -1
- package/dist/types/complex-types/model.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/primitives.d.ts +2 -1
- package/dist/types/primitives.js +2 -1
- package/dist/types/primitives.js.map +1 -1
- package/dist/types/utility-types/custom.d.ts +2 -1
- package/dist/types/utility-types/custom.js +2 -1
- package/dist/types/utility-types/custom.js.map +1 -1
- package/dist/types/utility-types/enumeration.js.map +1 -1
- package/dist/types/utility-types/frozen.d.ts +2 -1
- package/dist/types/utility-types/frozen.js +2 -1
- package/dist/types/utility-types/frozen.js.map +1 -1
- package/dist/types/utility-types/identifier.d.ts +2 -1
- package/dist/types/utility-types/identifier.js +2 -1
- package/dist/types/utility-types/identifier.js.map +1 -1
- package/dist/types/utility-types/late.js +2 -1
- package/dist/types/utility-types/late.js.map +1 -1
- package/dist/types/utility-types/lazy.d.ts +2 -1
- package/dist/types/utility-types/lazy.js +2 -1
- package/dist/types/utility-types/lazy.js.map +1 -1
- package/dist/types/utility-types/literal.d.ts +2 -1
- package/dist/types/utility-types/literal.js +2 -1
- package/dist/types/utility-types/literal.js.map +1 -1
- package/dist/types/utility-types/maybe.js.map +1 -1
- package/dist/types/utility-types/optional.d.ts +2 -1
- package/dist/types/utility-types/optional.js +2 -1
- package/dist/types/utility-types/optional.js.map +1 -1
- package/dist/types/utility-types/reference.d.ts +2 -1
- package/dist/types/utility-types/reference.js +2 -1
- package/dist/types/utility-types/reference.js.map +1 -1
- package/dist/types/utility-types/refinement.js +2 -1
- package/dist/types/utility-types/refinement.js.map +1 -1
- package/dist/types/utility-types/resilient.js +2 -1
- package/dist/types/utility-types/resilient.js.map +1 -1
- package/dist/types/utility-types/snapshotProcessor.js +3 -2
- package/dist/types/utility-types/snapshotProcessor.js.map +1 -1
- package/dist/types/utility-types/union.d.ts +2 -1
- package/dist/types/utility-types/union.js +2 -1
- package/dist/types/utility-types/union.js.map +1 -1
- package/dist/utils.js.map +1 -1
- package/esm/core/action.d.ts +87 -0
- package/esm/core/action.js +219 -0
- package/esm/core/action.js.map +1 -0
- package/esm/core/actionContext.d.ts +27 -0
- package/esm/core/actionContext.js +37 -0
- package/esm/core/actionContext.js.map +1 -0
- package/esm/core/flow.d.ts +69 -0
- package/esm/core/flow.js +173 -0
- package/esm/core/flow.js.map +1 -0
- package/esm/core/json-patch.d.ts +46 -0
- package/esm/core/json-patch.js +125 -0
- package/esm/core/json-patch.js.map +1 -0
- package/esm/core/mst-operations.d.ts +459 -0
- package/esm/core/mst-operations.js +844 -0
- package/esm/core/mst-operations.js.map +1 -0
- package/esm/core/node/BaseNode.d.ts +62 -0
- package/esm/core/node/BaseNode.js +148 -0
- package/esm/core/node/BaseNode.js.map +1 -0
- package/esm/core/node/Hook.d.ts +17 -0
- package/esm/core/node/Hook.js +12 -0
- package/esm/core/node/Hook.js.map +1 -0
- package/esm/core/node/create-node.d.ts +16 -0
- package/esm/core/node/create-node.js +36 -0
- package/esm/core/node/create-node.js.map +1 -0
- package/esm/core/node/identifier-cache.d.ts +19 -0
- package/esm/core/node/identifier-cache.js +111 -0
- package/esm/core/node/identifier-cache.js.map +1 -0
- package/esm/core/node/livelinessChecking.d.ts +37 -0
- package/esm/core/node/livelinessChecking.js +33 -0
- package/esm/core/node/livelinessChecking.js.map +1 -0
- package/esm/core/node/node-utils.d.ts +83 -0
- package/esm/core/node/node-utils.js +153 -0
- package/esm/core/node/node-utils.js.map +1 -0
- package/esm/core/node/object-node.d.ts +101 -0
- package/esm/core/node/object-node.js +542 -0
- package/esm/core/node/object-node.js.map +1 -0
- package/esm/core/node/scalar-node.d.ts +21 -0
- package/esm/core/node/scalar-node.js +86 -0
- package/esm/core/node/scalar-node.js.map +1 -0
- package/esm/core/process.d.ts +50 -0
- package/esm/core/process.js +35 -0
- package/esm/core/process.js.map +1 -0
- package/esm/core/type/type-checker.d.ts +69 -0
- package/esm/core/type/type-checker.js +144 -0
- package/esm/core/type/type-checker.js.map +1 -0
- package/esm/core/type/type.d.ts +317 -0
- package/esm/core/type/type.js +243 -0
- package/esm/core/type/type.js.map +1 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -0
- package/esm/internal.d.ts +39 -0
- package/esm/internal.js +44 -0
- package/esm/internal.js.map +1 -0
- package/esm/middlewares/create-action-tracking-middleware.d.ts +24 -0
- package/esm/middlewares/create-action-tracking-middleware.js +78 -0
- package/esm/middlewares/create-action-tracking-middleware.js.map +1 -0
- package/esm/middlewares/createActionTrackingMiddleware2.d.ts +34 -0
- package/esm/middlewares/createActionTrackingMiddleware2.js +130 -0
- package/esm/middlewares/createActionTrackingMiddleware2.js.map +1 -0
- package/esm/middlewares/on-action.d.ts +87 -0
- package/esm/middlewares/on-action.js +210 -0
- package/esm/middlewares/on-action.js.map +1 -0
- package/esm/types/complex-types/array.d.ts +81 -0
- package/esm/types/complex-types/array.js +347 -0
- package/esm/types/complex-types/array.js.map +1 -0
- package/esm/types/complex-types/map.d.ts +111 -0
- package/esm/types/complex-types/map.js +356 -0
- package/esm/types/complex-types/map.js.map +1 -0
- package/esm/types/complex-types/model.d.ts +193 -0
- package/esm/types/complex-types/model.js +471 -0
- package/esm/types/complex-types/model.js.map +1 -0
- package/esm/types/index.d.ts +33 -0
- package/esm/types/index.js +35 -0
- package/esm/types/index.js.map +1 -0
- package/esm/types/primitives.d.ts +125 -0
- package/esm/types/primitives.js +177 -0
- package/esm/types/primitives.js.map +1 -0
- package/esm/types/utility-types/custom.d.ts +75 -0
- package/esm/types/utility-types/custom.js +106 -0
- package/esm/types/utility-types/custom.js.map +1 -0
- package/esm/types/utility-types/enumeration.d.ts +5 -0
- package/esm/types/utility-types/enumeration.js +31 -0
- package/esm/types/utility-types/enumeration.js.map +1 -0
- package/esm/types/utility-types/frozen.d.ts +24 -0
- package/esm/types/utility-types/frozen.js +92 -0
- package/esm/types/utility-types/frozen.js.map +1 -0
- package/esm/types/utility-types/identifier.d.ts +87 -0
- package/esm/types/utility-types/identifier.js +121 -0
- package/esm/types/utility-types/identifier.js.map +1 -0
- package/esm/types/utility-types/late.d.ts +10 -0
- package/esm/types/utility-types/late.js +106 -0
- package/esm/types/utility-types/late.js.map +1 -0
- package/esm/types/utility-types/lazy.d.ts +23 -0
- package/esm/types/utility-types/lazy.js +72 -0
- package/esm/types/utility-types/lazy.js.map +1 -0
- package/esm/types/utility-types/literal.d.ts +38 -0
- package/esm/types/utility-types/literal.js +58 -0
- package/esm/types/utility-types/literal.js.map +1 -0
- package/esm/types/utility-types/maybe.d.ts +26 -0
- package/esm/types/utility-types/maybe.js +26 -0
- package/esm/types/utility-types/maybe.js.map +1 -0
- package/esm/types/utility-types/optional.d.ts +42 -0
- package/esm/types/utility-types/optional.js +135 -0
- package/esm/types/utility-types/optional.js.map +1 -0
- package/esm/types/utility-types/reference.d.ts +90 -0
- package/esm/types/utility-types/reference.js +383 -0
- package/esm/types/utility-types/reference.js.map +1 -0
- package/esm/types/utility-types/refinement.d.ts +10 -0
- package/esm/types/utility-types/refinement.js +82 -0
- package/esm/types/utility-types/refinement.js.map +1 -0
- package/esm/types/utility-types/resilient.d.ts +18 -0
- package/esm/types/utility-types/resilient.js +118 -0
- package/esm/types/utility-types/resilient.js.map +1 -0
- package/esm/types/utility-types/snapshotProcessor.d.ts +63 -0
- package/esm/types/utility-types/snapshotProcessor.js +159 -0
- package/esm/types/utility-types/snapshotProcessor.js.map +1 -0
- package/esm/types/utility-types/union.d.ts +78 -0
- package/esm/types/utility-types/union.js +240 -0
- package/esm/types/utility-types/union.js.map +1 -0
- package/esm/utils.d.ts +230 -0
- package/esm/utils.js +449 -0
- package/esm/utils.js.map +1 -0
- package/package.json +23 -22
- package/dist/mobx-state-tree.js +0 -85
- package/dist/mobx-state-tree.module.js +0 -83
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/types/utility-types/optional.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/types/utility-types/optional.ts"],"names":[],"mappings":";;;AAgOA,4BAeC;AAWD,wCAEC;AA5PD,qDAAkD;AAClD,mDAe0B;AAY1B;;;GAGG;AACH,MAAa,aAGX,SAAQ,kBAIT;IAMoB;IACA;IAIR;IAVX,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,uBAAS,CAAC,QAAQ,CAAA;IACjD,CAAC;IAED,YACmB,QAAY,EACZ,aAGhB,EACQ,cAA4B;QAErC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAPH,aAAQ,GAAR,QAAQ,CAAI;QACZ,kBAAa,GAAb,aAAa,CAG7B;QACQ,mBAAc,GAAd,cAAc,CAAc;IAGvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAA;IACvC,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAmC;QAEnC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,yBAAyB,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAA;YACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAC9B,MAAM,EACN,OAAO,EACP,WAAW,EACX,yBAAyB,CAC1B,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAC9E,CAAC;IAED,SAAS,CACP,OAAkB,EAClB,QAA+B,EAC/B,MAAqB,EACrB,OAAe;QAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAC5B,OAAO,EACP,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC;YACrE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,EACvC,MAAM,EACN,OAAO,CACR,CAAA;IACH,CAAC;IAED,4BAA4B;QAC1B,MAAM,yBAAyB,GAC7B,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU;YACtC,CAAC,CAAE,IAAI,CAAC,aAAwD,EAAE;YAClE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAA;QAExB,0EAA0E;QAC1E,4DAA4D;QAC5D,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAA,+BAAiB,EAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,yBAAyB,CAAA;IAClC,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,OAA2B;QAE3B,kCAAkC;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAA,8BAAgB,GAAE,CAAA;QAC3B,CAAC;QACD,oCAAoC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,gBAAgB,CAAC,IAAc;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AA/FD,sCA+FC;AAkBD,SAAS,0BAA0B,CACjC,IAAc,EACd,sBAA0D;IAE1D,2CAA2C;IAC3C,IACE,OAAO,sBAAsB,KAAK,UAAU;QAC5C,IAAA,6BAAe,EAAC,sBAAsB,CAAC,EACvC,CAAC;QACD,MAAM,IAAA,kBAAI,EACR,8GAA8G,CAC/G,CAAA;IACH,CAAC;IACD,IAAA,0BAAY,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACrB,IAAI,IAAA,qBAAO,GAAE,EAAE,CAAC;QACd,2DAA2D;QAC3D,+EAA+E;QAC/E,4GAA4G;QAC5G,oCAAoC;QACpC,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE,CAAC;YACjD,IAAA,+BAAiB,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,QAAQ,CAItB,IAAQ,EACR,sBAA0D,EAC1D,cAA6B;IAE7B,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IAExD,OAAO,IAAI,aAAa,CACtB,IAAI,EACJ,sBAAsB,EACtB,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAC5D,CAAA;AACH,CAAC;AAED,MAAM,yBAAyB,GAAgB,CAAC,SAAS,CAAC,CAAA;AAE1D;;;;;;GAMG;AACH,SAAgB,cAAc,CAAsB,IAAQ;IAC1D,OAAO,IAAA,oBAAM,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,uBAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC","sourcesContent":["import { BaseType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractCSTWithSTN,\n type IAnyType,\n type IType,\n type IValidationContext,\n type IValidationResult,\n TypeFlags,\n assertIsType,\n devMode,\n fail,\n isStateTreeNode,\n isType,\n typeCheckSuccess,\n typecheckInternal\n} from \"../../internal.ts\"\n\ntype IFunctionReturn<T> = () => T\n\ntype IOptionalValue<C, T> = C | IFunctionReturn<C | T>\n\n/** @hidden */\nexport type ValidOptionalValue = string | boolean | number | null | undefined\n\n/** @hidden */\nexport type ValidOptionalValues = [ValidOptionalValue, ...ValidOptionalValue[]]\n\n/**\n * @hidden\n * @internal\n */\nexport class OptionalValue<\n IT extends IAnyType,\n OptionalVals extends ValidOptionalValues\n> extends BaseType<\n IT[\"CreationType\"] | OptionalVals[number],\n IT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"]\n> {\n get flags() {\n return this._subtype.flags | TypeFlags.Optional\n }\n\n constructor(\n private readonly _subtype: IT,\n private readonly _defaultValue: IOptionalValue<\n IT[\"CreationType\"],\n IT[\"Type\"]\n >,\n readonly optionalValues: OptionalVals\n ) {\n super(_subtype.name)\n }\n\n describe() {\n return this._subtype.describe() + \"?\"\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n if (this.optionalValues.indexOf(initialValue) >= 0) {\n const defaultInstanceOrSnapshot = this.getDefaultInstanceOrSnapshot()\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n defaultInstanceOrSnapshot\n )\n }\n return this._subtype.instantiate(parent, subpath, environment, initialValue)\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n return this._subtype.reconcile(\n current,\n this.optionalValues.indexOf(newValue) < 0 && this._subtype.is(newValue)\n ? newValue\n : this.getDefaultInstanceOrSnapshot(),\n parent,\n subpath\n )\n }\n\n getDefaultInstanceOrSnapshot(): this[\"C\"] | this[\"T\"] {\n const defaultInstanceOrSnapshot =\n typeof this._defaultValue === \"function\"\n ? (this._defaultValue as IFunctionReturn<this[\"C\"] | this[\"T\"]>)()\n : this._defaultValue\n\n // while static values are already snapshots and checked on types.optional\n // generator functions must always be rechecked just in case\n if (typeof this._defaultValue === \"function\") {\n typecheckInternal(this, defaultInstanceOrSnapshot)\n }\n\n return defaultInstanceOrSnapshot\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n // defaulted values can be skipped\n if (this.optionalValues.indexOf(value) >= 0) {\n return typeCheckSuccess()\n }\n // bounce validation to the sub-type\n return this._subtype.validate(value, context)\n }\n\n isAssignableFrom(type: IAnyType) {\n return this._subtype.isAssignableFrom(type)\n }\n\n getSubTypes() {\n return this._subtype\n }\n}\n\n/** @hidden */\nexport type OptionalDefaultValueOrFunction<IT extends IAnyType> =\n | IT[\"CreationType\"]\n | IT[\"SnapshotType\"]\n | (() => ExtractCSTWithSTN<IT>)\n\n/** @hidden */\nexport interface IOptionalIType<\n IT extends IAnyType,\n OptionalVals extends ValidOptionalValues\n> extends IType<\n IT[\"CreationType\"] | OptionalVals[number],\n IT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"]\n> {}\n\nfunction checkOptionalPreconditions<IT extends IAnyType>(\n type: IAnyType,\n defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>\n) {\n // make sure we never pass direct instances\n if (\n typeof defaultValueOrFunction !== \"function\" &&\n isStateTreeNode(defaultValueOrFunction)\n ) {\n throw fail(\n \"default value cannot be an instance, pass a snapshot or a function that creates an instance/snapshot instead\"\n )\n }\n assertIsType(type, 1)\n if (devMode()) {\n // we only check default values if they are passed directly\n // if they are generator functions they will be checked once they are generated\n // we don't check generator function results here to avoid generating a node just for type-checking purposes\n // which might generate side-effects\n if (typeof defaultValueOrFunction !== \"function\") {\n typecheckInternal(type, defaultValueOrFunction)\n }\n }\n}\n\nexport function optional<IT extends IAnyType>(\n type: IT,\n defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>\n): IOptionalIType<IT, [undefined]>\nexport function optional<\n IT extends IAnyType,\n OptionalVals extends ValidOptionalValues\n>(\n type: IT,\n defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>,\n optionalValues: OptionalVals\n): IOptionalIType<IT, OptionalVals>\n/**\n * `types.optional` - Can be used to create a property with a default value.\n *\n * Depending on the third argument (`optionalValues`) there are two ways of operation:\n * - If the argument is not provided, then if a value is not provided in the snapshot (`undefined` or missing),\n * it will default to the provided `defaultValue`\n * - If the argument is provided, then if the value in the snapshot matches one of the optional values inside the array then it will\n * default to the provided `defaultValue`. Additionally, if one of the optional values inside the array is `undefined` then a missing\n * property is also valid.\n *\n * Note that it is also possible to include values of the same type as the intended subtype as optional values,\n * in this case the optional value will be transformed into the `defaultValue` (e.g. `types.optional(types.string, \"unnamed\", [undefined, \"\"])`\n * will transform the snapshot values `undefined` (and therefore missing) and empty strings into the string `\"unnamed\"` when it gets\n * instantiated).\n *\n * If `defaultValue` is a function, the function will be invoked for every new instance.\n * Applying a snapshot in which the optional value is one of the optional values (or `undefined`/_not_ present if none are provided) causes the\n * value to be reset.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * title: types.string,\n * subtitle1: types.optional(types.string, \"\", [null]),\n * subtitle2: types.optional(types.string, \"\", [null, undefined]),\n * done: types.optional(types.boolean, false),\n * created: types.optional(types.Date, () => new Date()),\n * })\n *\n * // if done is missing / undefined it will become false\n * // if created is missing / undefined it will get a freshly generated timestamp\n * // if subtitle1 is null it will default to \"\", but it cannot be missing or undefined\n * // if subtitle2 is null or undefined it will default to \"\"; since it can be undefined it can also be missing\n * const todo = Todo.create({ title: \"Get coffee\", subtitle1: null })\n * ```\n *\n * @param type\n * @param defaultValueOrFunction\n * @param optionalValues an optional array with zero or more primitive values (string, number, boolean, null or undefined)\n * that will be converted into the default. `[ undefined ]` is assumed when none is provided\n * @returns\n */\nexport function optional<\n IT extends IAnyType,\n OptionalVals extends ValidOptionalValues\n>(\n type: IT,\n defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>,\n optionalValues?: OptionalVals\n): IOptionalIType<IT, OptionalVals> {\n checkOptionalPreconditions(type, defaultValueOrFunction)\n\n return new OptionalValue(\n type,\n defaultValueOrFunction,\n optionalValues ? optionalValues : undefinedAsOptionalValues\n )\n}\n\nconst undefinedAsOptionalValues: [undefined] = [undefined]\n\n/**\n * Returns if a value represents an optional type.\n *\n * @template IT\n * @param type\n * @returns\n */\nexport function isOptionalType<IT extends IAnyType>(type: IT): type is IT {\n return isType(type) && (type.flags & TypeFlags.Optional) > 0\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SimpleType } from "../../core/type/type.ts";
|
|
2
|
+
import { type AnyObjectNode, type IAnyComplexType, type IAnyStateTreeNode, type IAnyType, type IMaybe, type IStateTreeNode, type IType, type IValidationContext, type IValidationResult, type ReferenceIdentifier, TypeFlags } from "../../internal.ts";
|
|
2
3
|
export type OnReferenceInvalidatedEvent<STN extends IAnyStateTreeNode> = {
|
|
3
4
|
parent: IAnyStateTreeNode;
|
|
4
5
|
invalidTarget: STN | undefined;
|
|
@@ -4,6 +4,7 @@ exports.CustomReferenceType = exports.IdentifierReferenceType = exports.BaseRefe
|
|
|
4
4
|
exports.reference = reference;
|
|
5
5
|
exports.isReferenceType = isReferenceType;
|
|
6
6
|
exports.safeReference = safeReference;
|
|
7
|
+
const type_ts_1 = require("../../core/type/type.js");
|
|
7
8
|
const internal_ts_1 = require("../../internal.js");
|
|
8
9
|
function getInvalidationCause(hook) {
|
|
9
10
|
switch (hook) {
|
|
@@ -78,7 +79,7 @@ exports.InvalidReferenceError = InvalidReferenceError;
|
|
|
78
79
|
* @internal
|
|
79
80
|
* @hidden
|
|
80
81
|
*/
|
|
81
|
-
class BaseReferenceType extends
|
|
82
|
+
class BaseReferenceType extends type_ts_1.SimpleType {
|
|
82
83
|
targetType;
|
|
83
84
|
onInvalidated;
|
|
84
85
|
flags = internal_ts_1.TypeFlags.Reference;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/types/utility-types/reference.ts"],"names":[],"mappings":";;;AAuhBA,8BAyCC;AAQD,0CAIC;AAkCD,sCAsBC;AApoBD,mDA+B0B;AAe1B,SAAS,oBAAoB,CAAC,IAAU;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAI,CAAC,aAAa;YACrB,OAAO,SAAS,CAAA;QAClB,KAAK,kBAAI,CAAC,YAAY;YACpB,OAAO,QAAQ,CAAA;QACjB;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAMD,MAAM,eAAe;IAWA;IAVV,UAAU,CAAsB;IACzC,IAAI,CAAU;IAEN,iBAAiB,CAGxB;IAED,YACE,KAA2C,EAC1B,UAAc;QAAd,eAAU,GAAV,UAAU,CAAI;QAE/B,IAAI,IAAA,+BAAiB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACzB,CAAC;aAAM,IAAI,IAAA,6BAAe,EAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACpC,MAAM,IAAA,kBAAI,EACR,gEAAgE,CACjE,CAAA;YACH,CAAC;YACD,MAAM,EAAE,GAAG,UAAU,CAAC,sBAAsB,CAAA;YAC5C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAA,kBAAI,EACR,oEAAoE,CACrE,CAAA;YACH,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,kBAAI,EACR,iEAAiE,KAAK,GAAG,CAC1E,CAAA;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,IAAa;QAC3C,MAAM,YAAY,GAAG,IAAA,iCAAmB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,qBAAqB,GACzB,IAAI,CAAC,eAAgB,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAA;QACnE,IACE,CAAC,IAAI,CAAC,iBAAiB;YACvB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,KAAK,qBAAqB,EACtE,CAAC;YACD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;YAC3B,8DAA8D;YAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;YAEtE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,qBAAqB,CAC7B,kDAAkD,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,UAAU,CAAC,IAAI,iBAAiB,IAAI,CAAC,IAAI,GAAG,CACjI,CAAA;YACH,CAAC;YAED,IAAI,CAAC,iBAAiB,GAAG;gBACvB,IAAI,EAAE,MAAO;gBACb,qBAAqB,EAAE,qBAAqB;aAC7C,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,iBAAkB,CAAC,IAAI,CAAC,KAAK,CAAA;IAC3C,CAAC;CACF;AAED;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,CAAS;QACnB,KAAK,CAAC,CAAC,CAAC,CAAA;QAER,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC;CACF;AAND,sDAMC;AAED;;;GAGG;AACH,MAAsB,iBAEpB,SAAQ,wBAIT;IAIsB;IACF;IAJV,KAAK,GAAG,uBAAS,CAAC,SAAS,CAAA;IAEpC,YACqB,UAAc,EAChB,aAAsD;QAEvE,KAAK,CAAC,aAAa,UAAU,CAAC,IAAI,GAAG,CAAC,CAAA;QAHnB,eAAU,GAAV,UAAU,CAAI;QAChB,kBAAa,GAAb,aAAa,CAAyC;IAGzE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,gBAAgB,CAAC,IAAc;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,OAA2B;QAE3B,OAAO,IAAA,+BAAiB,EAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,IAAA,8BAAgB,GAAE;YACpB,CAAC,CAAC,IAAA,8BAAgB,EACd,OAAO,EACP,KAAK,EACL,gEAAgE,CACjE,CAAA;IACP,CAAC;IAEO,eAAe,CACrB,KAAwD,EACxD,aAAwB,EACxB,WAAgC,EAChC,aAAmC;QAEnC,8DAA8D;QAC9D,sEAAsE;QACtE,kBAAkB;QAClB,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAA;QAChD,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACzD,OAAM;QACR,CAAC;QACD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,WAAW,CAAA;QAC5D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,aAAc,CAAC;YAClB,KAAK;YACL,MAAM,EAAE,oBAAoB;YAC5B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpE,SAAS,EAAE,WAAW;YACtB,UAAU,CAAC,MAAM;gBACf,IAAA,wBAAU,EAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;oBACzC,EAAE,EAAE,SAAS;oBACb,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,aAAa,CAAC,IAAI;iBACzB,CAAC,CAAA;YACJ,CAAC;YACD,SAAS;gBACP,IAAI,IAAA,yBAAW,EAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,UAAU,CAAC,SAAgB,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAU,EAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;wBACzC,EAAE,EAAE,QAAQ;wBACZ,IAAI,EAAE,aAAa,CAAC,IAAI;qBACzB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,oBAAoB,CAC1B,aAAwB,EACxB,WAAgC;QAEhC,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,aAAa,GAAG,IAAA,8BAAgB,EAAC,cAAc,CAAC,CAAA;QAEtD,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,iBAAuB,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAM;YACR,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;QACxE,CAAC,CAAA;QAED,MAAM,2BAA2B,GAAG,aAAa,CAAC,YAAY,CAC5D,kBAAI,CAAC,YAAY,EACjB,WAAW,CACZ,CAAA;QACD,MAAM,4BAA4B,GAAG,aAAa,CAAC,YAAY,CAC7D,kBAAI,CAAC,aAAa,EAClB,WAAW,CACZ,CAAA;QAED,OAAO,GAAG,EAAE;YACV,2BAA2B,EAAE,CAAA;YAC7B,4BAA4B,EAAE,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;IAES,+BAA+B,CACvC,aAAwB,EACxB,UAA+B,EAC/B,YAAoD;QAEpD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QAED,IAAI,gCAAuD,CAAA;QAE3D,oEAAoE;QACpE,0FAA0F;QAC1F,aAAa,CAAC,YAAY,CAAC,kBAAI,CAAC,aAAa,EAAE,GAAG,EAAE;YAClD,IAAI,gCAAgC,EAAE,CAAC;gBACrC,gCAAgC,EAAE,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,CAAC,IAAa,EAAE,EAAE;YACtC,wDAAwD;YACxD,IAAI,gCAAgC,EAAE,CAAC;gBACrC,gCAAgC,EAAE,CAAA;YACpC,CAAC;YAED,8DAA8D;YAC9D,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAA;YAChD,MAAM,oBAAoB,GACxB,mBAAmB,IAAI,mBAAmB,CAAC,WAAW,CAAA;YACxD,IACE,mBAAmB;gBACnB,mBAAmB,CAAC,OAAO;gBAC3B,oBAAoB,EACpB,CAAC;gBACD,IAAI,mBAA4B,CAAA;gBAChC,IAAI,YAAY,EAAE,CAAC;oBACjB,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CACtC,UAAU,EACV,oBAAoB,CACrB,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,eAAgB,CAAC,GAAG,CAC3D,IAAI,CAAC,UAAU,EACf,IAAA,iCAAmB,EAAC,UAAU,CAAC,CAChC,CAAA;gBACH,CAAC;gBAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,mGAAmG;oBACnG,+EAA+E;oBAC/E,+BAA+B;oBAC/B,yFAAyF;oBACzF,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,IAAI,CAAC,eAAe,CAClB,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACV,IAAI,CACL,CAAA;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,gCAAgC,GAAG,IAAI,CAAC,oBAAoB,CAC1D,aAAa,EACb,UAAU,CACX,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,IAAI,aAAa,CAAC,KAAK,KAAK,2BAAa,CAAC,SAAS,EAAE,CAAC;YACpD,+CAA+C;YAC/C,aAAa,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,8CAA8C;gBAC9C,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;oBACnE,mDAAmD;oBACnD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;wBACzB,aAAa,CAAC,MAAM,CAAC,gCAAgC,EAAE,CAAA;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,sEAAsE;YACtE,aAAa,CAAC,YAAY,CAAC,kBAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAChD,aAAa,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AA1MD,8CA0MC;AAED;;;GAGG;AACH,MAAa,uBAEX,SAAQ,iBAAqB;IAC7B,YACE,UAAc,EACd,aAAsD;QAEtD,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ,CAAC,aAAwB;QAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,SAAS,GAAwB,aAAa,CAAC,WAAW,CAAA;QAChE,OAAO,SAAS,CAAC,aAAoB,CAAA;IACvC,CAAC;IAED,WAAW,CAAC,aAAwB;QAClC,MAAM,GAAG,GAAwB,aAAa,CAAC,WAAW,CAAA;QAC1D,OAAO,GAAG,CAAC,UAAU,CAAA;IACvB,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAmC;QAEnC,MAAM,UAAU,GAAG,IAAA,6BAAe,EAAC,YAAY,CAAC;YAC9C,CAAC,CAAC,IAAA,2BAAa,EAAC,YAAY,CAAE;YAC9B,CAAC,CAAC,YAAY,CAAA;QAChB,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,UAAiB,CAAC,CAAA;QAC3E,MAAM,aAAa,GAAc,IAAA,8BAAgB,EAC/C,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAgB,CACjB,CAAA;QACD,SAAS,CAAC,IAAI,GAAG,aAAa,CAAA;QAC9B,IAAI,CAAC,+BAA+B,CAClC,aAAa,EACb,UAAoB,EACpB,SAAS,CACV,CAAA;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,SAAS,CACP,OAAkB,EAClB,QAA+B,EAC/B,MAAqB,EACrB,OAAe;QAEf,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,IAAA,6BAAe,EAAC,QAAQ,CAAC,CAAA;YAChD,MAAM,GAAG,GAAwB,OAAO,CAAC,WAAW,CAAA;YACpD,IACE,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC;gBAChD,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,EAClD,CAAC;gBACD,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAClC,OAAO,OAAO,CAAA;YAChB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QACtE,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,oBAAoB;QAClC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAtED,0DAsEC;AAED;;;GAGG;AACH,MAAa,mBAEX,SAAQ,iBAAqB;IAGV;IAFnB,YACE,UAAc,EACG,OAAmC,EACpD,aAAsD;QAEtD,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAHf,YAAO,GAAP,OAAO,CAA4B;IAItD,CAAC;IAED,QAAQ,CAAC,aAAwB;QAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,SAAgB,CAAA;QACzB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CACrC,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAC/D,CAAA;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,WAAW,CAAC,aAAwB;QAClC,OAAO,aAAa,CAAC,WAAW,CAAA;IAClC,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,QAA+B;QAE/B,MAAM,UAAU,GAAG,IAAA,6BAAe,EAAC,QAAQ,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAe,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YACvE,CAAC,CAAC,QAAQ,CAAA;QACZ,MAAM,aAAa,GAAc,IAAA,8BAAgB,EAC/C,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,UAAiB,CAClB,CAAA;QACD,IAAI,CAAC,+BAA+B,CAClC,aAAa,EACb,UAAoB,EACpB,IAAI,CAAC,OAAO,CACb,CAAA;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,SAAS,CACP,OAAkB,EAClB,QAA+B,EAC/B,MAAqB,EACrB,OAAe;QAEf,MAAM,aAAa,GAAG,IAAA,6BAAe,EAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAe,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YACzE,CAAC,CAAC,QAAQ,CAAA;QACZ,IACE,CAAC,OAAO,CAAC,WAAW;YACpB,OAAO,CAAC,IAAI,KAAK,IAAI;YACrB,OAAO,CAAC,WAAW,KAAK,aAAa,EACrC,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAClC,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC3E,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,oBAAoB;QAClC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAvED,kDAuEC;AA8BD;;;GAGG;AACH,SAAgB,SAAS,CACvB,OAAW,EACX,OAA8B;IAE9B,IAAA,0BAAY,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxB,IAAI,IAAA,qBAAO,GAAE,EAAE,CAAC;QACd,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,uBAAuB;YACvB,MAAM,IAAA,kBAAI,EACR,iFAAiF,CAClF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO;QAC3B,CAAC,CAAE,OAAsC;QACzC,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,aAAa,GAAG,OAAO;QAC3B,CAAC,CAAE,OAA6C,CAAC,aAAa;QAC9D,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,IAAI,IAAA,qBAAO,GAAE,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAA,kBAAI,EACR,uFAAuF,CACxF,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,mBAAmB,CAC5B,OAAO,EACP;YACE,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,GAAG,EAAE,aAAa,CAAC,GAAG;SACvB,EACD,aAAa,CACd,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,IAAQ;IAER,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,uBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAgBD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,aAAa,CAC3B,OAAW,EACX,OAGC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE;QACjC,GAAG,OAAO;QACV,aAAa,CAAC,EAAE;YACd,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBACrC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAC3B,CAAC;YACD,EAAE,CAAC,SAAS,EAAE,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QAClD,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,mBAAK,EAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/types/utility-types/reference.ts"],"names":[],"mappings":"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","sourcesContent":["import { SimpleType } from \"../../core/type/type.ts\"\nimport {\n type AnyNode,\n type AnyObjectNode,\n Hook,\n type IAnyComplexType,\n type IAnyStateTreeNode,\n type IAnyType,\n type IDisposer,\n type IMaybe,\n type IStateTreeNode,\n type IType,\n type IValidationContext,\n type IValidationResult,\n NodeLifeCycle,\n type ReferenceIdentifier,\n TypeFlags,\n applyPatch,\n assertIsType,\n createScalarNode,\n devMode,\n fail,\n getIdentifier,\n getStateTreeNode,\n isModelType,\n isStateTreeNode,\n isValidIdentifier,\n maybe,\n normalizeIdentifier,\n typeCheckFailure,\n typeCheckSuccess\n} from \"../../internal.ts\"\n\nexport type OnReferenceInvalidatedEvent<STN extends IAnyStateTreeNode> = {\n parent: IAnyStateTreeNode\n invalidTarget: STN | undefined\n invalidId: ReferenceIdentifier\n replaceRef: (newRef: STN | null | undefined) => void\n removeRef: () => void\n cause: \"detach\" | \"destroy\" | \"invalidSnapshotReference\"\n}\n\nexport type OnReferenceInvalidated<STN extends IAnyStateTreeNode> = (\n event: OnReferenceInvalidatedEvent<STN>\n) => void\n\nfunction getInvalidationCause(hook: Hook): \"detach\" | \"destroy\" | undefined {\n switch (hook) {\n case Hook.beforeDestroy:\n return \"destroy\"\n case Hook.beforeDetach:\n return \"detach\"\n default:\n return undefined\n }\n}\n\n/** @hidden */\nexport type ReferenceT<IT extends IAnyType> = IT[\"TypeWithoutSTN\"] &\n IStateTreeNode<IReferenceType<IT>>\n\nclass StoredReference<IT extends IAnyType> {\n readonly identifier!: ReferenceIdentifier\n node!: AnyNode\n\n private resolvedReference?: {\n node: AnyObjectNode\n lastCacheModification: string\n }\n\n constructor(\n value: ReferenceT<IT> | ReferenceIdentifier,\n private readonly targetType: IT\n ) {\n if (isValidIdentifier(value)) {\n this.identifier = value\n } else if (isStateTreeNode(value)) {\n const targetNode = getStateTreeNode(value)\n if (!targetNode.identifierAttribute) {\n throw fail(\n `Can only store references with a defined identifier attribute.`\n )\n }\n const id = targetNode.unnormalizedIdentifier\n if (id === null || id === undefined) {\n throw fail(\n `Can only store references to tree nodes with a defined identifier.`\n )\n }\n this.identifier = id\n } else {\n throw fail(\n `Can only store references to tree nodes or identifiers, got: '${value}'`\n )\n }\n }\n\n private updateResolvedReference(node: AnyNode) {\n const normalizedId = normalizeIdentifier(this.identifier)\n const root = node.root\n const lastCacheModification =\n root.identifierCache!.getLastCacheModificationPerId(normalizedId)\n if (\n !this.resolvedReference ||\n this.resolvedReference.lastCacheModification !== lastCacheModification\n ) {\n const { targetType } = this\n // reference was initialized with the identifier of the target\n\n const target = root.identifierCache!.resolve(targetType, normalizedId)\n\n if (!target) {\n throw new InvalidReferenceError(\n `[mobx-state-tree] Failed to resolve reference '${this.identifier}' to type '${this.targetType.name}' (from node: ${node.path})`\n )\n }\n\n this.resolvedReference = {\n node: target!,\n lastCacheModification: lastCacheModification\n }\n }\n }\n\n get resolvedValue(): ReferenceT<IT> {\n this.updateResolvedReference(this.node)\n return this.resolvedReference!.node.value\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class InvalidReferenceError extends Error {\n constructor(m: string) {\n super(m)\n\n Object.setPrototypeOf(this, InvalidReferenceError.prototype)\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport abstract class BaseReferenceType<\n IT extends IAnyComplexType\n> extends SimpleType<\n ReferenceIdentifier,\n ReferenceIdentifier,\n IT[\"TypeWithoutSTN\"]\n> {\n readonly flags = TypeFlags.Reference\n\n constructor(\n protected readonly targetType: IT,\n private readonly onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n ) {\n super(`reference(${targetType.name})`)\n }\n\n describe() {\n return this.name\n }\n\n isAssignableFrom(type: IAnyType): boolean {\n return this.targetType.isAssignableFrom(type)\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n return isValidIdentifier(value)\n ? typeCheckSuccess()\n : typeCheckFailure(\n context,\n value,\n \"Value is not a valid identifier, which is a string or a number\"\n )\n }\n\n private fireInvalidated(\n cause: \"detach\" | \"destroy\" | \"invalidSnapshotReference\",\n storedRefNode: this[\"N\"],\n referenceId: ReferenceIdentifier,\n refTargetNode: AnyObjectNode | null\n ) {\n // to actually invalidate a reference we need an alive parent,\n // since it is a scalar value (immutable-ish) and we need to change it\n // from the parent\n const storedRefParentNode = storedRefNode.parent\n if (!storedRefParentNode || !storedRefParentNode.isAlive) {\n return\n }\n const storedRefParentValue = storedRefParentNode.storedValue\n if (!storedRefParentValue) {\n return\n }\n this.onInvalidated!({\n cause,\n parent: storedRefParentValue,\n invalidTarget: refTargetNode ? refTargetNode.storedValue : undefined,\n invalidId: referenceId,\n replaceRef(newRef) {\n applyPatch(storedRefNode.root.storedValue, {\n op: \"replace\",\n value: newRef,\n path: storedRefNode.path\n })\n },\n removeRef() {\n if (isModelType(storedRefParentNode.type)) {\n this.replaceRef(undefined as any)\n } else {\n applyPatch(storedRefNode.root.storedValue, {\n op: \"remove\",\n path: storedRefNode.path\n })\n }\n }\n })\n }\n\n private addTargetNodeWatcher(\n storedRefNode: this[\"N\"],\n referenceId: ReferenceIdentifier\n ): IDisposer | undefined {\n // this will make sure the target node becomes created\n const refTargetValue = this.getValue(storedRefNode)\n if (!refTargetValue) {\n return undefined\n }\n const refTargetNode = getStateTreeNode(refTargetValue)\n\n const hookHandler = (_: AnyNode, refTargetNodeHook: Hook) => {\n const cause = getInvalidationCause(refTargetNodeHook)\n if (!cause) {\n return\n }\n this.fireInvalidated(cause, storedRefNode, referenceId, refTargetNode)\n }\n\n const refTargetDetachHookDisposer = refTargetNode.registerHook(\n Hook.beforeDetach,\n hookHandler\n )\n const refTargetDestroyHookDisposer = refTargetNode.registerHook(\n Hook.beforeDestroy,\n hookHandler\n )\n\n return () => {\n refTargetDetachHookDisposer()\n refTargetDestroyHookDisposer()\n }\n }\n\n protected watchTargetNodeForInvalidations(\n storedRefNode: this[\"N\"],\n identifier: ReferenceIdentifier,\n customGetSet: ReferenceOptionsGetSet<IT> | undefined\n ) {\n if (!this.onInvalidated) {\n return\n }\n\n let onRefTargetDestroyedHookDisposer: IDisposer | undefined\n\n // get rid of the watcher hook when the stored ref node is destroyed\n // detached is ignored since scalar nodes (where the reference resides) cannot be detached\n storedRefNode.registerHook(Hook.beforeDestroy, () => {\n if (onRefTargetDestroyedHookDisposer) {\n onRefTargetDestroyedHookDisposer()\n }\n })\n\n const startWatching = (sync: boolean) => {\n // re-create hook in case the stored ref gets reattached\n if (onRefTargetDestroyedHookDisposer) {\n onRefTargetDestroyedHookDisposer()\n }\n\n // make sure the target node is actually there and initialized\n const storedRefParentNode = storedRefNode.parent\n const storedRefParentValue =\n storedRefParentNode && storedRefParentNode.storedValue\n if (\n storedRefParentNode &&\n storedRefParentNode.isAlive &&\n storedRefParentValue\n ) {\n let refTargetNodeExists: boolean\n if (customGetSet) {\n refTargetNodeExists = !!customGetSet.get(\n identifier,\n storedRefParentValue\n )\n } else {\n refTargetNodeExists = storedRefNode.root.identifierCache!.has(\n this.targetType,\n normalizeIdentifier(identifier)\n )\n }\n\n if (!refTargetNodeExists) {\n // we cannot change the reference in sync mode\n // since we are in the middle of a reconciliation/instantiation and the change would be overwritten\n // for those cases just let the wrong reference be assigned and fail upon usage\n // (like current references do)\n // this means that effectively this code will only run when it is created from a snapshot\n if (!sync) {\n this.fireInvalidated(\n \"invalidSnapshotReference\",\n storedRefNode,\n identifier,\n null\n )\n }\n } else {\n onRefTargetDestroyedHookDisposer = this.addTargetNodeWatcher(\n storedRefNode,\n identifier\n )\n }\n }\n }\n\n if (storedRefNode.state === NodeLifeCycle.FINALIZED) {\n // already attached, so the whole tree is ready\n startWatching(true)\n } else {\n if (!storedRefNode.isRoot) {\n // start watching once the whole tree is ready\n storedRefNode.root.registerHook(Hook.afterCreationFinalization, () => {\n // make sure to attach it so it can start listening\n if (storedRefNode.parent) {\n storedRefNode.parent.createObservableInstanceIfNeeded()\n }\n })\n }\n // start watching once the node is attached somewhere / parent changes\n storedRefNode.registerHook(Hook.afterAttach, () => {\n startWatching(false)\n })\n }\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class IdentifierReferenceType<\n IT extends IAnyComplexType\n> extends BaseReferenceType<IT> {\n constructor(\n targetType: IT,\n onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n ) {\n super(targetType, onInvalidated)\n }\n\n getValue(storedRefNode: this[\"N\"]) {\n if (!storedRefNode.isAlive) {\n return undefined\n }\n const storedRef: StoredReference<IT> = storedRefNode.storedValue\n return storedRef.resolvedValue as any\n }\n\n getSnapshot(storedRefNode: this[\"N\"]) {\n const ref: StoredReference<IT> = storedRefNode.storedValue\n return ref.identifier\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n const identifier = isStateTreeNode(initialValue)\n ? getIdentifier(initialValue)!\n : initialValue\n const storedRef = new StoredReference(initialValue, this.targetType as any)\n const storedRefNode: this[\"N\"] = createScalarNode(\n this,\n parent,\n subpath,\n environment,\n storedRef as any\n )\n storedRef.node = storedRefNode\n this.watchTargetNodeForInvalidations(\n storedRefNode,\n identifier as string,\n undefined\n )\n return storedRefNode\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n if (!current.isDetaching && current.type === this) {\n const compareByValue = isStateTreeNode(newValue)\n const ref: StoredReference<IT> = current.storedValue\n if (\n (!compareByValue && ref.identifier === newValue) ||\n (compareByValue && ref.resolvedValue === newValue)\n ) {\n current.setParent(parent, subpath)\n return current\n }\n }\n const newNode = this.instantiate(parent, subpath, undefined, newValue)\n current.die() // noop if detaching\n return newNode\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class CustomReferenceType<\n IT extends IAnyComplexType\n> extends BaseReferenceType<IT> {\n constructor(\n targetType: IT,\n private readonly options: ReferenceOptionsGetSet<IT>,\n onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n ) {\n super(targetType, onInvalidated)\n }\n\n getValue(storedRefNode: this[\"N\"]) {\n if (!storedRefNode.isAlive) {\n return undefined as any\n }\n const referencedNode = this.options.get(\n storedRefNode.storedValue,\n storedRefNode.parent ? storedRefNode.parent.storedValue : null\n )\n return referencedNode\n }\n\n getSnapshot(storedRefNode: this[\"N\"]) {\n return storedRefNode.storedValue\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n newValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n const identifier = isStateTreeNode(newValue)\n ? this.options.set(newValue as any, parent ? parent.storedValue : null)\n : newValue\n const storedRefNode: this[\"N\"] = createScalarNode(\n this,\n parent,\n subpath,\n environment,\n identifier as any\n )\n this.watchTargetNodeForInvalidations(\n storedRefNode,\n identifier as string,\n this.options\n )\n return storedRefNode\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n const newIdentifier = isStateTreeNode(newValue)\n ? this.options.set(newValue as any, current ? current.storedValue : null)\n : newValue\n if (\n !current.isDetaching &&\n current.type === this &&\n current.storedValue === newIdentifier\n ) {\n current.setParent(parent, subpath)\n return current\n }\n const newNode = this.instantiate(parent, subpath, undefined, newIdentifier)\n current.die() // noop if detaching\n return newNode\n }\n}\n\nexport interface ReferenceOptionsGetSet<IT extends IAnyComplexType> {\n get(\n identifier: ReferenceIdentifier,\n parent: IAnyStateTreeNode | null\n ): ReferenceT<IT>\n set(\n value: ReferenceT<IT>,\n parent: IAnyStateTreeNode | null\n ): ReferenceIdentifier\n}\n\nexport interface ReferenceOptionsOnInvalidated<IT extends IAnyComplexType> {\n // called when the current reference is about to become invalid\n onInvalidated: OnReferenceInvalidated<ReferenceT<IT>>\n}\n\nexport type ReferenceOptions<IT extends IAnyComplexType> =\n | ReferenceOptionsGetSet<IT>\n | ReferenceOptionsOnInvalidated<IT>\n | (ReferenceOptionsGetSet<IT> & ReferenceOptionsOnInvalidated<IT>)\n\n/** @hidden */\nexport interface IReferenceType<IT extends IAnyComplexType> extends IType<\n ReferenceIdentifier,\n ReferenceIdentifier,\n IT[\"TypeWithoutSTN\"]\n> {}\n\n/**\n * `types.reference` - Creates a reference to another type, which should have defined an identifier.\n * See also the [reference and identifiers](https://github.com/mobxjs/mobx-state-tree#references-and-identifiers) section.\n */\nexport function reference<IT extends IAnyComplexType>(\n subType: IT,\n options?: ReferenceOptions<IT>\n): IReferenceType<IT> {\n assertIsType(subType, 1)\n if (devMode()) {\n if (options && typeof options === \"string\") {\n // istanbul ignore next\n throw fail(\n \"References with base path are no longer supported. Please remove the base path.\"\n )\n }\n }\n\n const getSetOptions = options\n ? (options as ReferenceOptionsGetSet<IT>)\n : undefined\n const onInvalidated = options\n ? (options as ReferenceOptionsOnInvalidated<IT>).onInvalidated\n : undefined\n\n if (getSetOptions && (getSetOptions.get || getSetOptions.set)) {\n if (devMode()) {\n if (!getSetOptions.get || !getSetOptions.set) {\n throw fail(\n \"reference options must either contain both a 'get' and a 'set' method or none of them\"\n )\n }\n }\n\n return new CustomReferenceType(\n subType,\n {\n get: getSetOptions.get,\n set: getSetOptions.set\n },\n onInvalidated\n )\n } else {\n return new IdentifierReferenceType(subType, onInvalidated)\n }\n}\n\n/**\n * Returns if a given value represents a reference type.\n *\n * @param type\n * @returns\n */\nexport function isReferenceType<IT extends IReferenceType<any>>(\n type: IT\n): type is IT {\n return (type.flags & TypeFlags.Reference) > 0\n}\n\nexport function safeReference<IT extends IAnyComplexType>(\n subType: IT,\n options: (ReferenceOptionsGetSet<IT> | object) & {\n acceptsUndefined: false\n onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n }\n): IReferenceType<IT>\nexport function safeReference<IT extends IAnyComplexType>(\n subType: IT,\n options?: (ReferenceOptionsGetSet<IT> | object) & {\n acceptsUndefined?: boolean\n onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n }\n): IMaybe<IReferenceType<IT>>\n/**\n * `types.safeReference` - A safe reference is like a standard reference, except that it accepts the undefined value by default\n * and automatically sets itself to undefined (when the parent is a model) / removes itself from arrays and maps\n * when the reference it is pointing to gets detached/destroyed.\n *\n * The optional options parameter object accepts a parameter named `acceptsUndefined`, which is set to true by default, so it is suitable\n * for model properties.\n * When used inside collections (arrays/maps), it is recommended to set this option to false so it can't take undefined as value,\n * which is usually the desired in those cases.\n * Additionally, the optional options parameter object accepts a parameter named `onInvalidated`, which will be called when the reference target node that the reference is pointing to is about to be detached/destroyed\n *\n * Strictly speaking it is a `types.maybe(types.reference(X))` (when `acceptsUndefined` is set to true, the default) and\n * `types.reference(X)` (when `acceptsUndefined` is set to false), both of them with a customized `onInvalidated` option.\n *\n * @param subType\n * @param options\n * @returns\n */\nexport function safeReference<IT extends IAnyComplexType>(\n subType: IT,\n options?: (ReferenceOptionsGetSet<IT> | object) & {\n acceptsUndefined?: boolean\n onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>\n }\n): IReferenceType<IT> | IMaybe<IReferenceType<IT>> {\n const refType = reference(subType, {\n ...options,\n onInvalidated(ev) {\n if (options && options.onInvalidated) {\n options.onInvalidated(ev)\n }\n ev.removeRef()\n }\n })\n\n if (options && options.acceptsUndefined === false) {\n return refType\n } else {\n return maybe(refType)\n }\n}\n"]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.refinement = refinement;
|
|
4
4
|
exports.isRefinementType = isRefinementType;
|
|
5
|
+
const type_ts_1 = require("../../core/type/type.js");
|
|
5
6
|
const internal_ts_1 = require("../../internal.js");
|
|
6
7
|
const utils_ts_1 = require("../../utils.js");
|
|
7
|
-
class Refinement extends
|
|
8
|
+
class Refinement extends type_ts_1.BaseType {
|
|
8
9
|
_subtype;
|
|
9
10
|
_predicate;
|
|
10
11
|
_message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refinement.js","sourceRoot":"","sources":["../../../src/types/utility-types/refinement.ts"],"names":[],"mappings":";;AAiHA,gCAmBC;AAQD,4CAEC;AA9ID,
|
|
1
|
+
{"version":3,"file":"refinement.js","sourceRoot":"","sources":["../../../src/types/utility-types/refinement.ts"],"names":[],"mappings":";;AAiHA,gCAmBC;AAQD,4CAEC;AA9ID,qDAAkD;AAClD,mDAa0B;AAC1B,6CAAiE;AAEjE,MAAM,UAAgC,SAAQ,kBAK7C;IAOoB;IACA;IACA;IARnB,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,uBAAS,CAAC,UAAU,CAAA;IACnD,CAAC;IAED,YACE,IAAY,EACK,QAAY,EACZ,UAA8C,EAC9C,QAA2C;QAE5D,KAAK,CAAC,IAAI,CAAC,CAAA;QAJM,aAAQ,GAAR,QAAQ,CAAI;QACZ,eAAU,GAAV,UAAU,CAAoC;QAC9C,aAAQ,GAAR,QAAQ,CAAmC;IAG9D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAmC;QAEnC,wBAAwB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAC9B,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,CACN,CAAA;IACV,CAAC;IAED,gBAAgB,CAAC,IAAc;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,OAA2B;QAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC5D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC;YACrC,CAAC,CAAC,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC,QAAQ;YAClC,CAAC,CAAC,KAAK,CAAA;QAET,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAA,8BAAgB,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,IAAA,8BAAgB,GAAE,CAAA;IAC3B,CAAC;IAED,SAAS,CACP,OAAkB,EAClB,QAA+B,EAC/B,MAAqB,EACrB,OAAe;QAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAQ,CAAA;IAC3E,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AAcD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,GAAG,IAAW;IACvC,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACzB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;QACd,CAAC,CAAC,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACd,CAAC,CAAC,IAAI,CAAA;IACZ,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,iDAAiD,CAAA;IAClE,qCAAqC;IACrC,IAAA,0BAAY,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAA,yBAAc,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACvB,IAAA,2BAAgB,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnC,IAAA,2BAAgB,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEjC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAsB,IAAQ;IAC5D,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,uBAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC","sourcesContent":["import { BaseType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractNodeType,\n type IAnyType,\n type IValidationContext,\n type IValidationResult,\n TypeFlags,\n assertIsType,\n getStateTreeNode,\n isStateTreeNode,\n isType,\n typeCheckFailure,\n typeCheckSuccess\n} from \"../../internal.ts\"\nimport { assertIsFunction, assertIsString } from \"../../utils.ts\"\n\nclass Refinement<IT extends IAnyType> extends BaseType<\n IT[\"CreationType\"],\n IT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"],\n ExtractNodeType<IT>\n> {\n get flags() {\n return this._subtype.flags | TypeFlags.Refinement\n }\n\n constructor(\n name: string,\n private readonly _subtype: IT,\n private readonly _predicate: (v: IT[\"CreationType\"]) => boolean,\n private readonly _message: (v: IT[\"CreationType\"]) => string\n ) {\n super(name)\n }\n\n describe() {\n return this.name\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n // create the child type\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n initialValue\n ) as any\n }\n\n isAssignableFrom(type: IAnyType) {\n return this._subtype.isAssignableFrom(type)\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n const subtypeErrors = this._subtype.validate(value, context)\n if (subtypeErrors.length > 0) {\n return subtypeErrors\n }\n\n const snapshot = isStateTreeNode(value)\n ? getStateTreeNode(value).snapshot\n : value\n\n if (!this._predicate(snapshot)) {\n return typeCheckFailure(context, value, this._message(value))\n }\n\n return typeCheckSuccess()\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n return this._subtype.reconcile(current, newValue, parent, subpath) as any\n }\n\n getSubTypes() {\n return this._subtype\n }\n}\n\nexport function refinement<IT extends IAnyType>(\n name: string,\n type: IT,\n predicate: (snapshot: IT[\"CreationType\"]) => boolean,\n message?: string | ((v: IT[\"CreationType\"]) => string)\n): IT\nexport function refinement<IT extends IAnyType>(\n type: IT,\n predicate: (snapshot: IT[\"CreationType\"]) => boolean,\n message?: string | ((v: IT[\"CreationType\"]) => string)\n): IT\n\n/**\n * `types.refinement` - Creates a type that is more specific than the base type, e.g. `types.refinement(types.string, value => value.length > 5)` to create a type of strings that can only be longer then 5.\n *\n * @param name\n * @param type\n * @param predicate\n * @returns\n */\nexport function refinement(...args: any[]): IAnyType {\n const name =\n typeof args[0] === \"string\"\n ? args.shift()\n : isType(args[0])\n ? args[0].name\n : null\n const type = args[0]\n const predicate = args[1]\n const message = args[2]\n ? args[2]\n : (_v: any) => \"Value does not respect the refinement predicate\"\n // ensures all parameters are correct\n assertIsType(type, [1, 2])\n assertIsString(name, 1)\n assertIsFunction(predicate, [2, 3])\n assertIsFunction(message, [3, 4])\n\n return new Refinement(name, type, predicate, message)\n}\n\n/**\n * Returns if a given value is a refinement type.\n *\n * @param type\n * @returns\n */\nexport function isRefinementType<IT extends IAnyType>(type: IT): type is IT {\n return (type.flags & TypeFlags.Refinement) > 0\n}\n"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resilient = resilient;
|
|
4
|
+
const type_ts_1 = require("../../core/type/type.js");
|
|
4
5
|
const internal_ts_1 = require("../../internal.js");
|
|
5
|
-
class Resilient extends
|
|
6
|
+
class Resilient extends type_ts_1.BaseType {
|
|
6
7
|
_subtype;
|
|
7
8
|
_fallbackType;
|
|
8
9
|
_createFallbackSnapshot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilient.js","sourceRoot":"","sources":["../../../src/types/utility-types/resilient.ts"],"names":[],"mappings":";;AAuNA,8BAQC;AA/ND,
|
|
1
|
+
{"version":3,"file":"resilient.js","sourceRoot":"","sources":["../../../src/types/utility-types/resilient.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractNodeType,\n type IAnyType,\n type IType,\n type IValidationContext,\n type IValidationResult,\n assertIsType,\n fail,\n isStateTreeNode,\n isType,\n typeCheckSuccess\n} from \"../../internal.ts\"\n\nclass Resilient<IT extends IAnyType, FT extends IAnyType> extends BaseType<\n IT[\"CreationType\"] | FT[\"CreationType\"],\n IT[\"SnapshotType\"] | FT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"] | FT[\"TypeWithoutSTN\"],\n ExtractNodeType<IT> | ExtractNodeType<FT>\n> {\n get flags() {\n return this._subtype.flags\n }\n\n constructor(\n private readonly _subtype: IT,\n private readonly _fallbackType: FT,\n private readonly _createFallbackSnapshot: (\n error: unknown,\n snapshot: any\n ) => FT[\"CreationType\"]\n ) {\n super(`resilient(${_subtype.name})`)\n }\n\n describe() {\n return `resilient(${this._subtype.describe()})`\n }\n\n private _instantiateFallback(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n originalSnapshot: any,\n originalError: unknown\n ): this[\"N\"] {\n let fallbackSnapshot: FT[\"CreationType\"]\n try {\n fallbackSnapshot = this._createFallbackSnapshot(\n originalError,\n originalSnapshot\n )\n } catch (e) {\n throw fail(\n `resilient: createFallbackSnapshot threw while handling error for '${this._subtype.name}': ${originalError}. createFallbackSnapshot error: ${e}`\n )\n }\n try {\n return this._fallbackType.instantiate(\n parent,\n subpath,\n environment,\n fallbackSnapshot\n ) as this[\"N\"]\n } catch (e) {\n throw fail(\n `resilient: fallback type '${this._fallbackType.name}' failed to instantiate while handling error for '${this._subtype.name}': ${originalError}. Fallback error: ${e}`\n )\n }\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n if (isStateTreeNode(initialValue)) {\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n initialValue\n ) as this[\"N\"]\n }\n try {\n return this._subtype.instantiate(\n parent,\n subpath,\n environment,\n initialValue\n ) as this[\"N\"]\n } catch (e) {\n return this._instantiateFallback(\n parent,\n subpath,\n environment,\n initialValue,\n e\n )\n }\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n if (isStateTreeNode(newValue)) {\n return this._subtype.reconcile(\n current,\n newValue,\n parent,\n subpath\n ) as this[\"N\"]\n }\n if (this._fallbackType.isAssignableFrom(current.type)) {\n try {\n return this._subtype.instantiate(\n parent,\n subpath,\n undefined,\n newValue\n ) as this[\"N\"]\n } catch (e) {\n return this._fallbackType.reconcile(\n current,\n this._createFallbackSnapshot(e, newValue),\n parent,\n subpath\n ) as this[\"N\"]\n }\n }\n try {\n return this._subtype.reconcile(\n current,\n newValue,\n parent,\n subpath\n ) as this[\"N\"]\n } catch (e) {\n current.die()\n return this._instantiateFallback(parent, subpath, undefined, newValue, e)\n }\n }\n\n isValidSnapshot(\n _value: this[\"C\"],\n _context: IValidationContext\n ): IValidationResult {\n return typeCheckSuccess()\n }\n\n is(thing: any): thing is any {\n if (isType(thing)) {\n return (\n this._subtype.isAssignableFrom(thing) ||\n this._fallbackType.isAssignableFrom(thing)\n )\n }\n try {\n if (this._subtype.is(thing)) {\n return true\n }\n } catch (_e) {\n // subtype.is() may throw (e.g. union dispatcher)\n }\n try {\n return this._fallbackType.is(thing)\n } catch (_e) {\n return false\n }\n }\n\n isAssignableFrom(type: IAnyType) {\n return (\n this._subtype.isAssignableFrom(type) ||\n this._fallbackType.isAssignableFrom(type)\n )\n }\n\n getSubTypes() {\n return [this._subtype, this._fallbackType]\n }\n\n getSnapshot(node: this[\"N\"]): this[\"S\"] {\n return node.snapshot\n }\n}\n\nexport interface IResilientType<\n IT extends IAnyType,\n FT extends IAnyType\n> extends IType<\n IT[\"CreationType\"] | FT[\"CreationType\"],\n IT[\"SnapshotType\"] | FT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"] | FT[\"TypeWithoutSTN\"]\n> {}\n\n/**\n * `types.resilient` - Wraps a type so that instantiation errors are caught\n * and a fallback type is used instead. This is useful for loading data that\n * may contain unknown or invalid subtrees (e.g., plugin types that are not\n * installed) without crashing the entire state tree.\n *\n * The `createFallbackSnapshot` callback receives the caught error and the\n * original snapshot, and must return a valid snapshot for the fallback type.\n *\n * @param type The type to wrap.\n * @param fallbackType The fallback type to use when instantiation fails.\n * @param createFallbackSnapshot Callback that produces a fallback snapshot from the error and original snapshot.\n * @returns A resilient type.\n */\nexport function resilient<IT extends IAnyType, FT extends IAnyType>(\n type: IT,\n fallbackType: FT,\n createFallbackSnapshot: (error: unknown, snapshot: any) => FT[\"CreationType\"]\n): IResilientType<IT, FT> {\n assertIsType(type, 1)\n assertIsType(fallbackType, 2)\n return new Resilient(type, fallbackType, createFallbackSnapshot)\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.snapshotProcessor = snapshotProcessor;
|
|
4
|
+
const type_ts_1 = require("../../core/type/type.js");
|
|
4
5
|
const internal_ts_1 = require("../../internal.js");
|
|
5
6
|
/** @hidden */
|
|
6
7
|
const $preProcessorFailed = Symbol("$preProcessorFailed");
|
|
7
|
-
class SnapshotProcessor extends
|
|
8
|
+
class SnapshotProcessor extends type_ts_1.BaseType {
|
|
8
9
|
_subtype;
|
|
9
10
|
_processors;
|
|
10
11
|
get flags() {
|
|
@@ -97,7 +98,7 @@ class SnapshotProcessor extends internal_ts_1.BaseType {
|
|
|
97
98
|
return this._subtype.isAssignableFrom(type);
|
|
98
99
|
}
|
|
99
100
|
isMatchingSnapshotId(current, snapshot) {
|
|
100
|
-
if (!(this._subtype instanceof
|
|
101
|
+
if (!(this._subtype instanceof type_ts_1.ComplexType)) {
|
|
101
102
|
return false;
|
|
102
103
|
}
|
|
103
104
|
const processedSn = this.preProcessSnapshot(snapshot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseType, ComplexType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type ExtractNodeType,\n type IAnyType,\n type Instance,\n type IType,\n type IValidationContext,\n type IValidationResult,\n ObjectNode,\n TypeFlags,\n assertIsType,\n devMode,\n fail,\n getSnapshot,\n isStateTreeNode,\n isType,\n isUnionType,\n typeCheckFailure\n} from \"../../internal.ts\"\n\n/** @hidden */\ndeclare const $mstNotCustomized: unique symbol\n\n/** @hidden */\nconst $preProcessorFailed: unique symbol = Symbol(\"$preProcessorFailed\")\n\n/** @hidden */\n// tslint:disable-next-line:class-name\nexport interface _NotCustomized {\n // only for typings\n readonly [$mstNotCustomized]: undefined\n}\n/** @hidden */\nexport type _CustomOrOther<Custom, Other> = Custom extends _NotCustomized\n ? Other\n : Custom\n\nclass SnapshotProcessor<IT extends IAnyType, CustomC, CustomS> extends BaseType<\n _CustomOrOther<CustomC, IT[\"CreationType\"]>,\n _CustomOrOther<CustomS, IT[\"SnapshotType\"]>,\n IT[\"TypeWithoutSTN\"],\n ExtractNodeType<IT>\n> {\n get flags() {\n return this._subtype.flags | TypeFlags.SnapshotProcessor\n }\n\n constructor(\n private readonly _subtype: IT,\n private readonly _processors: ISnapshotProcessors<IT, CustomC, CustomS>,\n name?: string\n ) {\n super(name || _subtype.name)\n }\n\n describe() {\n return `snapshotProcessor(${this._subtype.describe()})`\n }\n\n private preProcessSnapshot(sn: this[\"C\"]): IT[\"CreationType\"] {\n if (this._processors.preProcessor) {\n return this._processors.preProcessor.call(null, sn)\n }\n return sn as any\n }\n\n private preProcessSnapshotSafe(\n sn: this[\"C\"]\n ): IT[\"CreationType\"] | typeof $preProcessorFailed {\n try {\n return this.preProcessSnapshot(sn)\n } catch (_e) {\n return $preProcessorFailed\n }\n }\n\n private postProcessSnapshot(\n sn: IT[\"SnapshotType\"],\n node: this[\"N\"]\n ): this[\"S\"] {\n if (this._processors.postProcessor) {\n return this._processors.postProcessor!.call(\n null,\n sn,\n node.storedValue\n ) as any\n }\n return sn\n }\n\n private _fixNode(node: this[\"N\"]): void {\n // the node has to use these methods rather than the original type ones\n proxyNodeTypeMethods(node.type, this, \"create\")\n\n if (node instanceof ObjectNode) {\n node.hasSnapshotPostProcessor = !!this._processors.postProcessor\n }\n const oldGetSnapshot = node.getSnapshot\n node.getSnapshot = () =>\n this.postProcessSnapshot(oldGetSnapshot.call(node), node) as any\n if (!isUnionType(this._subtype)) {\n node.getReconciliationType = () => {\n return this\n }\n }\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n const processedInitialValue = isStateTreeNode(initialValue)\n ? initialValue\n : this.preProcessSnapshot(initialValue)\n const node = this._subtype.instantiate(\n parent,\n subpath,\n environment,\n processedInitialValue\n ) as any\n this._fixNode(node)\n return node\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n const node = this._subtype.reconcile(\n current,\n isStateTreeNode(newValue) ? newValue : this.preProcessSnapshot(newValue),\n parent,\n subpath\n ) as any\n if (node !== current) {\n this._fixNode(node)\n }\n return node\n }\n\n getSnapshot(node: this[\"N\"], applyPostProcess: boolean = true): this[\"S\"] {\n const sn = this._subtype.getSnapshot(node)\n return applyPostProcess ? this.postProcessSnapshot(sn, node) : sn\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n const processedSn = this.preProcessSnapshotSafe(value)\n if (processedSn === $preProcessorFailed) {\n return typeCheckFailure(context, value, \"Failed to preprocess value\")\n }\n return this._subtype.validate(processedSn, context)\n }\n\n getSubTypes() {\n return this._subtype\n }\n\n is(thing: any): thing is any {\n const value = isType(thing)\n ? this._subtype\n : isStateTreeNode(thing)\n ? getSnapshot(thing, false)\n : this.preProcessSnapshotSafe(thing)\n if (value === $preProcessorFailed) {\n return false\n }\n return (\n this._subtype.validate(value, [{ path: \"\", type: this._subtype }])\n .length === 0\n )\n }\n\n isAssignableFrom(type: IAnyType): boolean {\n return this._subtype.isAssignableFrom(type)\n }\n\n isMatchingSnapshotId(current: this[\"N\"], snapshot: this[\"C\"]): boolean {\n if (!(this._subtype instanceof ComplexType)) {\n return false\n }\n const processedSn = this.preProcessSnapshot(snapshot)\n return this._subtype.isMatchingSnapshotId(current as any, processedSn)\n }\n}\n\nfunction proxyNodeTypeMethods(\n nodeType: any,\n snapshotProcessorType: any,\n ...methods: (keyof SnapshotProcessor<any, any, any>)[]\n) {\n for (const method of methods) {\n nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType)\n }\n}\n\n// public API\n\n/**\n * A type that has its snapshots processed.\n */\nexport interface ISnapshotProcessor<\n IT extends IAnyType,\n CustomC,\n CustomS\n> extends IType<\n _CustomOrOther<CustomC, IT[\"CreationType\"]>,\n _CustomOrOther<CustomS, IT[\"SnapshotType\"]>,\n IT[\"TypeWithoutSTN\"]\n> {}\n\n/**\n * Snapshot processors.\n */\nexport interface ISnapshotProcessors<IT extends IAnyType, CustomC, CustomS> {\n /**\n * Function that transforms an input snapshot.\n */\n preProcessor?(snapshot: CustomC): IT[\"CreationType\"]\n /**\n * Function that transforms an output snapshot.\n * @param snapshot\n */\n postProcessor?(snapshot: IT[\"SnapshotType\"], node: Instance<IT>): CustomS\n}\n\n/**\n * `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.\n *\n * Example:\n * ```ts\n * const Todo1 = types.model({ text: types.string })\n * // in the backend the text type must be null when empty\n * interface BackendTodo {\n * text: string | null\n * }\n *\n * const Todo2 = types.snapshotProcessor(Todo1, {\n * // from snapshot to instance\n * preProcessor(snapshot: BackendTodo) {\n * return {\n * text: sn.text || \"\";\n * }\n * },\n *\n * // from instance to snapshot\n * postProcessor(snapshot, node): BackendTodo {\n * return {\n * text: !sn.text ? null : sn.text\n * }\n * }\n * })\n * ```\n *\n * @param type Type to run the processors over.\n * @param processors Processors to run.\n * @param name Type name, or undefined to inherit the inner type one.\n * @returns\n */\nexport function snapshotProcessor<\n IT extends IAnyType,\n CustomC = _NotCustomized,\n CustomS = _NotCustomized\n>(\n type: IT,\n processors: ISnapshotProcessors<IT, CustomC, CustomS>,\n name?: string\n): ISnapshotProcessor<IT, CustomC, CustomS> {\n assertIsType(type, 1)\n if (devMode()) {\n if (\n processors.postProcessor &&\n typeof processors.postProcessor !== \"function\"\n ) {\n // istanbul ignore next\n throw fail(\"postSnapshotProcessor must be a function\")\n }\n if (\n processors.preProcessor &&\n typeof processors.preProcessor !== \"function\"\n ) {\n // istanbul ignore next\n throw fail(\"preSnapshotProcessor must be a function\")\n }\n }\n\n return new SnapshotProcessor(type, processors, name)\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseType } from "../../core/type/type.ts";
|
|
2
|
+
import { type AnyObjectNode, type IAnyType, type IModelType, type IType, type IValidationContext, type IValidationResult, type ModelCreationType2, type ModelInstanceType, type ModelProperties, type ModelSnapshotType2, TypeFlags, type _NotCustomized } from "../../internal.ts";
|
|
2
3
|
export type ITypeDispatcher = (snapshot: any) => IAnyType;
|
|
3
4
|
export interface UnionOptions {
|
|
4
5
|
eager?: boolean;
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Union = void 0;
|
|
4
4
|
exports.union = union;
|
|
5
5
|
exports.isUnionType = isUnionType;
|
|
6
|
+
const type_ts_1 = require("../../core/type/type.js");
|
|
6
7
|
const internal_ts_1 = require("../../internal.js");
|
|
7
8
|
/**
|
|
8
9
|
* @internal
|
|
9
10
|
* @hidden
|
|
10
11
|
*/
|
|
11
|
-
class Union extends
|
|
12
|
+
class Union extends type_ts_1.BaseType {
|
|
12
13
|
_types;
|
|
13
14
|
_dispatcher;
|
|
14
15
|
_eager = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/types/utility-types/union.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/types/utility-types/union.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseType } from \"../../core/type/type.ts\"\nimport {\n type AnyObjectNode,\n type IAnyType,\n type IModelType,\n type IType,\n type IValidationContext,\n type IValidationError,\n type IValidationResult,\n type ModelCreationType2,\n type ModelInstanceType,\n type ModelProperties,\n type ModelSnapshotType2,\n ModelType,\n TypeFlags,\n type _NotCustomized,\n assertArg,\n assertIsType,\n devMode,\n fail,\n flattenTypeErrors,\n isPlainObject,\n isStateTreeNode,\n isType,\n isTypeCheckingEnabled,\n typeCheckFailure,\n typeCheckSuccess\n} from \"../../internal.ts\"\n\nexport type ITypeDispatcher = (snapshot: any) => IAnyType\n\nexport interface UnionOptions {\n eager?: boolean\n dispatcher?: ITypeDispatcher\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class Union extends BaseType<any, any, any> {\n private readonly _dispatcher?: ITypeDispatcher\n private readonly _eager: boolean = true\n\n get flags() {\n let result: TypeFlags = TypeFlags.Union\n\n this._types.forEach(type => {\n result |= type.flags\n })\n\n return result\n }\n\n constructor(\n name: string,\n private readonly _types: IAnyType[],\n options?: UnionOptions\n ) {\n super(name)\n options = {\n eager: true,\n dispatcher: undefined,\n ...options\n }\n this._dispatcher = options.dispatcher\n if (!options.eager) {\n this._eager = false\n }\n }\n\n isAssignableFrom(type: IAnyType) {\n return this._types.some(subType => subType.isAssignableFrom(type))\n }\n\n describe() {\n return (\n \"(\" + this._types.map(factory => factory.describe()).join(\" | \") + \")\"\n )\n }\n\n instantiate(\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: this[\"C\"] | this[\"T\"]\n ): this[\"N\"] {\n const type = this.determineType(initialValue, undefined)\n if (!type) {\n throw fail(this.noMatchMessage(initialValue))\n } // can happen in prod builds\n return type.instantiate(parent, subpath, environment, initialValue)\n }\n\n reconcile(\n current: this[\"N\"],\n newValue: this[\"C\"] | this[\"T\"],\n parent: AnyObjectNode,\n subpath: string\n ): this[\"N\"] {\n const type = this.determineType(newValue, current.getReconciliationType())\n if (!type) {\n throw fail(this.noMatchMessage(newValue))\n } // can happen in prod builds\n return type.reconcile(current, newValue, parent, subpath)\n }\n\n private noMatchMessage(value: unknown): string {\n const discriminator =\n isPlainObject(value) && typeof (value as any).type === \"string\"\n ? ` for snapshot with type \"${(value as any).type}\"`\n : \"\"\n return `No matching type for union ${this.name}${discriminator}`\n }\n\n determineType(\n value: this[\"C\"] | this[\"T\"],\n reconcileCurrentType: IAnyType | undefined\n ): IAnyType | undefined {\n // try the dispatcher, if defined\n if (this._dispatcher) {\n return this._dispatcher(value)\n }\n\n // fast path: when type checking is disabled, try quick structural matching first\n if (!isTypeCheckingEnabled()) {\n const quickMatch = this.tryQuickMatch(value, reconcileCurrentType)\n if (quickMatch) {\n return quickMatch\n }\n // for plain object snapshots that didn't match via quick path, try all types\n // with quick matching before falling back to full validation\n // (state tree nodes must go through full validation for type identity checks)\n if (isPlainObject(value) && !isStateTreeNode(value)) {\n for (const type of this._types) {\n if (this.snapshotLooksLikeType(value, type)) {\n return type\n }\n }\n }\n }\n\n // find the most accomodating type\n // if we are using reconciliation try the current node type first (fix for #1045)\n if (reconcileCurrentType) {\n if (reconcileCurrentType.is(value)) {\n return reconcileCurrentType\n }\n return this._types\n .filter(t => t !== reconcileCurrentType)\n .find(type => type.is(value))\n } else {\n return this._types.find(type => type.is(value))\n }\n }\n\n private tryQuickMatch(\n value: any,\n reconcileCurrentType: IAnyType | undefined\n ): IAnyType | undefined {\n // state tree nodes need full type compatibility checking\n // (e.g., A.is(B.create()) must return false even if snapshots are compatible)\n if (isStateTreeNode(value)) {\n return undefined\n }\n\n // for non-object values, try primitive matching\n if (!isPlainObject(value)) {\n return this.tryMatchPrimitive(value)\n }\n\n // for objects, try structural matching against model types\n const typesToCheck = reconcileCurrentType\n ? [\n reconcileCurrentType,\n ...this._types.filter(t => t !== reconcileCurrentType)\n ]\n : this._types\n\n for (const type of typesToCheck) {\n if (this.snapshotLooksLikeType(value, type)) {\n return type\n }\n }\n return undefined\n }\n\n private tryMatchPrimitive(value: any): IAnyType | undefined {\n const valueType = typeof value\n for (const type of this._types) {\n const flags = type.flags\n if (\n (valueType === \"string\" && flags & TypeFlags.String) ||\n (valueType === \"number\" &&\n flags &\n (TypeFlags.Number |\n TypeFlags.Integer |\n TypeFlags.Float |\n TypeFlags.Finite)) ||\n (valueType === \"boolean\" && flags & TypeFlags.Boolean) ||\n (value === null && flags & TypeFlags.Null) ||\n (value === undefined && flags & TypeFlags.Undefined)\n ) {\n return type\n }\n // for literals, check exact value match\n if (flags & TypeFlags.Literal) {\n if (type.is(value)) {\n return type\n }\n }\n }\n return undefined\n }\n\n private snapshotLooksLikeType(value: any, type: IAnyType): boolean {\n // for model types, check if snapshot has all the required property keys\n // and that any literal-typed properties match exactly\n if (type instanceof ModelType) {\n const props = type.properties\n // use cached propertyNames from ModelType instead of Object.keys()\n for (const key of type.propertyNames) {\n const propType = props[key]!\n const isOptional = propType.flags & TypeFlags.Optional\n const propValue = value[key]\n\n // check required properties exist and are not undefined\n // (unless the type accepts undefined, which Optional types do)\n if (!isOptional) {\n if (!(key in value) || propValue === undefined) {\n return false\n }\n }\n\n // for literal types, verify the value matches exactly\n // this is critical for discriminated unions\n if (propType.flags & TypeFlags.Literal) {\n if (!propType.is(propValue)) {\n return false\n }\n }\n }\n return true\n }\n return false\n }\n\n isValidSnapshot(\n value: this[\"C\"],\n context: IValidationContext\n ): IValidationResult {\n if (this._dispatcher) {\n return this._dispatcher(value).validate(value, context)\n }\n\n // for plain-object snapshots, prefer union members whose literal-typed\n // discriminator properties match the value (e.g. {type: \"MsaView\"})\n // so error output is scoped to the intended branch instead of every member\n const candidates =\n isPlainObject(value) && !isStateTreeNode(value)\n ? this._types.filter(t => this.snapshotLooksLikeType(value, t))\n : []\n const typesToValidate = candidates.length > 0 ? candidates : this._types\n\n const allErrors: IValidationError[][] = []\n let applicableTypes = 0\n for (const type of typesToValidate) {\n const errors = type.validate(value, context)\n if (errors.length === 0) {\n if (this._eager) {\n return typeCheckSuccess()\n } else {\n applicableTypes++\n }\n } else {\n allErrors.push(errors)\n }\n }\n\n if (applicableTypes === 1) {\n return typeCheckSuccess()\n }\n return typeCheckFailure(\n context,\n value,\n \"No type is applicable for the union\"\n ).concat(flattenTypeErrors(allErrors))\n }\n\n getSubTypes() {\n return this._types\n }\n}\n\n/**\n * Transform _NotCustomized | _NotCustomized... to _NotCustomized, _NotCustomized | A | B to A | B\n * @hidden\n */\nexport type _CustomCSProcessor<T> =\n Exclude<T, _NotCustomized> extends never\n ? _NotCustomized\n : Exclude<T, _NotCustomized>\n\n/** @hidden */\nexport interface ITypeUnion<C, S, T> extends IType<\n _CustomCSProcessor<C>,\n _CustomCSProcessor<S>,\n T\n> {}\n\n// generated with packages/mobx-state-tree/scripts/generate-union-types.js\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB,\n OB, FCB, FSB>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G:\n IModelType<PG, OG, FCG, FSG>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE,\n FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD, OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>\n// prettier-ignore\nexport function union<PA extends ModelProperties, OA, FCA, FSA, PB extends ModelProperties, OB, FCB, FSB, PC extends ModelProperties, OC, FCC, FSC, PD extends ModelProperties, OD,\n FCD, FSD, PE extends ModelProperties, OE, FCE, FSE, PF extends ModelProperties, OF, FCF, FSF, PG extends ModelProperties, OG, FCG, FSG, PH extends ModelProperties, OH, FCH, FSH, PI extends ModelProperties, OI, FCI, FSI>(options: UnionOptions, A: IModelType<PA, OA, FCA, FSA>, B: IModelType<PB, OB, FCB, FSB>, C: IModelType<PC, OC, FCC, FSC>, D: IModelType<PD,\n OD, FCD, FSD>, E: IModelType<PE, OE, FCE, FSE>, F: IModelType<PF, OF, FCF, FSF>, G: IModelType<PG, OG, FCG, FSG>, H: IModelType<PH, OH, FCH, FSH>, I: IModelType<PI, OI, FCI, FSI>): ITypeUnion<ModelCreationType2<PA, FCA> | ModelCreationType2<PB, FCB> | ModelCreationType2<PC, FCC> | ModelCreationType2<PD, FCD> | ModelCreationType2<PE, FCE> | ModelCreationType2<PF, FCF> | ModelCreationType2<PG, FCG> | ModelCreationType2<PH, FCH> | ModelCreationType2<PI, FCI>, ModelSnapshotType2<PA, FSA> | ModelSnapshotType2<PB, FSB> | ModelSnapshotType2<PC, FSC> | ModelSnapshotType2<PD, FSD> | ModelSnapshotType2<PE, FSE> | ModelSnapshotType2<PF, FSF> | ModelSnapshotType2<PG, FSG> | ModelSnapshotType2<PH, FSH> | ModelSnapshotType2<PI, FSI>, ModelInstanceType<PA, OA> | ModelInstanceType<PB, OB> | ModelInstanceType<PC, OC> | ModelInstanceType<PD, OD> | ModelInstanceType<PE, OE> | ModelInstanceType<PF, OF> | ModelInstanceType<PG, OG> | ModelInstanceType<PH, OH> | ModelInstanceType<PI, OI>>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>): ITypeUnion<CA | CB, SA | SB, TA | TB>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>): ITypeUnion<CA | CB | CC, SA | SB | SC, TA | TB | TC>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB |\n CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>): ITypeUnion<CA | CB | CC | CD, SA | SB | SC | SD, TA | TB | TC | TD>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>): ITypeUnion<CA | CB | CC | CD | CE, SA | SB | SC | SD | SE, TA | TB | TC | TD | TE>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>): ITypeUnion<CA | CB | CC | CD | CE | CF, SA | SB | SC | SD | SE | SF, TA | TB | TC | TD | TE | TF>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD |\n TE | TF | TG>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG, SA | SB | SC | SD | SE | SF | SG, TA | TB | TC | TD | TE | TF | TG>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC |\n SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB,\n TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH, SA | SB | SC | SD | SE | SF | SG | SH, TA | TB | TC | TD | TE | TF | TG | TH>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD |\n CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>\n// prettier-ignore\nexport function union<CA, SA, TA, CB, SB, TB, CC, SC, TC, CD, SD, TD, CE, SE, TE, CF, SF, TF, CG, SG, TG, CH, SH, TH, CI, SI, TI>(options: UnionOptions, A: IType<CA, SA, TA>, B: IType<CB, SB, TB>, C: IType<CC, SC, TC>, D: IType<CD, SD, TD>, E: IType<CE, SE, TE>, F: IType<CF, SF, TF>, G: IType<CG, SG, TG>, H: IType<CH, SH, TH>, I: IType<CI, SI, TI>): ITypeUnion<CA | CB | CC | CD | CE | CF | CG | CH | CI, SA | SB | SC | SD | SE | SF | SG | SH | SI, TA | TB | TC | TD | TE | TF | TG | TH | TI>\n\n// manually written\nexport function union(...types: IAnyType[]): IAnyType\nexport function union(\n dispatchOrType: UnionOptions | IAnyType,\n ...otherTypes: IAnyType[]\n): IAnyType\n/**\n * `types.union` - Create a union of multiple types. If the correct type cannot be inferred unambiguously from a snapshot, provide a dispatcher function of the form `(snapshot) => Type`.\n *\n * @param optionsOrType\n * @param otherTypes\n * @returns\n */\nexport function union(\n optionsOrType: UnionOptions | IAnyType,\n ...otherTypes: IAnyType[]\n): IAnyType {\n const options = isType(optionsOrType) ? undefined : optionsOrType\n const types = isType(optionsOrType)\n ? [optionsOrType, ...otherTypes]\n : otherTypes\n const name = \"(\" + types.map(type => type.name).join(\" | \") + \")\"\n\n // check all options\n if (devMode()) {\n if (options) {\n assertArg(\n options,\n o => isPlainObject(o),\n \"object { eager?: boolean, dispatcher?: Function }\",\n 1\n )\n }\n types.forEach((type, i) => {\n assertIsType(type, options ? i + 2 : i + 1)\n })\n }\n return new Union(name, types, options)\n}\n\n/**\n * Returns if a given value represents a union type.\n *\n * @param type\n * @returns\n */\nexport function isUnionType<IT extends IAnyType>(type: IT): type is IT {\n return (type.flags & TypeFlags.Union) > 0\n}\n"]}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n _getGlobalState,\n defineProperty as mobxDefineProperty,\n isObservableArray,\n isObservableObject\n} from \"mobx\"\n\nimport type { Primitives } from \"./core/type/type.ts\"\n\nconst plainObjectString = Object.toString()\n\n/**\n * @internal\n * @hidden\n */\nexport const EMPTY_ARRAY: ReadonlyArray<any> = Object.freeze([])\n\n/**\n * @internal\n * @hidden\n */\n\nexport const EMPTY_OBJECT: {} = Object.freeze({})\n\n/**\n * @internal\n * @hidden\n */\nexport const mobxShallow = _getGlobalState().useProxies\n ? { deep: false }\n : { deep: false, proxy: false }\nObject.freeze(mobxShallow)\n\n/**\n * A generic disposer.\n */\nexport type IDisposer = () => void\n\n/**\n * @internal\n * @hidden\n */\nexport function fail(message = \"Illegal state\"): Error {\n return new Error(\"[mobx-state-tree] \" + message)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function identity(_: any): any {\n return _\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function noop() {}\n\n/**\n * @internal\n * @hidden\n */\nexport const isInteger = Number.isInteger\n\n/**\n * @internal\n * @hidden\n */\nexport function isFloat(val: any) {\n return Number(val) === val && val % 1 !== 0\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isFinite(val: any) {\n return Number.isFinite(val)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isArray(val: any): val is any[] {\n return Array.isArray(val) || isObservableArray(val)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function asArray<T>(\n val: undefined | null | T | T[] | ReadonlyArray<T>\n): T[] {\n if (!val) {\n return EMPTY_ARRAY as any as T[]\n }\n if (isArray(val)) {\n return val as T[]\n }\n return [val] as T[]\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function extend<A, B>(a: A, b: B): A & B\n/**\n * @internal\n * @hidden\n */\nexport function extend<A, B, C>(a: A, b: B, c: C): A & B & C\n/**\n * @internal\n * @hidden\n */\nexport function extend<A, B, C, D>(a: A, b: B, c: C, d: D): A & B & C & D\n/**\n * @internal\n * @hidden\n */\nexport function extend(a: any, ...b: any[]): any\n/**\n * @internal\n * @hidden\n */\nexport function extend(a: any, ...b: any[]) {\n for (let i = 0; i < b.length; i++) {\n const current = b[i]\n for (const key in current) {\n a[key] = current[key]\n }\n }\n return a\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isPlainObject(value: any): value is { [k: string]: any } {\n if (value === null || typeof value !== \"object\") {\n return false\n }\n const proto = Object.getPrototypeOf(value)\n if (proto == null) {\n return true\n }\n return proto.constructor?.toString() === plainObjectString\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isMutable(value: any) {\n return (\n value !== null &&\n typeof value === \"object\" &&\n !(value instanceof Date) &&\n !(value instanceof RegExp)\n )\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isPrimitive(\n value: any,\n includeDate = true\n): value is Primitives {\n return (\n value === null ||\n value === undefined ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n (includeDate && value instanceof Date)\n )\n}\n\n/**\n * @internal\n * @hidden\n * Freeze a value and return it (if not in production)\n */\nexport function freeze<T>(value: T): T {\n if (!devMode()) {\n return value\n }\n return isPrimitive(value) || isObservableArray(value)\n ? value\n : Object.freeze(value)\n}\n\n/**\n * @internal\n * @hidden\n * Recursively freeze a value (if not in production)\n */\nexport function deepFreeze<T>(value: T): T {\n if (!devMode()) {\n return value\n }\n freeze(value)\n\n if (isPlainObject(value)) {\n Object.keys(value).forEach(propKey => {\n if (\n !isPrimitive((value as any)[propKey]) &&\n !Object.isFrozen((value as any)[propKey])\n ) {\n deepFreeze((value as any)[propKey])\n }\n })\n }\n\n return value\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isSerializable(value: any) {\n return typeof value !== \"function\"\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function defineProperty(\n object: any,\n key: PropertyKey,\n descriptor: PropertyDescriptor\n) {\n if (isObservableObject(object)) {\n mobxDefineProperty(object, key, descriptor)\n } else {\n Object.defineProperty(object, key, descriptor)\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function addHiddenFinalProp(object: any, propName: string, value: any) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value\n })\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function addHiddenWritableProp(\n object: any,\n propName: string,\n value: any\n) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value\n })\n}\n\n/**\n * @internal\n * @hidden\n */\nexport type ArgumentTypes<F extends Function> = F extends (\n ...args: infer A\n) => any\n ? A\n : never\n\n/**\n * @internal\n * @hidden\n */\nclass EventHandler<F extends Function> {\n private handlers: F[] = []\n private emitting = false\n private pendingUnregisters: F[] | null = null\n\n get hasSubscribers(): boolean {\n return this.handlers.length > 0\n }\n\n register(fn: F, atTheBeginning = false): IDisposer {\n if (atTheBeginning) {\n this.handlers.unshift(fn)\n } else {\n this.handlers.push(fn)\n }\n return () => {\n this.unregister(fn)\n }\n }\n\n has(fn: F): boolean {\n return this.handlers.indexOf(fn) >= 0\n }\n\n unregister(fn: F) {\n if (this.emitting) {\n // defer unregistration until emit is done\n if (!this.pendingUnregisters) {\n this.pendingUnregisters = []\n }\n this.pendingUnregisters.push(fn)\n return\n }\n const index = this.handlers.indexOf(fn)\n if (index >= 0) {\n this.handlers.splice(index, 1)\n }\n }\n\n clear() {\n this.handlers.length = 0\n }\n\n emit(...args: ArgumentTypes<F>) {\n // use emitting flag to defer unregistrations instead of copying array\n this.emitting = true\n try {\n for (const f of this.handlers) {\n f(...args)\n }\n } finally {\n this.emitting = false\n // process any deferred unregistrations\n if (this.pendingUnregisters) {\n for (const fn of this.pendingUnregisters) {\n const index = this.handlers.indexOf(fn)\n if (index >= 0) {\n this.handlers.splice(index, 1)\n }\n }\n this.pendingUnregisters = null\n }\n }\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class EventHandlers<E extends { [k: string]: Function }> {\n private eventHandlers?: { [k in keyof E]?: EventHandler<Function> }\n\n hasSubscribers(event: keyof E): boolean {\n const handler = this.eventHandlers && this.eventHandlers[event]\n return !!handler && handler!.hasSubscribers\n }\n\n register<N extends keyof E>(\n event: N,\n fn: E[N],\n atTheBeginning = false\n ): IDisposer {\n if (!this.eventHandlers) {\n this.eventHandlers = {}\n }\n let handler = this.eventHandlers[event]\n if (!handler) {\n handler = this.eventHandlers[event] = new EventHandler()\n }\n return handler.register(fn, atTheBeginning)\n }\n\n has<N extends keyof E>(event: N, fn: E[N]): boolean {\n const handler = this.eventHandlers && this.eventHandlers[event]\n return !!handler && handler!.has(fn)\n }\n\n unregister<N extends keyof E>(event: N, fn: E[N]) {\n const handler = this.eventHandlers && this.eventHandlers[event]\n if (handler) {\n handler!.unregister(fn)\n }\n }\n\n clear<N extends keyof E>(event: N) {\n if (this.eventHandlers) {\n delete this.eventHandlers[event]\n }\n }\n\n clearAll() {\n this.eventHandlers = undefined\n }\n\n emit<N extends keyof E>(event: N, ...args: ArgumentTypes<E[N]>) {\n const handler = this.eventHandlers && this.eventHandlers[event]\n if (handler) {\n ;(handler!.emit as any)(...args)\n }\n }\n}\n\nconst prototypeHasOwnProperty = Object.prototype.hasOwnProperty\n\n/**\n * @internal\n * @hidden\n */\nexport function hasOwnProperty(object: object, propName: string) {\n return prototypeHasOwnProperty.call(object, propName)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function argsToArray(args: IArguments): any[] {\n const res = new Array(args.length)\n for (let i = 0; i < args.length; i++) {\n res[i] = args[i]\n }\n return res\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function stringStartsWith(str: string, beginning: string) {\n return str.indexOf(beginning) === 0\n}\n\n/**\n * @internal\n * @hidden\n */\nexport type DeprecatedFunction = Function & { ids?: { [id: string]: true } }\n\n/**\n * @internal\n * @hidden\n */\nexport const deprecated: DeprecatedFunction = function (\n id: string,\n message: string\n): void {\n // skip if running production\n if (!devMode()) {\n return\n }\n // warn if hasn't been warned before\n if (deprecated.ids && !deprecated.ids.hasOwnProperty(id)) {\n warnError(\"Deprecation warning: \" + message)\n }\n // mark as warned to avoid duplicate warn message\n if (deprecated.ids) {\n deprecated.ids[id] = true\n }\n}\ndeprecated.ids = {}\n\n/**\n * @internal\n * @hidden\n */\nexport function warnError(msg: string) {\n console.warn(new Error(`[mobx-state-tree] ${msg}`))\n}\n/**\n * @internal\n * @hidden\n */\nexport function isTypeCheckingEnabled() {\n return (\n devMode() ||\n (typeof process !== \"undefined\" &&\n process.env &&\n process.env.ENABLE_TYPE_CHECK === \"true\")\n )\n}\n\nlet _devMode = process.env.NODE_ENV !== \"production\"\n\n/**\n * @internal\n * @hidden\n */\nexport function devMode() {\n return _devMode\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function setDevMode(value: boolean) {\n _devMode = value\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function assertArg<T>(\n value: T,\n fn: (value: T) => boolean,\n typeName: string,\n argNumber: number | number[]\n) {\n if (devMode()) {\n if (!fn(value)) {\n // istanbul ignore next\n throw fail(\n `expected ${typeName} as argument ${asArray(argNumber).join(\" or \")}, got ${value} instead`\n )\n }\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function assertIsFunction(\n value: Function,\n argNumber: number | number[]\n) {\n assertArg(value, fn => typeof fn === \"function\", \"function\", argNumber)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function assertIsNumber(\n value: number,\n argNumber: number | number[],\n min?: number,\n max?: number\n) {\n assertArg(value, n => typeof n === \"number\", \"number\", argNumber)\n if (min !== undefined) {\n assertArg(value, n => n >= min, `number greater than ${min}`, argNumber)\n }\n if (max !== undefined) {\n assertArg(value, n => n <= max, `number lesser than ${max}`, argNumber)\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function assertIsString(\n value: string,\n argNumber: number | number[],\n canBeEmpty = true\n) {\n assertArg(value, s => typeof s === \"string\", \"string\", argNumber)\n if (!canBeEmpty) {\n assertArg(value, s => s !== \"\", \"not empty string\", argNumber)\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function setImmediateWithFallback(fn: (...args: any[]) => void) {\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(fn)\n } else if (typeof setImmediate === \"function\") {\n setImmediate(fn)\n } else {\n setTimeout(fn, 1)\n }\n}\n"]}
|