@jbrowse/mobx-state-tree 5.6.10 → 5.7.1
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 -86
- package/dist/mobx-state-tree.js.map +0 -1
- package/dist/mobx-state-tree.module.js +0 -84
- package/dist/mobx-state-tree.module.js.map +0 -1
package/dist/core/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/core/action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/core/action.ts"],"names":[],"mappings":"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","sourcesContent":["import { action as mobxAction } from \"mobx\"\n\nimport {\n Hook,\n devMode,\n fail,\n getRoot,\n getStateTreeNode,\n warnError\n} from \"../internal.ts\"\n\nimport type {\n AnyObjectNode,\n IActionContext,\n IAnyStateTreeNode,\n IDisposer\n} from \"../internal.ts\"\n\nexport type IMiddlewareEventType =\n | \"action\"\n | \"flow_spawn\"\n | \"flow_resume\"\n | \"flow_resume_error\"\n | \"flow_return\"\n | \"flow_throw\"\n// | \"task_spawn TODO, see #273\"\n\nexport interface IMiddlewareEvent extends IActionContext {\n /** Event type */\n readonly type: IMiddlewareEventType\n\n /** Parent event unique id */\n readonly parentId: number\n /** Parent event object */\n readonly parentEvent: IMiddlewareEvent | undefined\n\n /** Root event unique id */\n readonly rootId: number\n /** Id of all events, from root until current (excluding current) */\n readonly allParentIds: number[]\n}\n\nexport interface FunctionWithFlag extends Function {\n _isMSTAction?: boolean\n _isFlowAction?: boolean\n}\n\n/**\n * @internal\n * @hidden\n */\nexport type IMiddleware = {\n handler: IMiddlewareHandler\n includeHooks: boolean\n}\n\nexport type IMiddlewareHandler = (\n actionCall: IMiddlewareEvent,\n next: (actionCall: IMiddlewareEvent, callback?: (value: any) => any) => void,\n abort: (value: any) => void\n) => any\n\nlet nextActionId = 1\nlet currentActionContext: IMiddlewareEvent | undefined\n\n/**\n * @internal\n * @hidden\n */\nexport function getCurrentActionContext() {\n return currentActionContext\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function getNextActionId() {\n return nextActionId++\n}\n\n// TODO: optimize away entire action context if there is no middleware in tree?\n/**\n * @internal\n * @hidden\n */\nexport function runWithActionContext(context: IMiddlewareEvent, fn: Function) {\n const node = getStateTreeNode(context.context)\n\n if (context.type === \"action\") {\n node.assertAlive({\n actionContext: context\n })\n }\n\n const baseIsRunningAction = node._isRunningAction\n node._isRunningAction = true\n const previousContext = currentActionContext\n currentActionContext = context\n try {\n return runMiddleWares(node, context, fn)\n } finally {\n currentActionContext = previousContext\n node._isRunningAction = baseIsRunningAction\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function getParentActionContext(\n parentContext: IMiddlewareEvent | undefined\n) {\n if (!parentContext) {\n return undefined\n }\n if (parentContext.type === \"action\") {\n return parentContext\n }\n return parentContext.parentActionEvent\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function createActionInvoker<T extends FunctionWithFlag>(\n target: IAnyStateTreeNode,\n name: string,\n fn: T\n) {\n const res = function (...args: any[]) {\n const id = getNextActionId()\n const parentContext = currentActionContext\n const parentActionContext = getParentActionContext(parentContext)\n\n return runWithActionContext(\n {\n type: \"action\",\n name,\n id,\n args,\n context: target,\n tree: getRoot(target),\n rootId: parentContext ? parentContext.rootId : id,\n parentId: parentContext ? parentContext.id : 0,\n allParentIds: parentContext\n ? [...parentContext.allParentIds, parentContext.id]\n : [],\n parentEvent: parentContext,\n parentActionEvent: parentActionContext\n },\n fn\n )\n }\n ;(res as FunctionWithFlag)._isMSTAction = true\n ;(res as FunctionWithFlag)._isFlowAction = fn._isFlowAction\n return res\n}\n\n/**\n * Middleware can be used to intercept any action is invoked on the subtree where it is attached.\n * If a tree is protected (by default), this means that any mutation of the tree will pass through your middleware.\n *\n * For more details, see the [middleware docs](concepts/middleware.md)\n *\n * @param target Node to apply the middleware to.\n * @param middleware Middleware to apply.\n * @returns A callable function to dispose the middleware.\n */\nexport function addMiddleware(\n target: IAnyStateTreeNode,\n handler: IMiddlewareHandler,\n includeHooks: boolean = true\n): IDisposer {\n const node = getStateTreeNode(target)\n if (devMode()) {\n if (!node.isProtectionEnabled) {\n warnError(\n \"It is recommended to protect the state tree before attaching action middleware, as otherwise it cannot be guaranteed that all changes are passed through middleware. See `protect`\"\n )\n }\n }\n return node.addMiddleWare(handler, includeHooks)\n}\n\n/**\n * Binds middleware to a specific action.\n *\n * Example:\n * ```ts\n * type.actions(self => {\n * function takeA____() {\n * self.toilet.donate()\n * self.wipe()\n * self.wipe()\n * self.toilet.flush()\n * }\n * return {\n * takeA____: decorate(atomic, takeA____)\n * }\n * })\n * ```\n *\n * @param handler\n * @param fn\n * @param includeHooks\n * @returns The original function\n */\nexport function decorate<T extends Function>(\n handler: IMiddlewareHandler,\n fn: T,\n includeHooks = true\n): T {\n const middleware: IMiddleware = { handler, includeHooks }\n ;(fn as any).$mst_middleware = (fn as any).$mst_middleware || []\n ;(fn as any).$mst_middleware.push(middleware)\n return fn\n}\n\nclass CollectedMiddlewares {\n private arrayIndex = 0\n private inArrayIndex = 0\n private middlewares: IMiddleware[][] = []\n\n constructor(node: AnyObjectNode, fn: Function) {\n // we just push middleware arrays into an array of arrays to avoid making copies\n if ((fn as any).$mst_middleware) {\n this.middlewares.push((fn as any).$mst_middleware)\n }\n let n: AnyObjectNode | null = node\n // Find all middlewares. Optimization: cache this?\n while (n) {\n if (n.middlewares) {\n this.middlewares.push(n.middlewares)\n }\n n = n.parent\n }\n }\n\n get isEmpty() {\n return this.middlewares.length <= 0\n }\n\n getNextMiddleware(): IMiddleware | undefined {\n const array = this.middlewares[this.arrayIndex]\n if (!array) {\n return undefined\n }\n const item = array[this.inArrayIndex++]\n if (!item) {\n this.arrayIndex++\n this.inArrayIndex = 0\n return this.getNextMiddleware()\n }\n return item\n }\n}\n\nfunction runMiddleWares(\n node: AnyObjectNode,\n baseCall: IMiddlewareEvent,\n originalFn: Function\n): any {\n const middlewares = new CollectedMiddlewares(node, originalFn)\n // Short circuit\n if (middlewares.isEmpty) {\n return mobxAction(originalFn)(...baseCall.args)\n }\n\n let result: any = null\n\n function runNextMiddleware(call: IMiddlewareEvent): any {\n const middleware = middlewares.getNextMiddleware()\n const handler = middleware && middleware.handler\n\n if (!handler) {\n return mobxAction(originalFn)(...call.args)\n }\n\n // skip hooks if asked to\n if (!middleware!.includeHooks && (Hook as any)[call.name]) {\n return runNextMiddleware(call)\n }\n\n let nextInvoked = false\n function next(\n call2: IMiddlewareEvent,\n callback?: (value: any) => any\n ): void {\n nextInvoked = true\n // the result can contain\n // - the non manipulated return value from an action\n // - the non manipulated abort value\n // - one of the above but manipulated through the callback function\n result = runNextMiddleware(call2)\n if (callback) {\n result = callback(result)\n }\n }\n\n let abortInvoked = false\n function abort(value: any) {\n abortInvoked = true\n // overwrite the result\n // can be manipulated through middlewares earlier in the queue using the callback fn\n result = value\n }\n\n handler(call, next, abort)\n if (devMode()) {\n if (!nextInvoked && !abortInvoked) {\n const node2 = getStateTreeNode(call.tree)\n throw fail(\n `Neither the next() nor the abort() callback within the middleware ${handler.name} for the action: \"${call.name}\" on the node: ${node2.type.name} was invoked.`\n )\n } else if (nextInvoked && abortInvoked) {\n const node2 = getStateTreeNode(call.tree)\n throw fail(\n `The next() and abort() callback within the middleware ${handler.name} for the action: \"${call.name}\" on the node: ${node2.type.name} were invoked.`\n )\n }\n }\n return result\n }\n return runNextMiddleware(baseCall)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionContext.js","sourceRoot":"","sources":["../../src/core/actionContext.ts"],"names":[],"mappings":";;AAyBA,0DAMC;AAyBD,wDAKC;AAKD,oEAKC;AAtED,2CAAqD;AAqBrD;;GAEG;AACH,SAAgB,uBAAuB;IACrC,IAAI,OAAO,GAAG,IAAA,mCAAuB,GAAE,CAAA;IACvC,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,6BAA6B,CACpC,aAA6B,EAC7B,YAAwD,EACxD,WAAoB;IAEpB,MAAM,QAAQ,GACZ,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAA;IAEnE,IAAI,OAAO,GAAkD,WAAW;QACtE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAC,iBAAiB,CAAA;IACnC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,aAA6B,EAC7B,MAAkD;IAElD,OAAO,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,aAA6B,EAC7B,YAAwD;IAExD,OAAO,6BAA6B,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;AACzE,CAAC"}
|
|
1
|
+
{"version":3,"file":"actionContext.js","sourceRoot":"","sources":["../../src/core/actionContext.ts"],"names":[],"mappings":";;AAyBA,0DAMC;AAyBD,wDAKC;AAKD,oEAKC;AAtED,2CAAqD;AAqBrD;;GAEG;AACH,SAAgB,uBAAuB;IACrC,IAAI,OAAO,GAAG,IAAA,mCAAuB,GAAE,CAAA;IACvC,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,6BAA6B,CACpC,aAA6B,EAC7B,YAAwD,EACxD,WAAoB;IAEpB,MAAM,QAAQ,GACZ,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAA;IAEnE,IAAI,OAAO,GAAkD,WAAW;QACtE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAC,iBAAiB,CAAA;IACnC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,aAA6B,EAC7B,MAAkD;IAElD,OAAO,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,aAA6B,EAC7B,YAAwD;IAExD,OAAO,6BAA6B,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;AACzE,CAAC","sourcesContent":["import { type IAnyStateTreeNode, type IMiddlewareEvent } from \"../internal.ts\"\nimport { getCurrentActionContext } from \"./action.ts\"\n\nexport interface IActionContext {\n /** Event name (action name for actions) */\n readonly name: string\n\n /** Event unique id */\n readonly id: number\n\n /** Parent action event object */\n readonly parentActionEvent: IMiddlewareEvent | undefined\n\n /** Event context (node where the action was invoked) */\n readonly context: IAnyStateTreeNode\n /** Event tree (root node of the node where the action was invoked) */\n readonly tree: IAnyStateTreeNode\n\n /** Event arguments in an array (action arguments for actions) */\n readonly args: any[]\n}\n\n/**\n * Returns the currently executing MST action context, or undefined if none.\n */\nexport function getRunningActionContext(): IActionContext | undefined {\n let current = getCurrentActionContext()\n while (current && current.type !== \"action\") {\n current = current.parentActionEvent\n }\n return current\n}\n\nfunction _isActionContextThisOrChildOf(\n actionContext: IActionContext,\n sameOrParent: number | IActionContext | IMiddlewareEvent,\n includeSame: boolean\n) {\n const parentId =\n typeof sameOrParent === \"number\" ? sameOrParent : sameOrParent.id\n\n let current: IActionContext | IMiddlewareEvent | undefined = includeSame\n ? actionContext\n : actionContext.parentActionEvent\n while (current) {\n if (current.id === parentId) {\n return true\n }\n current = current.parentActionEvent\n }\n return false\n}\n\n/**\n * Returns if the given action context is a parent of this action context.\n */\nexport function isActionContextChildOf(\n actionContext: IActionContext,\n parent: number | IActionContext | IMiddlewareEvent\n) {\n return _isActionContextThisOrChildOf(actionContext, parent, false)\n}\n\n/**\n * Returns if the given action context is this or a parent of this action context.\n */\nexport function isActionContextThisOrChildOf(\n actionContext: IActionContext,\n parentOrThis: number | IActionContext | IMiddlewareEvent\n) {\n return _isActionContextThisOrChildOf(actionContext, parentOrThis, true)\n}\n"]}
|
package/dist/core/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/core/flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/core/flow.ts"],"names":[],"mappings":"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","sourcesContent":["import { fail, setImmediateWithFallback } from \"../utils.ts\"\nimport {\n getCurrentActionContext,\n getNextActionId,\n getParentActionContext,\n runWithActionContext\n} from \"./action.ts\"\n\nimport type { FunctionWithFlag, IMiddlewareEventType } from \"./action.ts\"\n\n/**\n * @hidden\n */\nexport type FlowReturn<R> = R extends Promise<infer T> ? T : R\n\n/**\n * See [asynchronous actions](concepts/async-actions.md).\n *\n * @returns The flow as a promise.\n */\nexport function flow<R, Args extends any[]>(\n generator: (...args: Args) => Generator<PromiseLike<any>, R, any>\n): (...args: Args) => Promise<FlowReturn<R>> {\n return createFlowSpawner(generator.name, generator) as any\n}\n\n/**\n * @deprecated Not needed since TS3.6.\n * Used for TypeScript to make flows that return a promise return the actual promise result.\n *\n * @param val\n * @returns\n */\nexport function castFlowReturn<T>(val: T): T {\n return val as any\n}\n\n/**\n * @experimental\n * experimental api - might change on minor/patch releases\n *\n * Convert a promise-returning function to a generator-returning one.\n * This is intended to allow for usage of `yield*` in async actions to\n * retain the promise return type.\n *\n * Example:\n * ```ts\n * function getDataAsync(input: string): Promise<number> { ... }\n * const getDataGen = toGeneratorFunction(getDataAsync);\n *\n * const someModel.actions(self => ({\n * someAction: flow(function*() {\n * // value is typed as number\n * const value = yield* getDataGen(\"input value\");\n * ...\n * })\n * }))\n * ```\n */\nexport function toGeneratorFunction<R, Args extends any[]>(\n p: (...args: Args) => Promise<R>\n) {\n return function* (...args: Args) {\n return (yield p(...args)) as R\n }\n}\n\n/**\n * @experimental\n * experimental api - might change on minor/patch releases\n *\n * Convert a promise to a generator yielding that promise\n * This is intended to allow for usage of `yield*` in async actions to\n * retain the promise return type.\n *\n * Example:\n * ```ts\n * function getDataAsync(input: string): Promise<number> { ... }\n *\n * const someModel.actions(self => ({\n * someAction: flow(function*() {\n * // value is typed as number\n * const value = yield* toGenerator(getDataAsync(\"input value\"));\n * ...\n * })\n * }))\n * ```\n */\nexport function* toGenerator<R>(p: Promise<R>) {\n return (yield p) as R\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function createFlowSpawner(name: string, generator: FunctionWithFlag) {\n const spawner = function flowSpawner(this: any, ...flowArgs: any[]) {\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n const runId = getNextActionId()\n const parentContext = getCurrentActionContext()!\n if (!parentContext) {\n throw fail(\"a mst flow must always have a parent context\")\n }\n const parentActionContext = getParentActionContext(parentContext)\n if (!parentActionContext) {\n throw fail(\"a mst flow must always have a parent action context\")\n }\n\n const contextBase = {\n name,\n id: runId,\n tree: parentContext.tree,\n context: parentContext.context,\n parentId: parentContext.id,\n allParentIds: [...parentContext.allParentIds, parentContext.id],\n rootId: parentContext.rootId,\n parentEvent: parentContext,\n parentActionEvent: parentActionContext\n }\n\n function wrap(fn: any, type: IMiddlewareEventType, arg: any) {\n fn.$mst_middleware = (spawner as any).$mst_middleware // pick up any middleware attached to the flow\n return runWithActionContext(\n {\n ...contextBase,\n type,\n args: [arg]\n },\n fn\n )\n }\n\n return new Promise(function (resolve, reject) {\n let gen: any\n const init = function asyncActionInit(...initArgs: any[]) {\n gen = generator(...initArgs)\n onFulfilled(undefined) // kick off the flow\n }\n ;(init as any).$mst_middleware = (spawner as any).$mst_middleware\n\n runWithActionContext(\n {\n ...contextBase,\n type: \"flow_spawn\",\n args: flowArgs\n },\n init\n )\n\n function onFulfilled(res: any) {\n let ret\n try {\n // prettier-ignore\n const cancelError: any = wrap((_r: any) => { ret = gen.next(_r) }, \"flow_resume\", res)\n if (cancelError instanceof Error) {\n ret = gen.throw(cancelError)\n }\n } catch (e) {\n // prettier-ignore\n setImmediateWithFallback(() => {\n wrap((_r: any) => { reject(e) }, \"flow_throw\", e)\n })\n return\n }\n next(ret)\n return\n }\n\n function onRejected(err: any) {\n let ret\n try {\n // prettier-ignore\n wrap((_r: any) => { ret = gen.throw(_r) }, \"flow_resume_error\", err) // or yieldError?\n } catch (e) {\n // prettier-ignore\n setImmediateWithFallback(() => {\n wrap((_r: any) => { reject(e) }, \"flow_throw\", e)\n })\n return\n }\n next(ret)\n }\n\n function next(ret: any) {\n if (ret.done) {\n // prettier-ignore\n setImmediateWithFallback(() => {\n wrap((r: any) => { resolve(r) }, \"flow_return\", ret.value)\n })\n return\n }\n // TODO: support more type of values? See https://github.com/tj/co/blob/249bbdc72da24ae44076afd716349d2089b31c4c/index.js#L100\n if (!ret.value || typeof ret.value.then !== \"function\") {\n // istanbul ignore next\n throw fail(\"Only promises can be yielded to `async`, got: \" + ret)\n }\n return ret.value.then(onFulfilled, onRejected)\n }\n })\n }\n ;(spawner as FunctionWithFlag)._isFlowAction = true\n return spawner\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../../src/core/json-patch.ts"],"names":[],"mappings":";;AAoBA,gCAOC;AAMD,gCAWC;AAoCD,wCAQC;AAKD,4CAEC;AAQD,oCAcC;AAQD,sCA4BC;AAzJD,gDAAuD;AAgBvD;;;GAGG;AACH,SAAgB,UAAU,CACxB,KAA2B;IAE3B,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAA,kBAAI,EAAC,uDAAuD,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;AAChD,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAA2B;IACpD,uGAAuG;IACvG,6CAA6C;IAC7C,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAA;QAC5D,KAAK,QAAQ;YACX,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAC3C,KAAK,SAAS;YACZ,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IAClE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAA2B;IAC9C,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO;gBACL,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAA;QACH,KAAK,QAAQ;YACX,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;QACH,KAAK,SAAS;YACZ,OAAO;gBACL,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,IAAc;IACzC,6EAA6E;IAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,WAAW;QACX,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,WAAW;QACX,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAEnD,MAAM,KAAK,GACT,IAAI,KAAK,EAAE;QACX,IAAI,KAAK,GAAG;QACZ,IAAI,KAAK,IAAI;QACb,IAAA,8BAAgB,EAAC,IAAI,EAAE,GAAG,CAAC;QAC3B,IAAA,8BAAgB,EAAC,IAAI,EAAE,IAAI,CAAC;QAC5B,IAAA,8BAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAA,kBAAI,EACR,kEAAkE,IAAI,GAAG,CAC1E,CAAA;IACH,CAAC;IAED,8BAA8B;IAC9B,wCAAwC;IACxC,WAAW;IACX,cAAc;IACd,sBAAsB;IACtB,0CAA0C;IAE1C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../../src/core/json-patch.ts"],"names":[],"mappings":"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","sourcesContent":["import { fail, stringStartsWith } from \"../internal.ts\"\n\n/**\n * https://tools.ietf.org/html/rfc6902\n * http://jsonpatch.com/\n */\nexport interface IJsonPatch {\n readonly op: \"replace\" | \"add\" | \"remove\"\n readonly path: string\n readonly value?: any\n}\n\nexport interface IReversibleJsonPatch extends IJsonPatch {\n readonly oldValue: any // This goes beyond JSON-patch, but makes sure each patch can be inverse applied\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function splitPatch(\n patch: IReversibleJsonPatch\n): [IJsonPatch, IJsonPatch] {\n if (!(\"oldValue\" in patch)) {\n throw fail(`Patches without \\`oldValue\\` field cannot be inversed`)\n }\n return [stripPatch(patch), invertPatch(patch)]\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function stripPatch(patch: IReversibleJsonPatch): IJsonPatch {\n // strips `oldvalue` information from the patch, so that it becomes a patch conform the json-patch spec\n // this removes the ability to undo the patch\n switch (patch.op) {\n case \"add\":\n return { op: \"add\", path: patch.path, value: patch.value }\n case \"remove\":\n return { op: \"remove\", path: patch.path }\n case \"replace\":\n return { op: \"replace\", path: patch.path, value: patch.value }\n }\n}\n\nfunction invertPatch(patch: IReversibleJsonPatch): IJsonPatch {\n switch (patch.op) {\n case \"add\":\n return {\n op: \"remove\",\n path: patch.path\n }\n case \"remove\":\n return {\n op: \"add\",\n path: patch.path,\n value: patch.oldValue\n }\n case \"replace\":\n return {\n op: \"replace\",\n path: patch.path,\n value: patch.oldValue\n }\n }\n}\n\n/**\n * Simple simple check to check it is a number.\n */\nfunction isNumber(x: string): boolean {\n return typeof x === \"number\"\n}\n\n/**\n * Escape slashes and backslashes.\n *\n * http://tools.ietf.org/html/rfc6901\n */\nexport function escapeJsonPath(path: string): string {\n if (isNumber(path) === true) {\n return \"\" + path\n }\n if (path.indexOf(\"/\") === -1 && path.indexOf(\"~\") === -1) {\n return path\n }\n return path.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\n/**\n * Unescape slashes and backslashes.\n */\nexport function unescapeJsonPath(path: string): string {\n return path.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\n/**\n * Generates a json-path compliant json path from path parts.\n *\n * @param path\n * @returns\n */\nexport function joinJsonPath(path: string[]): string {\n // `/` refers to property with an empty name, while `` refers to root itself!\n if (path.length === 0) {\n return \"\"\n }\n\n const getPathStr = (p: string[]) => p.map(escapeJsonPath).join(\"/\")\n if (path[0] === \".\" || path[0] === \"..\") {\n // relative\n return getPathStr(path)\n } else {\n // absolute\n return \"/\" + getPathStr(path)\n }\n}\n\n/**\n * Splits and decodes a json path into several parts.\n *\n * @param path\n * @returns\n */\nexport function splitJsonPath(path: string): string[] {\n // `/` refers to property with an empty name, while `` refers to root itself!\n const parts = path.split(\"/\").map(unescapeJsonPath)\n\n const valid =\n path === \"\" ||\n path === \".\" ||\n path === \"..\" ||\n stringStartsWith(path, \"/\") ||\n stringStartsWith(path, \"./\") ||\n stringStartsWith(path, \"../\")\n if (!valid) {\n throw fail(\n `a json path must be either rooted, empty or relative, but got '${path}'`\n )\n }\n\n // '/a/b/c' -> [\"a\", \"b\", \"c\"]\n // '../../b/c' -> [\"..\", \"..\", \"b\", \"c\"]\n // '' -> []\n // '/' -> ['']\n // './a' -> [\".\", \"a\"]\n // /./a' -> [\".\", \"a\"] equivalent to './a'\n\n if (parts[0] === \"\") {\n parts.shift()\n }\n return parts\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mst-operations.js","sourceRoot":"","sources":["../../src/core/mst-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mst-operations.js","sourceRoot":"","sources":["../../src/core/mst-operations.ts"],"names":[],"mappings":"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","sourcesContent":["import { isComputedProp, isObservableProp } from \"mobx\"\n\nimport {\n EMPTY_OBJECT,\n InvalidReferenceError,\n asArray,\n assertArg,\n assertIsFunction,\n assertIsNumber,\n assertIsStateTreeNode,\n assertIsString,\n assertIsType,\n assertIsValidIdentifier,\n fail,\n freeze,\n getRelativePathBetweenNodes,\n getRunningActionContext,\n getStateTreeNode,\n isModelType,\n isStateTreeNode,\n normalizeIdentifier,\n resolveNodeByPath,\n splitJsonPath\n} from \"../internal.ts\"\n\nimport type {\n AnyObjectNode,\n IActionContext,\n IAnyComplexType,\n IAnyModelType,\n IAnyStateTreeNode,\n IAnyType,\n IDisposer,\n IJsonPatch,\n IStateTreeNode,\n IType,\n ReferenceIdentifier,\n TypeOfValue\n} from \"../internal.ts\"\n\n/** @hidden */\nexport type TypeOrStateTreeNodeToStateTreeNode<\n T extends IAnyType | IAnyStateTreeNode\n> = T extends IType<any, any, infer TT> ? TT & IStateTreeNode<T> : T\n\n/**\n * Returns the _actual_ type of the given tree node. (Or throws)\n *\n * @param object\n * @returns\n */\nexport function getType(object: IAnyStateTreeNode): IAnyComplexType {\n assertIsStateTreeNode(object, 1)\n\n return getStateTreeNode(object).type\n}\n\n/**\n * Returns the _declared_ type of the given sub property of an object, array or map.\n * In the case of arrays and maps the property name is optional and will be ignored.\n *\n * Example:\n * ```ts\n * const Box = types.model({ x: 0, y: 0 })\n * const box = Box.create()\n *\n * console.log(getChildType(box, \"x\").name) // 'number'\n * ```\n *\n * @param object\n * @param propertyName\n * @returns\n */\nexport function getChildType(\n object: IAnyStateTreeNode,\n propertyName?: string\n): IAnyType {\n assertIsStateTreeNode(object, 1)\n\n return getStateTreeNode(object).getChildType(propertyName)\n}\n\n/**\n * Registers a function that will be invoked for each mutation that is applied to the provided model instance, or to any of its children.\n * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details. onPatch events are emitted immediately and will not await the end of a transaction.\n * Patches can be used to deeply observe a model tree.\n *\n * @param target the model instance from which to receive patches\n * @param callback the callback that is invoked for each patch. The reversePatch is a patch that would actually undo the emitted patch\n * @returns function to remove the listener\n */\nexport function onPatch(\n target: IAnyStateTreeNode,\n callback: (patch: IJsonPatch, reversePatch: IJsonPatch) => void\n): IDisposer {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsFunction(callback, 2)\n\n return getStateTreeNode(target).onPatch(callback)\n}\n\n/**\n * Registers a function that is invoked whenever a new snapshot for the given model instance is available.\n * The listener will only be fire at the end of the current MobX (trans)action.\n * See [snapshots](https://github.com/mobxjs/mobx-state-tree#snapshots) for more details.\n *\n * @param target\n * @param callback\n * @returns\n */\nexport function onSnapshot<S>(\n target: IStateTreeNode<IType<any, S, any>>,\n callback: (snapshot: S) => void\n): IDisposer {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsFunction(callback, 2)\n\n return getStateTreeNode(target).onSnapshot(callback)\n}\n\n/**\n * Applies a JSON-patch to the given model instance or bails out if the patch couldn't be applied\n * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details.\n *\n * Can apply a single past, or an array of patches.\n *\n * @param target\n * @param patch\n * @returns\n */\nexport function applyPatch(\n target: IAnyStateTreeNode,\n patch: IJsonPatch | ReadonlyArray<IJsonPatch>\n): void {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertArg(patch, p => typeof p === \"object\", \"object or array\", 2)\n\n getStateTreeNode(target).applyPatches(asArray(patch))\n}\n\nexport interface IPatchRecorder {\n patches: ReadonlyArray<IJsonPatch>\n inversePatches: ReadonlyArray<IJsonPatch>\n reversedInversePatches: ReadonlyArray<IJsonPatch>\n readonly recording: boolean\n stop(): void\n resume(): void\n replay(target?: IAnyStateTreeNode): void\n undo(target?: IAnyStateTreeNode): void\n}\n\n/**\n * Small abstraction around `onPatch` and `applyPatch`, attaches a patch listener to a tree and records all the patches.\n * Returns a recorder object with the following signature:\n *\n * Example:\n * ```ts\n * export interface IPatchRecorder {\n * // the recorded patches\n * patches: IJsonPatch[]\n * // the inverse of the recorded patches\n * inversePatches: IJsonPatch[]\n * // true if currently recording\n * recording: boolean\n * // stop recording patches\n * stop(): void\n * // resume recording patches\n * resume(): void\n * // apply all the recorded patches on the given target (the original subject if omitted)\n * replay(target?: IAnyStateTreeNode): void\n * // reverse apply the recorded patches on the given target (the original subject if omitted)\n * // stops the recorder if not already stopped\n * undo(): void\n * }\n * ```\n *\n * The optional filter function allows to skip recording certain patches.\n *\n * @param subject\n * @param filter\n * @returns\n */\nexport function recordPatches(\n subject: IAnyStateTreeNode,\n filter?: (\n patch: IJsonPatch,\n inversePatch: IJsonPatch,\n actionContext: IActionContext | undefined\n ) => boolean\n): IPatchRecorder {\n // check all arguments\n assertIsStateTreeNode(subject, 1)\n\n interface IPatches {\n patches: IJsonPatch[]\n reversedInversePatches: IJsonPatch[]\n inversePatches: IJsonPatch[]\n }\n\n const data: Pick<IPatches, \"patches\" | \"inversePatches\"> = {\n patches: [],\n inversePatches: []\n }\n\n // we will generate the immutable copy of patches on demand for public consumption\n const publicData: Partial<IPatches> = {}\n\n let disposer: IDisposer | undefined\n\n const recorder: IPatchRecorder = {\n get recording() {\n return !!disposer\n },\n get patches() {\n if (!publicData.patches) {\n publicData.patches = data.patches.slice()\n }\n return publicData.patches\n },\n get reversedInversePatches() {\n if (!publicData.reversedInversePatches) {\n publicData.reversedInversePatches = data.inversePatches\n .slice()\n .reverse()\n }\n return publicData.reversedInversePatches\n },\n get inversePatches() {\n if (!publicData.inversePatches) {\n publicData.inversePatches = data.inversePatches.slice()\n }\n return publicData.inversePatches\n },\n stop() {\n if (disposer) {\n disposer()\n disposer = undefined\n }\n },\n resume() {\n if (disposer) {\n return\n }\n disposer = onPatch(subject, (patch, inversePatch) => {\n // skip patches that are asked to be filtered if there's a filter in place\n if (filter && !filter(patch, inversePatch, getRunningActionContext())) {\n return\n }\n data.patches.push(patch)\n data.inversePatches.push(inversePatch)\n\n // mark immutable public patches as dirty\n publicData.patches = undefined\n publicData.inversePatches = undefined\n publicData.reversedInversePatches = undefined\n })\n },\n replay(target?: IAnyStateTreeNode) {\n applyPatch(target || subject, data.patches)\n },\n undo(target?: IAnyStateTreeNode) {\n applyPatch(target || subject, data.inversePatches.slice().reverse())\n }\n }\n\n recorder.resume()\n return recorder\n}\n\n/**\n * The inverse of `unprotect`.\n *\n * @param target\n */\nexport function protect(target: IAnyStateTreeNode): void {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n const node = getStateTreeNode(target)\n if (!node.isRoot) {\n throw fail(\"`protect` can only be invoked on root nodes\")\n }\n node.isProtectionEnabled = true\n}\n\n/**\n * By default it is not allowed to directly modify a model. Models can only be modified through actions.\n * However, in some cases you don't care about the advantages (like replayability, traceability, etc) this yields.\n * For example because you are building a PoC or don't have any middleware attached to your tree.\n *\n * In that case you can disable this protection by calling `unprotect` on the root of your tree.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * done: false\n * }).actions(self => ({\n * toggle() {\n * self.done = !self.done\n * }\n * }))\n *\n * const todo = Todo.create()\n * todo.done = true // throws!\n * todo.toggle() // OK\n * unprotect(todo)\n * todo.done = false // OK\n * ```\n */\nexport function unprotect(target: IAnyStateTreeNode): void {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n const node = getStateTreeNode(target)\n if (!node.isRoot) {\n throw fail(\"`unprotect` can only be invoked on root nodes\")\n }\n node.isProtectionEnabled = false\n}\n\n/**\n * Returns true if the object is in protected mode, @see protect\n */\nexport function isProtected(target: IAnyStateTreeNode): boolean {\n return getStateTreeNode(target).isProtected\n}\n\n/**\n * Applies a snapshot to a given model instances. Patch and snapshot listeners will be invoked as usual.\n *\n * @param target\n * @param snapshot\n * @returns\n */\nexport function applySnapshot<C>(\n target: IStateTreeNode<IType<C, any, any>>,\n snapshot: C\n) {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).applySnapshot(snapshot)\n}\n\n/**\n * Calculates a snapshot from the given model instance. The snapshot will always reflect the latest state but use\n * structural sharing where possible. Doesn't require MobX transactions to be completed.\n *\n * @param target\n * @param applyPostProcess If true (the default) then postProcessSnapshot gets applied.\n * @returns\n */\nexport function getSnapshot<S>(\n target: IStateTreeNode<IType<any, S, any>>,\n applyPostProcess = true\n): S {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n const node = getStateTreeNode(target)\n if (applyPostProcess) {\n return node.snapshot\n }\n\n return freeze(node.type.getSnapshot(node, false))\n}\n\n/**\n * Given a model instance, returns `true` if the object has a parent, that is, is part of another object, map or array.\n *\n * @param target\n * @param depth How far should we look upward? 1 by default.\n * @returns\n */\nexport function hasParent(\n target: IAnyStateTreeNode,\n depth: number = 1\n): boolean {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsNumber(depth, 2, 0)\n\n let parent: AnyObjectNode | null = getStateTreeNode(target).parent\n while (parent) {\n if (--depth === 0) {\n return true\n }\n parent = parent.parent\n }\n return false\n}\n\n/**\n * Returns the immediate parent of this object, or throws.\n *\n * Note that the immediate parent can be either an object, map or array, and\n * doesn't necessarily refer to the parent model.\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired.\n *\n * @param target\n * @param depth How far should we look upward? 1 by default.\n * @returns\n */\nexport function getParent<IT extends IAnyStateTreeNode | IAnyComplexType>(\n target: IAnyStateTreeNode,\n depth = 1\n): TypeOrStateTreeNodeToStateTreeNode<IT> {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsNumber(depth, 2, 0)\n\n let d = depth\n let parent: AnyObjectNode | null = getStateTreeNode(target).parent\n while (parent) {\n if (--d === 0) {\n return parent.storedValue as any\n }\n parent = parent.parent\n }\n throw fail(\n `Failed to find the parent of ${getStateTreeNode(target)} at depth ${depth}`\n )\n}\n\n/**\n * Given a model instance, returns `true` if the object has a parent of given type, that is, is part of another object, map or array\n *\n * @param target\n * @param type\n * @returns\n */\nexport function hasParentOfType(\n target: IAnyStateTreeNode,\n type: IAnyComplexType\n): boolean {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsType(type, 2)\n\n let parent: AnyObjectNode | null = getStateTreeNode(target).parent\n while (parent) {\n if (type.is(parent.storedValue)) {\n return true\n }\n parent = parent.parent\n }\n return false\n}\n\n/**\n * Returns the target's parent of a given type, or throws.\n *\n * @param target\n * @param type\n * @returns\n */\nexport function getParentOfType<IT extends IAnyComplexType>(\n target: IAnyStateTreeNode,\n type: IT\n): IT[\"Type\"] {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsType(type, 2)\n\n let parent: AnyObjectNode | null = getStateTreeNode(target).parent\n while (parent) {\n if (type.is(parent.storedValue)) {\n return parent.storedValue\n }\n parent = parent.parent\n }\n throw fail(\n `Failed to find the parent of ${getStateTreeNode(target)} of a given type`\n )\n}\n\n/**\n * Given an object in a model tree, returns the root object of that tree.\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired.\n *\n * @param target\n * @returns\n */\nexport function getRoot<IT extends IAnyComplexType | IAnyStateTreeNode>(\n target: IAnyStateTreeNode\n): TypeOrStateTreeNodeToStateTreeNode<IT> {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).root.storedValue\n}\n\n/**\n * Returns the path of the given object in the model tree\n *\n * @param target\n * @returns\n */\nexport function getPath(target: IAnyStateTreeNode): string {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).path\n}\n\n/**\n * Returns the path of the given object as unescaped string array.\n *\n * @param target\n * @returns\n */\nexport function getPathParts(target: IAnyStateTreeNode): string[] {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return splitJsonPath(getStateTreeNode(target).path)\n}\n\n/**\n * Returns true if the given object is the root of a model tree.\n *\n * @param target\n * @returns\n */\nexport function isRoot(target: IAnyStateTreeNode): boolean {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).isRoot\n}\n\n/**\n * Resolves a path relatively to a given object.\n * Returns undefined if no value can be found.\n *\n * @param target\n * @param path escaped json path\n * @returns\n */\nexport function resolvePath(target: IAnyStateTreeNode, path: string): any {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsString(path, 2)\n\n const node = resolveNodeByPath(getStateTreeNode(target), path)\n return node ? node.value : undefined\n}\n\n/**\n * Resolves a model instance given a root target, the type and the identifier you are searching for.\n * Returns undefined if no value can be found.\n *\n * @param type\n * @param target\n * @param identifier\n * @returns\n */\nexport function resolveIdentifier<IT extends IAnyModelType>(\n type: IT,\n target: IAnyStateTreeNode,\n identifier: ReferenceIdentifier\n): IT[\"Type\"] | undefined {\n // check all arguments\n assertIsType(type, 1)\n assertIsStateTreeNode(target, 2)\n assertIsValidIdentifier(identifier, 3)\n\n const node = getStateTreeNode(target).root.identifierCache!.resolve(\n type,\n normalizeIdentifier(identifier)\n )\n return node?.value\n}\n\n/**\n * Returns the identifier of the target node.\n * This is the *string normalized* identifier, which might not match the type of the identifier attribute\n *\n * @param target\n * @returns\n */\nexport function getIdentifier(target: IAnyStateTreeNode): string | null {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).identifier\n}\n\n/**\n * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns such reference if the check passes,\n * else it returns undefined.\n *\n * @param getter Function to access the reference.\n * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.\n * @returns\n */\nexport function tryReference<N extends IAnyStateTreeNode>(\n getter: () => N | null | undefined,\n checkIfAlive = true\n): N | undefined {\n try {\n const node = getter()\n if (node === undefined || node === null) {\n return undefined\n } else if (isStateTreeNode(node)) {\n if (!checkIfAlive) {\n return node\n } else {\n return isAlive(node) ? node : undefined\n }\n } else {\n throw fail(\n \"The reference to be checked is not one of node, null or undefined\"\n )\n }\n } catch (e) {\n if (e instanceof InvalidReferenceError) {\n return undefined\n }\n throw e\n }\n}\n\n/**\n * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns if the check passes or not.\n *\n * @param getter Function to access the reference.\n * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.\n * @returns\n */\nexport function isValidReference<N extends IAnyStateTreeNode>(\n getter: () => N | null | undefined,\n checkIfAlive = true\n): boolean {\n try {\n const node = getter()\n if (node === undefined || node === null) {\n return false\n } else if (isStateTreeNode(node)) {\n return checkIfAlive ? isAlive(node) : true\n } else {\n throw fail(\n \"The reference to be checked is not one of node, null or undefined\"\n )\n }\n } catch (e) {\n if (e instanceof InvalidReferenceError) {\n return false\n }\n throw e\n }\n}\n\n/**\n * Try to resolve a given path relative to a given node.\n *\n * @param target\n * @param path\n * @returns\n */\nexport function tryResolve(target: IAnyStateTreeNode, path: string): any {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsString(path, 2)\n\n const node = resolveNodeByPath(getStateTreeNode(target), path, false)\n if (node === undefined) {\n return undefined\n }\n try {\n return node.value\n } catch (_e) {\n // For what ever reason not resolvable (e.g. totally not existing path, or value that cannot be fetched)\n // see test / issue: 'try resolve doesn't work #686'\n return undefined\n }\n}\n\n/**\n * Given two state tree nodes that are part of the same tree,\n * returns the shortest jsonpath needed to navigate from the one to the other\n *\n * @param base\n * @param target\n * @returns\n */\nexport function getRelativePath(\n base: IAnyStateTreeNode,\n target: IAnyStateTreeNode\n): string {\n // check all arguments\n assertIsStateTreeNode(base, 1)\n assertIsStateTreeNode(target, 2)\n\n return getRelativePathBetweenNodes(\n getStateTreeNode(base),\n getStateTreeNode(target)\n )\n}\n\n/**\n * Returns a deep copy of the given state tree node as new tree.\n * Shorthand for `snapshot(x) = getType(x).create(getSnapshot(x))`\n *\n * _Tip: clone will create a literal copy, including the same identifiers. To modify identifiers etc. during cloning, don't use clone but take a snapshot of the tree, modify it, and create new instance_\n *\n * @param source\n * @param keepEnvironment indicates whether the clone should inherit the same environment (`true`, the default), or not have an environment (`false`). If an object is passed in as second argument, that will act as the environment for the cloned tree.\n * @returns\n */\nexport function clone<T extends IAnyStateTreeNode>(\n source: T,\n keepEnvironment: boolean | any = true\n): T {\n // check all arguments\n assertIsStateTreeNode(source, 1)\n\n const node = getStateTreeNode(source)\n return node.type.create(\n node.snapshot,\n keepEnvironment === true\n ? node.root.environment\n : keepEnvironment === false\n ? undefined\n : keepEnvironment\n ) // it's an object or something else\n}\n\n/**\n * Removes a model element from the state tree, and let it live on as a new state tree\n */\nexport function detach<T extends IAnyStateTreeNode>(target: T): T {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n getStateTreeNode(target).detach()\n return target\n}\n\n/**\n * Removes a model element from the state tree, and mark it as end-of-life; the element should not be used anymore\n */\nexport function destroy(target: IAnyStateTreeNode): void {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n const node = getStateTreeNode(target)\n if (node.isRoot) {\n node.die()\n } else {\n node.parent!.removeChild(node.subpath)\n }\n}\n\n/**\n * Returns true if the given state tree node is not killed yet.\n * This means that the node is still a part of a tree, and that `destroy`\n * has not been called. If a node is not alive anymore, the only thing one can do with it\n * is requesting it's last path and snapshot\n *\n * @param target\n * @returns\n */\nexport function isAlive(target: IAnyStateTreeNode): boolean {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).observableIsAlive\n}\n\n/**\n * Use this utility to register a function that should be called whenever the\n * targeted state tree node is destroyed. This is a useful alternative to managing\n * cleanup methods yourself using the `beforeDestroy` hook.\n *\n * This methods returns the same disposer that was passed as argument.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * title: types.string\n * }).actions(self => ({\n * afterCreate() {\n * const autoSaveDisposer = reaction(\n * () => getSnapshot(self),\n * snapshot => sendSnapshotToServerSomehow(snapshot)\n * )\n * // stop sending updates to server if this\n * // instance is destroyed\n * addDisposer(self, autoSaveDisposer)\n * }\n * }))\n * ```\n *\n * @param target\n * @param disposer\n * @returns The same disposer that was passed as argument\n */\nexport function addDisposer(\n target: IAnyStateTreeNode,\n disposer: IDisposer\n): IDisposer {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsFunction(disposer, 2)\n\n const node = getStateTreeNode(target)\n node.addDisposer(disposer)\n return disposer\n}\n\n/**\n * Returns the environment of the current state tree. For more info on environments,\n * see [Dependency injection](https://github.com/mobxjs/mobx-state-tree#dependency-injection)\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired\n *\n * Returns an empty environment if the tree wasn't initialized with an environment\n *\n * @param target\n * @returns\n */\nexport function getEnv<T = any>(target: IAnyStateTreeNode): T {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n\n const node = getStateTreeNode(target)\n const env = node.root.environment\n if (!env) {\n return EMPTY_OBJECT as T\n }\n return env\n}\n\n/**\n * Performs a depth first walk through a tree.\n */\nexport function walk(\n target: IAnyStateTreeNode,\n processor: (item: IAnyStateTreeNode) => void\n): void {\n // check all arguments\n assertIsStateTreeNode(target, 1)\n assertIsFunction(processor, 2)\n\n const node = getStateTreeNode(target)\n // tslint:disable-next-line:no_unused-variable\n node.getChildren().forEach(child => {\n if (isStateTreeNode(child.storedValue)) {\n walk(child.storedValue, processor)\n }\n })\n processor(node.storedValue)\n}\n\nexport interface IModelReflectionPropertiesData {\n name: string\n properties: { [K: string]: IAnyType }\n}\n\n/**\n * Returns a reflection of the model type properties and name for either a model type or model node.\n *\n * @param typeOrNode\n * @returns\n */\nexport function getPropertyMembers(\n typeOrNode: IAnyModelType | IAnyStateTreeNode\n): IModelReflectionPropertiesData {\n let type: IAnyModelType\n\n if (isStateTreeNode(typeOrNode)) {\n type = getType(typeOrNode) as IAnyModelType\n } else {\n type = typeOrNode as IAnyModelType\n }\n\n assertArg(type, t => isModelType(t), \"model type or model instance\", 1)\n\n return {\n name: type.name,\n properties: { ...type.properties }\n }\n}\n\nexport interface IModelReflectionData extends IModelReflectionPropertiesData {\n actions: string[]\n views: string[]\n volatile: string[]\n flowActions: string[]\n}\n\n/**\n * Returns a reflection of the model node, including name, properties, views, volatile state,\n * and actions. `flowActions` is also provided as a separate array of names for any action that\n * came from a flow generator as well.\n *\n * In the case where a model has two actions: `doSomething` and `doSomethingWithFlow`, where\n * `doSomethingWithFlow` is a flow generator, the `actions` array will contain both actions,\n * i.e. [\"doSomething\", \"doSomethingWithFlow\"], and the `flowActions` array will contain only\n * the flow action, i.e. [\"doSomethingWithFlow\"].\n *\n * @param target\n * @returns\n */\nexport function getMembers(target: IAnyStateTreeNode): IModelReflectionData {\n const type = getStateTreeNode(target).type as unknown as IAnyModelType\n\n const reflected: IModelReflectionData = {\n ...getPropertyMembers(type),\n actions: [],\n volatile: [],\n views: [],\n flowActions: []\n }\n\n const props = Object.getOwnPropertyNames(target)\n props.forEach(key => {\n if (key in reflected.properties) {\n return\n }\n const descriptor = Object.getOwnPropertyDescriptor(target, key)!\n if (descriptor.get) {\n if (isComputedProp(target, key)) {\n reflected.views.push(key)\n } else {\n reflected.volatile.push(key)\n }\n return\n }\n if (descriptor.value._isFlowAction === true) {\n reflected.flowActions.push(key)\n }\n if (descriptor.value._isMSTAction === true) {\n reflected.actions.push(key)\n } else if (isObservableProp(target, key)) {\n reflected.volatile.push(key)\n } else {\n reflected.views.push(key)\n }\n })\n return reflected\n}\n\nexport function cast<\n O extends string | number | boolean | null | undefined = never\n>(snapshotOrInstance: O): O\nexport function cast<O = never>(\n snapshotOrInstance:\n | TypeOfValue<O>[\"CreationType\"]\n | TypeOfValue<O>[\"SnapshotType\"]\n | TypeOfValue<O>[\"Type\"]\n): O\n/**\n * Casts a node snapshot or instance type to an instance type so it can be assigned to a type instance.\n * Note that this is just a cast for the type system, this is, it won't actually convert a snapshot to an instance,\n * but just fool typescript into thinking so.\n * Either way, casting when outside an assignation operation won't compile.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * innerModel: ModelA\n * }).actions(self => ({\n * someAction() {\n * // this will allow the compiler to assign a snapshot to the property\n * self.innerModel = cast({ a: 5 })\n * }\n * }))\n * ```\n *\n * @param snapshotOrInstance Snapshot or instance\n * @returns The same object cast as an instance\n */\nexport function cast(snapshotOrInstance: any): any {\n return snapshotOrInstance as any\n}\n\n/**\n * Casts a node instance type to a snapshot type so it can be assigned to a type snapshot (e.g. to be used inside a create call).\n * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a snapshot,\n * but just fool typescript into thinking so.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * innerModel: ModelA\n * })\n *\n * const a = ModelA.create({ n: 5 });\n * // this will allow the compiler to use a model as if it were a snapshot\n * const b = ModelB.create({ innerModel: castToSnapshot(a)})\n * ```\n *\n * @param snapshotOrInstance Snapshot or instance\n * @returns The same object cast as an input (creation) snapshot\n */\nexport function castToSnapshot<I>(\n snapshotOrInstance: I\n): Extract<I, IAnyStateTreeNode> extends never\n ? I\n : TypeOfValue<I>[\"CreationType\"] {\n return snapshotOrInstance as any\n}\n\n/**\n * Casts a node instance type to a reference snapshot type so it can be assigned to a reference snapshot (e.g. to be used inside a create call).\n * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a reference snapshot,\n * but just fool typescript into thinking so.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * id: types.identifier,\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * refA: types.reference(ModelA)\n * })\n *\n * const a = ModelA.create({ id: 'someId', n: 5 });\n * // this will allow the compiler to use a model as if it were a reference snapshot\n * const b = ModelB.create({ refA: castToReferenceSnapshot(a)})\n * ```\n *\n * @param instance Instance\n * @returns The same object cast as a reference snapshot (string or number)\n */\nexport function castToReferenceSnapshot<I>(\n instance: I\n): Extract<I, IAnyStateTreeNode> extends never ? I : ReferenceIdentifier {\n return instance as any\n}\n\n/**\n * Returns the unique node id (not to be confused with the instance identifier) for a\n * given instance.\n * This id is a number that is unique for each instance.\n *\n * @export\n * @param target\n * @returns\n */\nexport function getNodeId(target: IAnyStateTreeNode): number {\n assertIsStateTreeNode(target, 1)\n\n return getStateTreeNode(target).nodeId\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/core/node/BaseNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/core/node/BaseNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IAtom, createAtom } from \"mobx\"\n\nimport {\n type AnyObjectNode,\n EventHandlers,\n Hook,\n type IAnyType,\n type IDisposer,\n NodeLifeCycle,\n devMode,\n escapeJsonPath,\n fail\n} from \"../../internal.ts\"\n\ntype HookSubscribers = {\n [Hook.afterAttach]: (node: AnyNode, hook: Hook) => void\n [Hook.afterCreate]: (node: AnyNode, hook: Hook) => void\n [Hook.afterCreationFinalization]: (node: AnyNode, hook: Hook) => void\n [Hook.beforeDestroy]: (node: AnyNode, hook: Hook) => void\n [Hook.beforeDetach]: (node: AnyNode, hook: Hook) => void\n}\n\n/**\n * @internal\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport abstract class BaseNode<C, S, T> {\n private _escapedSubpath?: string\n\n private _subpath!: string\n get subpath() {\n return this._subpath\n }\n\n private _subpathUponDeath?: string\n get subpathUponDeath() {\n return this._subpathUponDeath\n }\n\n private _pathUponDeath?: string\n protected get pathUponDeath() {\n return this._pathUponDeath\n }\n\n storedValue!: any // usually the same type as the value, but not always (such as with references)\n get value(): T {\n return (this.type as any).getValue(this)\n }\n\n private aliveAtom?: IAtom\n private _state = NodeLifeCycle.INITIALIZING\n get state() {\n return this._state\n }\n set state(val: NodeLifeCycle) {\n const wasAlive = this.isAlive\n this._state = val\n const isAlive = this.isAlive\n\n if (this.aliveAtom && wasAlive !== isAlive) {\n this.aliveAtom.reportChanged()\n }\n }\n\n private _hookSubscribers?: EventHandlers<HookSubscribers>\n\n protected abstract fireHook(name: Hook): void\n\n protected fireInternalHook(name: Hook) {\n if (this._hookSubscribers) {\n this._hookSubscribers.emit(name, this, name)\n }\n }\n\n registerHook<H extends Hook>(\n hook: H,\n hookHandler: HookSubscribers[H]\n ): IDisposer {\n if (!this._hookSubscribers) {\n this._hookSubscribers = new EventHandlers()\n }\n return this._hookSubscribers.register(hook, hookHandler)\n }\n\n private _parent!: AnyObjectNode | null\n get parent() {\n return this._parent\n }\n\n constructor(\n readonly type: IAnyType,\n parent: AnyObjectNode | null,\n subpath: string,\n public environment: any\n ) {\n this.environment = environment\n this.baseSetParent(parent, subpath)\n }\n\n getReconciliationType() {\n return this.type\n }\n\n private pathAtom?: IAtom\n protected baseSetParent(parent: AnyObjectNode | null, subpath: string) {\n this._parent = parent\n this._subpath = subpath\n this._escapedSubpath = undefined // regenerate when needed\n if (this.pathAtom) {\n this.pathAtom.reportChanged()\n }\n }\n\n /*\n * Returns (escaped) path representation as string\n */\n get path(): string {\n return this.getEscapedPath(true)\n }\n\n protected getEscapedPath(reportObserved: boolean): string {\n if (reportObserved) {\n if (!this.pathAtom) {\n this.pathAtom = createAtom(`path`)\n }\n this.pathAtom.reportObserved()\n }\n if (!this.parent) {\n return \"\"\n }\n // regenerate escaped subpath if needed\n if (this._escapedSubpath === undefined) {\n this._escapedSubpath = !this._subpath ? \"\" : escapeJsonPath(this._subpath)\n }\n return (\n this.parent.getEscapedPath(reportObserved) + \"/\" + this._escapedSubpath\n )\n }\n\n get isRoot(): boolean {\n return this.parent === null\n }\n\n abstract get root(): AnyObjectNode\n\n abstract setParent(\n newParent: AnyObjectNode | null,\n subpath: string | null\n ): void\n\n abstract get snapshot(): S\n abstract getSnapshot(): S\n\n get isAlive() {\n return this.state !== NodeLifeCycle.DEAD\n }\n\n get isDetaching() {\n return this.state === NodeLifeCycle.DETACHING\n }\n\n get observableIsAlive() {\n if (!this.aliveAtom) {\n this.aliveAtom = createAtom(`alive`)\n }\n this.aliveAtom.reportObserved()\n return this.isAlive\n }\n\n abstract die(): void\n\n abstract finalizeCreation(): void\n\n protected baseFinalizeCreation(whenFinalized?: () => void) {\n if (devMode()) {\n if (!this.isAlive) {\n // istanbul ignore next\n throw fail(\n \"assertion failed: cannot finalize the creation of a node that is already dead\"\n )\n }\n }\n\n // goal: afterCreate hooks runs depth-first. After attach runs parent first, so on afterAttach the parent has completed already\n if (this.state === NodeLifeCycle.CREATED) {\n if (this.parent) {\n if (this.parent.state !== NodeLifeCycle.FINALIZED) {\n // parent not ready yet, postpone\n return\n }\n this.fireHook(Hook.afterAttach)\n }\n\n this.state = NodeLifeCycle.FINALIZED\n\n if (whenFinalized) {\n whenFinalized()\n }\n }\n }\n\n abstract finalizeDeath(): void\n\n protected baseFinalizeDeath() {\n if (this._hookSubscribers) {\n this._hookSubscribers.clearAll()\n }\n\n this._subpathUponDeath = this._subpath\n this._pathUponDeath = this.getEscapedPath(false)\n this.baseSetParent(null, \"\")\n this.state = NodeLifeCycle.DEAD\n }\n\n abstract aboutToDie(): void\n\n protected baseAboutToDie() {\n this.fireHook(Hook.beforeDestroy)\n }\n}\n\n/**\n * @internal\n * @hidden\n */\nexport type AnyNode = BaseNode<any, any, any>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hook.js","sourceRoot":"","sources":["../../../src/core/node/Hook.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,IAMX;AAND,WAAY,IAAI;IACd,mCAA2B,CAAA;IAC3B,mCAA2B,CAAA;IAC3B,+DAAuD,CAAA;IACvD,qCAA6B,CAAA;IAC7B,uCAA+B,CAAA;AACjC,CAAC,EANW,IAAI,oBAAJ,IAAI,QAMf"}
|
|
1
|
+
{"version":3,"file":"Hook.js","sourceRoot":"","sources":["../../../src/core/node/Hook.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,IAMX;AAND,WAAY,IAAI;IACd,mCAA2B,CAAA;IAC3B,mCAA2B,CAAA;IAC3B,+DAAuD,CAAA;IACvD,qCAA6B,CAAA;IAC7B,uCAA+B,CAAA;AACjC,CAAC,EANW,IAAI,oBAAJ,IAAI,QAMf","sourcesContent":["/**\n * @hidden\n */\nexport enum Hook {\n afterCreate = \"afterCreate\",\n afterAttach = \"afterAttach\",\n afterCreationFinalization = \"afterCreationFinalization\",\n beforeDetach = \"beforeDetach\",\n beforeDestroy = \"beforeDestroy\"\n}\n\nexport interface IHooks {\n [Hook.afterCreate]?: () => void\n [Hook.afterAttach]?: () => void\n [Hook.beforeDetach]?: () => void\n [Hook.beforeDestroy]?: () => void\n}\n\nexport type IHooksGetter<T> = (self: T) => IHooks\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-node.js","sourceRoot":"","sources":["../../../src/core/node/create-node.ts"],"names":[],"mappings":";;AAeA,4CA4BC;AAMD,4CAQC;AAMD,wBAEC;AAjED,mDAS0B;AAE1B;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,IAA0B,EAC1B,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAmB;IAEnB,MAAM,YAAY,GAAG,IAAA,kCAAoB,EAAC,YAAY,CAAC,CAAA;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,uBAAuB;YACvB,MAAM,IAAA,kBAAI,EACR,+HACE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACzB,IAAI,OAAO,+BAA+B,YAAY,CAAC,IAAI,GAAG,CAC/D,CAAA;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC;QACD,4DAA4D;QAE5D,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,yBAAyB;IACzB,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAiB,CAAC,CAAA;AAC9E,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,IAAyB,EACzB,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAe;IAEf,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,wBAAU,IAAI,KAAK,YAAY,wBAAU,CAAA;AACnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"create-node.js","sourceRoot":"","sources":["../../../src/core/node/create-node.ts"],"names":[],"mappings":";;AAeA,4CA4BC;AAMD,4CAQC;AAMD,wBAEC;AAjED,mDAS0B;AAE1B;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,IAA0B,EAC1B,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAmB;IAEnB,MAAM,YAAY,GAAG,IAAA,kCAAoB,EAAC,YAAY,CAAC,CAAA;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,uBAAuB;YACvB,MAAM,IAAA,kBAAI,EACR,+HACE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACzB,IAAI,OAAO,+BAA+B,YAAY,CAAC,IAAI,GAAG,CAC/D,CAAA;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC;QACD,4DAA4D;QAE5D,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,yBAAyB;IACzB,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAiB,CAAC,CAAA;AAC9E,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,IAAyB,EACzB,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAe;IAEf,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,wBAAU,IAAI,KAAK,YAAY,wBAAU,CAAA;AACnE,CAAC","sourcesContent":["import {\n type AnyNode,\n type AnyObjectNode,\n ComplexType,\n ObjectNode,\n ScalarNode,\n SimpleType,\n fail,\n getStateTreeNodeSafe\n} from \"../../internal.ts\"\n\n/**\n * @internal\n * @hidden\n */\nexport function createObjectNode<C, S, T>(\n type: ComplexType<C, S, T>,\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: C | T\n): ObjectNode<C, S, T> {\n const existingNode = getStateTreeNodeSafe(initialValue)\n if (existingNode) {\n if (existingNode.parent) {\n // istanbul ignore next\n throw fail(\n `Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '${\n parent ? parent.path : \"\"\n }/${subpath}', but it lives already at '${existingNode.path}'`\n )\n }\n\n if (parent) {\n existingNode.setParent(parent, subpath)\n }\n // else it already has no parent since it is a pre-requisite\n\n return existingNode\n }\n\n // not a node, a snapshot\n return new ObjectNode(type, parent, subpath, environment, initialValue as C)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function createScalarNode<C, S, T>(\n type: SimpleType<C, S, T>,\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: C\n): ScalarNode<C, S, T> {\n return new ScalarNode(type, parent, subpath, environment, initialValue)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function isNode(value: any): value is AnyNode {\n return value instanceof ScalarNode || value instanceof ObjectNode\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifier-cache.js","sourceRoot":"","sources":["../../../src/core/node/identifier-cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identifier-cache.js","sourceRoot":"","sources":["../../../src/core/node/identifier-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IObservableArray, entries, observable, values } from \"mobx\"\n\nimport {\n type AnyObjectNode,\n type IAnyComplexType,\n ObjectNode,\n fail,\n mobxShallow\n} from \"../../internal.ts\"\n\nlet identifierCacheId = 0\n\n/**\n * @internal\n * @hidden\n */\nexport class IdentifierCache {\n private cacheId = identifierCacheId++\n\n // n.b. in cache all identifiers are normalized to strings\n private cache = observable.map<string, IObservableArray<AnyObjectNode>>()\n\n // last time the cache (array) for a given time changed\n // n.b. it is not really the time, but just an integer that gets increased after each modification to the array\n private lastCacheModificationPerId = observable.map<string, number>()\n\n constructor() {}\n\n private updateLastCacheModificationPerId(identifier: string) {\n const lcm = this.lastCacheModificationPerId.get(identifier)\n // we start at 1 since 0 means no update since cache creation\n this.lastCacheModificationPerId.set(\n identifier,\n lcm === undefined ? 1 : lcm + 1\n )\n }\n\n getLastCacheModificationPerId(identifier: string): string {\n const modificationId = this.lastCacheModificationPerId.get(identifier) || 0\n return `${this.cacheId}-${modificationId}`\n }\n\n addNodeToCache(node: AnyObjectNode, lastCacheUpdate = true): void {\n if (node.identifierAttribute) {\n const identifier = node.identifier!\n if (!this.cache.has(identifier)) {\n this.cache.set(\n identifier,\n observable.array<AnyObjectNode>([], mobxShallow)\n )\n }\n const set = this.cache.get(identifier)!\n if (set.indexOf(node) !== -1) {\n throw fail(`Already registered`)\n }\n set.push(node)\n if (lastCacheUpdate) {\n this.updateLastCacheModificationPerId(identifier)\n }\n }\n }\n\n mergeCache(node: AnyObjectNode) {\n values(node.identifierCache!.cache).forEach(nodes =>\n nodes.forEach(child => {\n this.addNodeToCache(child)\n })\n )\n }\n\n notifyDied(node: AnyObjectNode) {\n if (node.identifierAttribute) {\n const id = node.identifier!\n const set = this.cache.get(id)\n if (set) {\n set.remove(node)\n // remove empty sets from cache\n if (!set.length) {\n this.cache.delete(id)\n }\n this.updateLastCacheModificationPerId(node.identifier!)\n }\n }\n }\n\n splitCache(splitNode: AnyObjectNode): IdentifierCache {\n const newCache = new IdentifierCache()\n // The slash is added here so we only match children of the splitNode. In version 5.1.8 and\n // earlier there was no trailing slash, so non children that started with the same path string\n // were being matched incorrectly.\n const basePath = splitNode.path + \"/\"\n entries(this.cache).forEach(([id, nodes]) => {\n let modified = false\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i]\n if (node === splitNode || node.path.indexOf(basePath) === 0) {\n newCache.addNodeToCache(node, false) // no need to update lastUpdated since it is a whole new cache\n nodes.splice(i, 1)\n // remove empty sets from cache\n if (!nodes.length) {\n this.cache.delete(id)\n }\n modified = true\n }\n }\n if (modified) {\n this.updateLastCacheModificationPerId(id)\n }\n })\n return newCache\n }\n\n has(type: IAnyComplexType, identifier: string): boolean {\n const set = this.cache.get(identifier)\n if (!set) {\n return false\n }\n return set.some(candidate => type.isAssignableFrom(candidate.type))\n }\n\n resolve<IT extends IAnyComplexType>(\n type: IT,\n identifier: string\n ): ObjectNode<\n IT[\"CreationType\"],\n IT[\"SnapshotType\"],\n IT[\"TypeWithoutSTN\"]\n > | null {\n const set = this.cache.get(identifier)\n if (!set) {\n return null\n }\n const matches = set.filter(candidate =>\n type.isAssignableFrom(candidate.type)\n )\n switch (matches.length) {\n case 0:\n return null\n case 1:\n return matches[0]\n default:\n throw fail(\n `Cannot resolve a reference to type '${\n type.name\n }' with id: '${identifier}' unambigously, there are multiple candidates: ${matches\n .map(n => n.path)\n .join(\", \")}`\n )\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livelinessChecking.js","sourceRoot":"","sources":["../../../src/core/node/livelinessChecking.ts"],"names":[],"mappings":";;AAiBA,sDAEC;AAOD,sDAEC;AAkBD,sDAEC;AAxCD,IAAI,kBAAkB,GAAmB,MAAM,CAAA;AAE/C;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAoB;IACxD,kBAAkB,GAAG,IAAI,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAQD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,IAAoB;IACxD,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"livelinessChecking.js","sourceRoot":"","sources":["../../../src/core/node/livelinessChecking.ts"],"names":[],"mappings":";;AAiBA,sDAEC;AAOD,sDAEC;AAkBD,sDAEC;AAxCD,IAAI,kBAAkB,GAAmB,MAAM,CAAA;AAE/C;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAoB;IACxD,kBAAkB,GAAG,IAAI,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAQD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,IAAoB;IACxD,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC","sourcesContent":["/**\n * Defines what MST should do when running into reads / writes to objects that have died.\n * - `\"warn\"`: Print a warning (default).\n * - `\"error\"`: Throw an exception.\n * - \"`ignore`\": Do nothing.\n */\nexport type LivelinessMode = \"warn\" | \"error\" | \"ignore\"\n\nlet livelinessChecking: LivelinessMode = \"warn\"\n\n/**\n * Defines what MST should do when running into reads / writes to objects that have died.\n * By default it will print a warning.\n * Use the `\"error\"` option to easy debugging to see where the error was thrown and when the offending read / write took place\n *\n * @param mode `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nexport function setLivelinessChecking(mode: LivelinessMode) {\n livelinessChecking = mode\n}\n\n/**\n * Returns the current liveliness checking mode.\n *\n * @returns `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nexport function getLivelinessChecking(): LivelinessMode {\n return livelinessChecking\n}\n\n/**\n * @deprecated use LivelinessMode instead\n * @hidden\n */\nexport type LivelynessMode = LivelinessMode\n\n/**\n * @deprecated use setLivelinessChecking instead\n * @hidden\n *\n * Defines what MST should do when running into reads / writes to objects that have died.\n * By default it will print a warning.\n * Use the `\"error\"` option to easy debugging to see where the error was thrown and when the offending read / write took place\n *\n * @param mode `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nexport function setLivelynessChecking(mode: LivelinessMode) {\n setLivelinessChecking(mode)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../../../src/core/node/node-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../../../src/core/node/node-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EMPTY_ARRAY,\n ObjectNode,\n ScalarNode,\n assertArg,\n fail,\n joinJsonPath,\n splitJsonPath\n} from \"../../internal.ts\"\n\nimport type {\n AnyNode,\n AnyObjectNode,\n IAnyComplexType,\n IAnyType,\n IChildNodesMap,\n IType,\n Instance,\n STNValue\n} from \"../../internal.ts\"\n\n/**\n * @internal\n * @hidden\n */\nexport enum NodeLifeCycle {\n INITIALIZING, // setting up\n CREATED, // afterCreate has run\n FINALIZED, // afterAttach has run\n DETACHING, // being detached from the tree\n DEAD // no coming back from this one\n}\n\n/** @hidden */\ndeclare const $stateTreeNodeType: unique symbol\n\n/**\n * Common interface that represents a node instance.\n * @hidden\n */\nexport interface IStateTreeNode<IT extends IAnyType = IAnyType> {\n /**\n * @internal\n */\n readonly $treenode?: any\n\n // fake, will never be present, just for typing\n // we use this weird trick to solve an issue with reference types\n readonly [$stateTreeNodeType]?: [IT] | [any]\n}\n\n/** @hidden */\nexport type TypeOfValue<T extends IAnyStateTreeNode> =\n T extends IStateTreeNode<infer IT> ? IT : never\n\n/**\n * Represents any state tree node instance.\n * @hidden\n */\nexport interface IAnyStateTreeNode extends STNValue<any, IAnyType> {}\n\n/**\n * Returns true if the given value is a node in a state tree.\n * More precisely, that is, if the value is an instance of a\n * `types.model`, `types.array` or `types.map`.\n *\n * @param value\n * @returns true if the value is a state tree node.\n */\nexport function isStateTreeNode<IT extends IAnyComplexType = IAnyComplexType>(\n value: any\n): value is STNValue<Instance<IT>, IT> {\n return !!(value && value.$treenode)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function assertIsStateTreeNode(\n value: IAnyStateTreeNode,\n argNumber: number | number[]\n): void {\n assertArg(value, isStateTreeNode, \"mobx-state-tree node\", argNumber)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function getStateTreeNode(value: IAnyStateTreeNode): AnyObjectNode {\n if (!isStateTreeNode(value)) {\n // istanbul ignore next\n throw fail(`Value ${value} is no MST Node`)\n }\n return value.$treenode!\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function getStateTreeNodeSafe(\n value: IAnyStateTreeNode\n): AnyObjectNode | null {\n return (value && value.$treenode) || null\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function toJSON<S>(this: IStateTreeNode<IType<any, S, any>>): S {\n return getStateTreeNode(this).snapshot\n}\n\nconst doubleDot = (_: any) => \"..\"\n\n/**\n * @internal\n * @hidden\n */\nexport function getRelativePathBetweenNodes(\n base: AnyObjectNode,\n target: AnyObjectNode\n): string {\n // PRE condition target is (a child of) base!\n if (base.root !== target.root) {\n throw fail(\n `Cannot calculate relative path: objects '${base}' and '${target}' are not part of the same object tree`\n )\n }\n\n const baseParts = splitJsonPath(base.path)\n const targetParts = splitJsonPath(target.path)\n let common = 0\n for (; common < baseParts.length; common++) {\n if (baseParts[common] !== targetParts[common]) {\n break\n }\n }\n // TODO: assert that no targetParts paths are \"..\", \".\" or \"\"!\n return (\n baseParts.slice(common).map(doubleDot).join(\"/\") +\n joinJsonPath(targetParts.slice(common))\n )\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function resolveNodeByPath(\n base: AnyObjectNode,\n path: string,\n failIfResolveFails: boolean = true\n): AnyNode | undefined {\n return resolveNodeByPathParts(base, splitJsonPath(path), failIfResolveFails)\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function resolveNodeByPathParts(\n base: AnyObjectNode,\n pathParts: string[],\n failIfResolveFails: boolean = true\n): AnyNode | undefined {\n let current: AnyNode | null = base\n try {\n for (let i = 0; i < pathParts.length; i++) {\n const part = pathParts[i]\n if (part === \"..\") {\n current = current!.parent\n if (current) {\n continue\n } // not everything has a parent\n } else if (part === \".\") {\n continue\n } else if (current) {\n if (current instanceof ScalarNode) {\n // check if the value of a scalar resolves to a state tree node (e.g. references)\n // then we can continue resolving...\n const value: any = current.value\n if (isStateTreeNode(value)) {\n current = getStateTreeNode(value)\n // fall through\n }\n }\n if (current instanceof ObjectNode) {\n const subType = current.getChildType(part)\n if (subType) {\n current = current.getChildNode(part)\n if (current) {\n continue\n }\n }\n }\n }\n throw fail(\n `Could not resolve '${part}' in path '${\n joinJsonPath(pathParts.slice(0, i)) || \"/\"\n }' while resolving '${joinJsonPath(pathParts)}'`\n )\n }\n } catch (e) {\n if (!failIfResolveFails) {\n return undefined\n }\n throw e\n }\n return current!\n}\n\n/**\n * @internal\n * @hidden\n */\nexport function convertChildNodesToArray(\n childNodes: IChildNodesMap | null\n): AnyNode[] {\n if (!childNodes) {\n return EMPTY_ARRAY as AnyNode[]\n }\n\n const keys = Object.keys(childNodes)\n if (!keys.length) {\n return EMPTY_ARRAY as AnyNode[]\n }\n\n const result = new Array(keys.length) as AnyNode[]\n keys.forEach((key, index) => {\n result[index] = childNodes![key]\n })\n return result\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { BaseNode
|
|
1
|
+
import { BaseNode } from "./BaseNode.ts";
|
|
2
|
+
import { ComplexType } from "../type/type.ts";
|
|
3
|
+
import { Hook, IdentifierCache } from "../../internal.ts";
|
|
2
4
|
import type { AnyNode, IAnyType, IDisposer, IJsonPatch, IMiddleware, IMiddlewareEvent, IMiddlewareHandler, IReversibleJsonPatch, IStateTreeNode, IType, ReferenceIdentifier } from "../../internal.ts";
|
|
3
5
|
/**
|
|
4
6
|
* @internal
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ObjectNode = void 0;
|
|
4
4
|
const mobx_1 = require("mobx");
|
|
5
|
+
const BaseNode_ts_1 = require("./BaseNode.js");
|
|
5
6
|
const internal_ts_1 = require("../../internal.js");
|
|
6
7
|
let nextNodeId = 1;
|
|
7
8
|
const snapshotReactionOptions = {
|
|
@@ -13,7 +14,7 @@ const snapshotReactionOptions = {
|
|
|
13
14
|
* @internal
|
|
14
15
|
* @hidden
|
|
15
16
|
*/
|
|
16
|
-
class ObjectNode extends
|
|
17
|
+
class ObjectNode extends BaseNode_ts_1.BaseNode {
|
|
17
18
|
nodeId = ++nextNodeId;
|
|
18
19
|
identifierAttribute;
|
|
19
20
|
identifier; // Identifier is always normalized to string, even if the identifier property isn't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-node.js","sourceRoot":"","sources":["../../../src/core/node/object-node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"object-node.js","sourceRoot":"","sources":["../../../src/core/node/object-node.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type IComputedValue,\n _allowStateChangesInsideComputed,\n action,\n computed,\n reaction\n} from \"mobx\"\n\nimport { BaseNode } from \"./BaseNode.ts\"\nimport { ComplexType } from \"../type/type.ts\"\nimport {\n EMPTY_OBJECT,\n EventHandlers,\n Hook,\n IdentifierCache,\n NodeLifeCycle,\n addHiddenFinalProp,\n convertChildNodesToArray,\n createActionInvoker,\n devMode,\n escapeJsonPath,\n extend,\n fail,\n freeze,\n getCurrentActionContext,\n getLivelinessChecking,\n getPath,\n normalizeIdentifier,\n resolveNodeByPathParts,\n splitJsonPath,\n splitPatch,\n toJSON,\n warnError\n} from \"../../internal.ts\"\n\nimport type {\n AnyNode,\n ArgumentTypes,\n IAnyType,\n IDisposer,\n IJsonPatch,\n IMiddleware,\n IMiddlewareEvent,\n IMiddlewareHandler,\n IReversibleJsonPatch,\n IStateTreeNode,\n IType,\n ReferenceIdentifier\n} from \"../../internal.ts\"\n\nlet nextNodeId = 1\n\nconst enum ObservableInstanceLifecycle {\n // the actual observable instance has not been created yet\n UNINITIALIZED,\n // the actual observable instance is being created\n CREATING,\n // the actual observable instance has been created\n CREATED\n}\n\nconst enum InternalEvents {\n Dispose = \"dispose\",\n Patch = \"patch\",\n Snapshot = \"snapshot\"\n}\n\n/**\n * @internal\n * @hidden\n */\nexport interface IChildNodesMap {\n [key: string]: AnyNode\n}\n\nconst snapshotReactionOptions = {\n onError(e: any) {\n throw e\n }\n}\n\ntype InternalEventHandlers<S> = {\n [InternalEvents.Dispose]: IDisposer\n [InternalEvents.Patch]: (patch: IJsonPatch, reversePatch: IJsonPatch) => void\n [InternalEvents.Snapshot]: (snapshot: S) => void\n}\n\n/**\n * @internal\n * @hidden\n */\nexport class ObjectNode<C, S, T> extends BaseNode<C, S, T> {\n declare readonly type: ComplexType<C, S, T>\n declare storedValue: T & IStateTreeNode<IType<C, S, T>>\n\n readonly nodeId = ++nextNodeId\n readonly identifierAttribute?: string\n readonly identifier: string | null // Identifier is always normalized to string, even if the identifier property isn't\n readonly unnormalizedIdentifier: ReferenceIdentifier | null\n\n identifierCache?: IdentifierCache\n isProtectionEnabled = true\n middlewares?: IMiddleware[]\n hasSnapshotPostProcessor = false\n\n private _applyPatches?: (patches: IJsonPatch[]) => void\n\n applyPatches(patches: IJsonPatch[]): void {\n this.createObservableInstanceIfNeeded()\n this._applyPatches!(patches)\n }\n\n private _applySnapshot?: (snapshot: C) => void\n\n applySnapshot(snapshot: C): void {\n this.createObservableInstanceIfNeeded()\n this._applySnapshot!(snapshot)\n }\n\n private _autoUnbox = true // unboxing is disabled when reading child nodes\n _isRunningAction = false // only relevant for root\n private _hasSnapshotReaction = false\n\n private _observableInstanceState = ObservableInstanceLifecycle.UNINITIALIZED\n private _childNodes: IChildNodesMap\n private _initialSnapshot: C\n private _cachedInitialSnapshot?: S\n private _cachedInitialSnapshotCreated = false\n private _snapshotComputed: IComputedValue<S>\n\n constructor(\n complexType: ComplexType<C, S, T>,\n parent: AnyObjectNode | null,\n subpath: string,\n environment: any,\n initialValue: C\n ) {\n super(complexType, parent, subpath, environment)\n this._snapshotComputed = computed<S>(() => freeze(this.getSnapshot()))\n\n this.unbox = this.unbox.bind(this)\n\n this._initialSnapshot = freeze(initialValue)\n this.identifierAttribute = complexType.identifierAttribute\n\n if (!parent) {\n this.identifierCache = new IdentifierCache()\n }\n\n this._childNodes = complexType.initializeChildNodes(\n this,\n this._initialSnapshot\n )\n\n // identifier can not be changed during lifecycle of a node\n // so we safely can read it from initial snapshot\n this.identifier = null\n this.unnormalizedIdentifier = null\n if (this.identifierAttribute && this._initialSnapshot) {\n let id = (this._initialSnapshot as any)[this.identifierAttribute]\n if (id === undefined) {\n // try with the actual node if not (for optional identifiers)\n const childNode = this._childNodes[this.identifierAttribute]\n if (childNode) {\n id = childNode.value\n }\n }\n\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n throw fail(\n `Instance identifier '${this.identifierAttribute}' for type '${this.type.name}' must be a string or a number`\n )\n }\n\n // normalize internal identifier to string\n this.identifier = normalizeIdentifier(id)\n this.unnormalizedIdentifier = id\n }\n\n if (!parent) {\n this.identifierCache!.addNodeToCache(this)\n } else {\n parent.root.identifierCache!.addNodeToCache(this)\n }\n }\n\n createObservableInstanceIfNeeded(fireHooks = true): void {\n if (\n this._observableInstanceState ===\n ObservableInstanceLifecycle.UNINITIALIZED\n ) {\n this.createObservableInstance(fireHooks)\n }\n }\n\n createObservableInstance(fireHooks = true): void {\n if (devMode()) {\n if (this.state !== NodeLifeCycle.INITIALIZING) {\n // istanbul ignore next\n throw fail(\n \"assertion failed: the creation of the observable instance must be done on the initializing phase\"\n )\n }\n }\n this._observableInstanceState = ObservableInstanceLifecycle.CREATING\n\n // make sure the parent chain is created as well\n\n // array with parent chain from parent to child\n const parentChain = []\n\n let parent = this.parent\n // for performance reasons we never go back further than the most direct\n // uninitialized parent\n // this is done to avoid traversing the whole tree to the root when using\n // the same reference again\n while (\n parent &&\n parent._observableInstanceState ===\n ObservableInstanceLifecycle.UNINITIALIZED\n ) {\n parentChain.unshift(parent)\n parent = parent.parent\n }\n\n // initialize the uninitialized parent chain from parent to child\n for (const p of parentChain) {\n // delay firing hooks until after all parents have been created\n p.createObservableInstanceIfNeeded(false)\n }\n\n const type = this.type\n\n try {\n // @ts-expect-error storedValue type mismatch during initialization\n this.storedValue = type.createNewInstance(this._childNodes)\n this.preboot()\n\n this._isRunningAction = true\n type.finalizeNewInstance(this, this.storedValue)\n } catch (e) {\n // short-cut to die the instance, to avoid the snapshot computed starting to throw...\n this.state = NodeLifeCycle.DEAD\n throw e\n } finally {\n this._isRunningAction = false\n }\n\n this._observableInstanceState = ObservableInstanceLifecycle.CREATED\n\n // NOTE: we need to touch snapshot, because non-observable\n // \"_observableInstanceState\" field was touched\n ;(this._snapshotComputed as any).trackAndCompute()\n\n if (this.isRoot) {\n this._addSnapshotReaction()\n }\n\n this._childNodes = EMPTY_OBJECT\n\n this.state = NodeLifeCycle.CREATED\n\n if (fireHooks) {\n this.fireHook(Hook.afterCreate)\n // Note that the parent might not be finalized at this point\n // so afterAttach won't be called until later in that case\n this.finalizeCreation()\n\n // fire the hooks of the parents that we created\n for (const p of parentChain.reverse()) {\n p.fireHook(Hook.afterCreate)\n // This will call afterAttach on the child if necessary\n p.finalizeCreation()\n }\n }\n }\n\n get root(): AnyObjectNode {\n const parent = this.parent\n return parent ? parent.root : this\n }\n\n clearParent(): void {\n if (!this.parent) {\n return\n }\n\n // detach if attached\n this.fireHook(Hook.beforeDetach)\n const previousState = this.state\n this.state = NodeLifeCycle.DETACHING\n\n const root = this.root\n const newEnv = root.environment\n const newIdCache = root.identifierCache!.splitCache(this)\n\n try {\n this.parent.removeChild(this.subpath)\n this.baseSetParent(null, \"\")\n this.environment = newEnv\n this.identifierCache = newIdCache\n } finally {\n this.state = previousState\n }\n }\n\n setParent(newParent: AnyObjectNode, subpath: string): void {\n const parentChanged = newParent !== this.parent\n const subpathChanged = subpath !== this.subpath\n\n if (!parentChanged && !subpathChanged) {\n return\n }\n\n if (devMode()) {\n if (!subpath) {\n // istanbul ignore next\n throw fail(\"assertion failed: subpath expected\")\n }\n if (!newParent) {\n // istanbul ignore next\n throw fail(\"assertion failed: new parent expected\")\n }\n\n if (this.parent && parentChanged) {\n throw fail(\n `A node cannot exists twice in the state tree. Failed to add ${this} to path '${newParent.path}/${subpath}'.`\n )\n }\n if (!this.parent && newParent.root === this) {\n throw fail(\n `A state tree is not allowed to contain itself. Cannot assign ${this} to path '${newParent.path}/${subpath}'`\n )\n }\n if (\n !this.parent &&\n !!this.environment &&\n this.environment !== newParent.root.environment\n ) {\n throw fail(\n `A state tree cannot be made part of another state tree as long as their environments are different.`\n )\n }\n }\n\n if (parentChanged) {\n // attach to new parent\n this.environment = undefined // will use root's\n newParent.root.identifierCache!.mergeCache(this)\n this.baseSetParent(newParent, subpath)\n this.fireHook(Hook.afterAttach)\n } else if (subpathChanged) {\n // moving to a new subpath on the same parent\n this.baseSetParent(this.parent, subpath)\n }\n }\n\n protected fireHook(name: Hook): void {\n this.fireInternalHook(name)\n\n const fn =\n this.storedValue &&\n typeof this.storedValue === \"object\" &&\n (this.storedValue as any)[name]\n if (typeof fn === \"function\") {\n // we check for it to allow old mobx peer dependencies that don't have the method to work (even when still bugged)\n if (_allowStateChangesInsideComputed) {\n _allowStateChangesInsideComputed(() => {\n fn.apply(this.storedValue)\n })\n } else {\n fn.apply(this.storedValue)\n }\n }\n }\n\n private _snapshotUponDeath?: S\n\n // advantage of using computed for a snapshot is that nicely respects transactions etc.\n get snapshot(): S {\n if (this.hasSnapshotPostProcessor) {\n this.createObservableInstanceIfNeeded()\n }\n return this._snapshotComputed.get()\n }\n\n // NOTE: we use this method to get snapshot without creating @computed overhead\n getSnapshot(): S {\n if (!this.isAlive) {\n return this._snapshotUponDeath!\n }\n return this._observableInstanceState === ObservableInstanceLifecycle.CREATED\n ? this._getActualSnapshot()\n : this._getCachedInitialSnapshot()\n }\n\n private _getActualSnapshot(): S {\n return this.type.getSnapshot(this)\n }\n\n private _getCachedInitialSnapshot(): S {\n if (!this._cachedInitialSnapshotCreated) {\n const type = this.type\n const childNodes = this._childNodes\n const snapshot = this._initialSnapshot\n\n this._cachedInitialSnapshot = type.processInitialSnapshot(\n childNodes,\n snapshot\n )\n this._cachedInitialSnapshotCreated = true\n }\n\n return this._cachedInitialSnapshot!\n }\n\n private isRunningAction(): boolean {\n if (this._isRunningAction) {\n return true\n }\n if (this.isRoot) {\n return false\n }\n return this.parent!.isRunningAction()\n }\n\n assertAlive(context: AssertAliveContext): void {\n const livelinessChecking = getLivelinessChecking()\n if (!this.isAlive && livelinessChecking !== \"ignore\") {\n const error = this._getAssertAliveError(context)\n switch (livelinessChecking) {\n case \"error\":\n throw fail(error)\n case \"warn\":\n warnError(error)\n }\n }\n }\n\n private _getAssertAliveError(context: AssertAliveContext): string {\n const escapedPath = this.getEscapedPath(false) || this.pathUponDeath || \"\"\n const subpath = (context.subpath && escapeJsonPath(context.subpath)) || \"\"\n\n let actionContext = context.actionContext || getCurrentActionContext()\n\n // try to use a real action context if possible since it includes the action name\n if (\n actionContext &&\n actionContext.type !== \"action\" &&\n actionContext.parentActionEvent\n ) {\n actionContext = actionContext.parentActionEvent\n }\n\n let actionFullPath = \"\"\n if (actionContext && actionContext.name != null) {\n // try to use the context, and if it not available use the node one\n const actionPath =\n (actionContext &&\n actionContext.context &&\n getPath(actionContext.context)) ||\n escapedPath\n actionFullPath = `${actionPath}.${actionContext.name}()`\n }\n\n return `You are trying to read or write to an object that is no longer part of a state tree. (Object type: '${this.type.name}', Path upon death: '${escapedPath}', Subpath: '${subpath}', Action: '${actionFullPath}'). Either detach nodes first, or don't use objects after removing / replacing them in the tree.`\n }\n\n getChildNode(subpath: string): AnyNode {\n this.assertAlive({\n subpath\n })\n this._autoUnbox = false\n try {\n return this._observableInstanceState ===\n ObservableInstanceLifecycle.CREATED\n ? this.type.getChildNode(this, subpath)\n : this._childNodes![subpath]\n } finally {\n this._autoUnbox = true\n }\n }\n\n getChildren(): ReadonlyArray<AnyNode> {\n this.assertAlive(EMPTY_OBJECT)\n this._autoUnbox = false\n try {\n return this._observableInstanceState ===\n ObservableInstanceLifecycle.CREATED\n ? this.type.getChildren(this)\n : convertChildNodesToArray(this._childNodes)\n } finally {\n this._autoUnbox = true\n }\n }\n\n getChildType(propertyName?: string): IAnyType {\n return this.type.getChildType(propertyName)\n }\n\n get isProtected(): boolean {\n return this.root.isProtectionEnabled\n }\n\n assertWritable(context: AssertAliveContext): void {\n this.assertAlive(context)\n if (!this.isRunningAction() && this.isProtected) {\n throw fail(\n `Cannot modify '${this}', the object is protected and can only be modified by using an action.`\n )\n }\n }\n\n removeChild(subpath: string): void {\n this.type.removeChild(this, subpath)\n }\n\n // bound on the constructor\n unbox(childNode: AnyNode | undefined): AnyNode | undefined {\n if (!childNode) {\n return childNode\n }\n\n this.assertAlive({\n subpath: childNode.subpath || childNode.subpathUponDeath\n })\n return this._autoUnbox ? childNode.value : childNode\n }\n\n toString(): string {\n const path = (this.isAlive ? this.path : this.pathUponDeath) || \"<root>\"\n const identifier = this.identifier ? `(id: ${this.identifier})` : \"\"\n return `${this.type.name}@${path}${identifier}${this.isAlive ? \"\" : \" [dead]\"}`\n }\n\n finalizeCreation(): void {\n this.baseFinalizeCreation(() => {\n for (const child of this.getChildren()) {\n child.finalizeCreation()\n }\n\n this.fireInternalHook(Hook.afterCreationFinalization)\n })\n }\n\n detach(): void {\n if (!this.isAlive) {\n throw fail(`Error while detaching, node is not alive.`)\n }\n\n this.clearParent()\n }\n\n private preboot(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this\n this._applyPatches = createActionInvoker(\n this.storedValue,\n \"@APPLY_PATCHES\",\n (patches: IJsonPatch[]) => {\n patches.forEach(patch => {\n if (!patch.path) {\n self.type.applySnapshot(self, patch.value)\n return\n }\n const parts = splitJsonPath(patch.path)\n const node = resolveNodeByPathParts(\n self,\n parts.slice(0, -1)\n ) as AnyObjectNode\n node.applyPatchLocally(parts[parts.length - 1], patch)\n })\n }\n )\n this._applySnapshot = createActionInvoker(\n this.storedValue,\n \"@APPLY_SNAPSHOT\",\n (snapshot: C) => {\n // if the snapshot is the same as the current one, avoid performing a reconcile\n if (snapshot === (self.snapshot as any)) {\n return\n }\n // else, apply it by calling the type logic\n return self.type.applySnapshot(self, snapshot as any)\n }\n )\n\n addHiddenFinalProp(this.storedValue, \"$treenode\", this)\n addHiddenFinalProp(this.storedValue, \"toJSON\", toJSON)\n }\n\n die(): void {\n if (!this.isAlive || this.state === NodeLifeCycle.DETACHING) {\n return\n }\n this.aboutToDie()\n this.finalizeDeath()\n }\n\n aboutToDie(): void {\n if (\n this._observableInstanceState ===\n ObservableInstanceLifecycle.UNINITIALIZED\n ) {\n return\n }\n\n this.getChildren().forEach(node => {\n node.aboutToDie()\n })\n\n // beforeDestroy should run before the disposers since else we could end up in a situation where\n // a disposer added with addDisposer at this stage (beforeDestroy) is actually never released\n this.baseAboutToDie()\n\n this._internalEventsEmit(InternalEvents.Dispose)\n this._internalEventsClear(InternalEvents.Dispose)\n }\n\n finalizeDeath(): void {\n // invariant: not called directly but from \"die\"\n this.getChildren().forEach(node => {\n node.finalizeDeath()\n })\n this.root.identifierCache!.notifyDied(this)\n\n // \"kill\" the computed prop and just store the last snapshot\n const snapshot = this.snapshot\n this._snapshotUponDeath = snapshot\n\n this._internalEventsClearAll()\n\n this.baseFinalizeDeath()\n }\n\n onSnapshot(onChange: (snapshot: S) => void): IDisposer {\n this._addSnapshotReaction()\n return this._internalEventsRegister(InternalEvents.Snapshot, onChange)\n }\n\n protected emitSnapshot(snapshot: S): void {\n this._internalEventsEmit(InternalEvents.Snapshot, snapshot)\n }\n\n onPatch(\n handler: (patch: IJsonPatch, reversePatch: IJsonPatch) => void\n ): IDisposer {\n return this._internalEventsRegister(InternalEvents.Patch, handler)\n }\n\n emitPatch(basePatch: IReversibleJsonPatch, source: AnyNode): void {\n if (this._internalEventsHasSubscribers(InternalEvents.Patch)) {\n const localizedPatch: IReversibleJsonPatch = extend({}, basePatch, {\n path: source.path.substr(this.path.length) + \"/\" + basePatch.path // calculate the relative path of the patch\n })\n const [patch, reversePatch] = splitPatch(localizedPatch)\n this._internalEventsEmit(InternalEvents.Patch, patch, reversePatch)\n }\n if (this.parent) {\n this.parent.emitPatch(basePatch, source)\n }\n }\n\n hasDisposer(disposer: () => void): boolean {\n return this._internalEventsHas(InternalEvents.Dispose, disposer)\n }\n\n addDisposer(disposer: () => void): void {\n if (!this.hasDisposer(disposer)) {\n this._internalEventsRegister(InternalEvents.Dispose, disposer, true)\n return\n }\n throw fail(\n \"cannot add a disposer when it is already registered for execution\"\n )\n }\n\n removeDisposer(disposer: () => void): void {\n if (!this._internalEventsHas(InternalEvents.Dispose, disposer)) {\n throw fail(\n \"cannot remove a disposer which was never registered for execution\"\n )\n }\n this._internalEventsUnregister(InternalEvents.Dispose, disposer)\n }\n\n private removeMiddleware(middleware: IMiddleware): void {\n if (this.middlewares) {\n const index = this.middlewares.indexOf(middleware)\n if (index >= 0) {\n this.middlewares.splice(index, 1)\n }\n }\n }\n\n addMiddleWare(\n handler: IMiddlewareHandler,\n includeHooks: boolean = true\n ): IDisposer {\n const middleware = { handler, includeHooks }\n if (!this.middlewares) {\n this.middlewares = [middleware]\n } else {\n this.middlewares.push(middleware)\n }\n\n return () => {\n this.removeMiddleware(middleware)\n }\n }\n\n applyPatchLocally(subpath: string, patch: IJsonPatch): void {\n this.assertWritable({\n subpath\n })\n this.createObservableInstanceIfNeeded()\n this.type.applyPatchLocally(this, subpath, patch)\n }\n\n private _addSnapshotReaction(): void {\n if (!this._hasSnapshotReaction) {\n const snapshotDisposer = reaction(\n () => this.snapshot,\n snapshot => this.emitSnapshot(snapshot),\n snapshotReactionOptions\n )\n this.addDisposer(snapshotDisposer)\n this._hasSnapshotReaction = true\n }\n }\n\n // #region internal event handling\n\n private _internalEvents?: EventHandlers<InternalEventHandlers<S>>\n\n // we proxy the methods to avoid creating an EventHandlers instance when it is not needed\n\n private _internalEventsHasSubscribers(event: InternalEvents): boolean {\n return !!this._internalEvents && this._internalEvents.hasSubscribers(event)\n }\n\n private _internalEventsRegister<IE extends InternalEvents>(\n event: IE,\n eventHandler: InternalEventHandlers<S>[IE],\n atTheBeginning = false\n ): IDisposer {\n if (!this._internalEvents) {\n this._internalEvents = new EventHandlers()\n }\n return this._internalEvents.register(event, eventHandler, atTheBeginning)\n }\n\n private _internalEventsHas<IE extends InternalEvents>(\n event: IE,\n eventHandler: InternalEventHandlers<S>[IE]\n ): boolean {\n return (\n !!this._internalEvents && this._internalEvents.has(event, eventHandler)\n )\n }\n\n private _internalEventsUnregister<IE extends InternalEvents>(\n event: IE,\n eventHandler: InternalEventHandlers<S>[IE]\n ): void {\n if (this._internalEvents) {\n this._internalEvents.unregister(event, eventHandler)\n }\n }\n\n private _internalEventsEmit<IE extends InternalEvents>(\n event: IE,\n ...args: ArgumentTypes<InternalEventHandlers<S>[IE]>\n ): void {\n if (this._internalEvents) {\n this._internalEvents.emit(event, ...args)\n }\n }\n\n private _internalEventsClear(event: InternalEvents): void {\n if (this._internalEvents) {\n this._internalEvents.clear(event)\n }\n }\n\n private _internalEventsClearAll(): void {\n if (this._internalEvents) {\n this._internalEvents.clearAll()\n }\n }\n\n // #endregion\n}\nObjectNode.prototype.createObservableInstance = action(\n ObjectNode.prototype.createObservableInstance\n)\nObjectNode.prototype.detach = action(ObjectNode.prototype.detach)\nObjectNode.prototype.die = action(ObjectNode.prototype.die)\n\n/**\n * @internal\n * @hidden\n */\nexport type AnyObjectNode = ObjectNode<any, any, any>\n\n/**\n * @internal\n * @hidden\n */\nexport interface AssertAliveContext {\n subpath?: string\n actionContext?: IMiddlewareEvent\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseNode } from "./BaseNode.ts";
|
|
2
|
+
import { SimpleType } from "../type/type.ts";
|
|
3
|
+
import { type AnyObjectNode, Hook } from "../../internal.ts";
|
|
2
4
|
/**
|
|
3
5
|
* @internal
|
|
4
6
|
* @hidden
|