vestjs-runtime 1.0.4 → 1.0.6
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/cjs/IsolateSerializer.development.js +18 -2
- package/dist/cjs/IsolateSerializer.development.js.map +1 -1
- package/dist/cjs/IsolateSerializer.production.js +1 -1
- package/dist/cjs/IsolateSerializer.production.js.map +1 -1
- package/dist/cjs/test-utils.development.js +11 -0
- package/dist/cjs/test-utils.development.js.map +1 -1
- package/dist/cjs/test-utils.production.js +1 -1
- package/dist/cjs/test-utils.production.js.map +1 -1
- package/dist/cjs/vestjs-runtime.development.js +164 -123
- package/dist/cjs/vestjs-runtime.development.js.map +1 -1
- package/dist/cjs/vestjs-runtime.production.js +1 -1
- package/dist/cjs/vestjs-runtime.production.js.map +1 -1
- package/dist/es/IsolateSerializer.development.js +18 -2
- package/dist/es/IsolateSerializer.development.js.map +1 -1
- package/dist/es/IsolateSerializer.production.js +1 -1
- package/dist/es/IsolateSerializer.production.js.map +1 -1
- package/dist/es/test-utils.development.js +11 -0
- package/dist/es/test-utils.development.js.map +1 -1
- package/dist/es/test-utils.production.js +1 -1
- package/dist/es/test-utils.production.js.map +1 -1
- package/dist/es/vestjs-runtime.development.js +166 -125
- package/dist/es/vestjs-runtime.development.js.map +1 -1
- package/dist/es/vestjs-runtime.production.js +1 -1
- package/dist/es/vestjs-runtime.production.js.map +1 -1
- package/dist/umd/IsolateSerializer.development.js +18 -2
- package/dist/umd/IsolateSerializer.development.js.map +1 -1
- package/dist/umd/IsolateSerializer.production.js +1 -1
- package/dist/umd/IsolateSerializer.production.js.map +1 -1
- package/dist/umd/test-utils.development.js +11 -0
- package/dist/umd/test-utils.development.js.map +1 -1
- package/dist/umd/test-utils.production.js +1 -1
- package/dist/umd/test-utils.production.js.map +1 -1
- package/dist/umd/vestjs-runtime.development.js +164 -123
- package/dist/umd/vestjs-runtime.development.js.map +1 -1
- package/dist/umd/vestjs-runtime.production.js +1 -1
- package/dist/umd/vestjs-runtime.production.js.map +1 -1
- package/package.json +3 -3
- package/types/IsolateSerializer.d.ts +8 -1
- package/types/IsolateSerializer.d.ts.map +1 -1
- package/types/test-utils.d.ts +8 -1
- package/types/test-utils.d.ts.map +1 -1
- package/types/vestjs-runtime.d.ts +38 -7
- package/types/vestjs-runtime.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsolateSerializer.development.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n IVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.IVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IsolateSerializer.development.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static setPending(isolate: TIsolate): void {\n isolate.status = IsolateStatus.PENDING;\n }\n\n static setDone(isolate: TIsolate): void {\n isolate.status = IsolateStatus.DONE;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{invariant as e,isNullish as t,isStringValue as n,isNotNullish as
|
|
1
|
+
import{invariant as e,isNullish as t,isStringValue as n,isNotNullish as s,hasOwnProperty as a,text as i}from"vest-utils";var r,l,o;!function(e){e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.UNABLE_TO_PICK_NEXT_ISOLATE="Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.",e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same key "{key}" twice. This may lead to inconsistent or overriding of results.',e.INVALID_ISOLATE_CANNOT_PARSE="Invalid isolate was passed to IsolateSerializer. Cannot proceed."}(r||(r={})),function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status"}(l||(l={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(o||(o={}));const c={[l.Type]:o.Type,[l.Keys]:o.Keys,[l.Parent]:o.Parent,[l.Data]:o.Data,[l.Key]:o.Key,[l.AllowReorder]:o.AllowReorder,[l.Status]:o.Status},d=Object.entries(c).reduce(((e,[t,n])=>Object.assign(e,{[n]:t})),{});var u;!function(e){e.PENDING="PENDING",e.DONE="DONE",e.INITIAL="INITIAL"}(u||(u={}));class y{static setParent(e,t){return e.parent=t,e}static saveOutput(e,t){return e.output=t,e}static setKey(e,t){return e.key=t,e}static addChild(t,n){var s;e(t),t.children=null!==(s=t.children)&&void 0!==s?s:[],t.children.push(n),y.setParent(n,t)}static removeChild(e,t){var n,s;e.children=null!==(s=null===(n=e.children)||void 0===n?void 0:n.filter((e=>e!==t)))&&void 0!==s?s:null}static addChildKey(t,n,s){var a;e(t),t.keys=null!==(a=t.keys)&&void 0!==a?a:{},t.keys[n]=s}static slice(e,n){t(e.children)||(e.children.length=n)}static setData(e,t){e.data=t}static setPending(e){e.status=u.PENDING}static setDone(e){e.status=u.DONE}}class h{static deserialize(e){const t=n(e)?JSON.parse(e):Object.assign({},e);h.validateIsolate(t);const a=[t];for(;a.length;){const e=a.shift(),t=h.getChildren(e);for(const t in d){const n=e[t];s(n)&&(e[d[t]]=n,delete e[t])}t&&(e.children=t.map((t=>{var n;const s=Object.assign({},t);y.setParent(s,e),a.push(s);const i=s.key;return i&&(e.keys=null!==(n=e.keys)&&void 0!==n?n:{},e.keys[i]=s),s})))}return t}static serialize(e){return t(e)?"":JSON.stringify(N(e))}static getChildren(e){return e.children?[...e.children]:null}static validateIsolate(t){e(a(t,l.Type)||a(t,c[l.Type]),i(r.INVALID_ISOLATE_CANNOT_PARSE))}}function N(e){const n={};e.children&&(n.children=e.children.map(N));for(const s in e){if("children"===s)continue;if(I(s))continue;const i=e[s];t(i)||(a(c,s)?n[c[s]]=i:n[s]=i)}return n}function I(e){return[l.Parent,l.Keys].includes(e)}export{h as IsolateSerializer};
|
|
2
2
|
//# sourceMappingURL=IsolateSerializer.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsolateSerializer.production.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n IVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.IVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":["ErrorStrings","IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","MinifiedToKey","Object","entries","reduce","acc","key","minified","assign","IsolateMutator","static","isolate","parent","output","child","invariant","children","_a","push","setParent","node","_b","filter","keys","at","isNullish","length","data","IsolateSerializer","root","isStringValue","JSON","parse","validateIsolate","queue","current","shift","getChildren","value","isNotNullish","map","nextChild","stringify","transformIsolate","hasOwnProperty","text","IVALID_ISOLATE_CANNOT_PARSE","next","isKeyExcluededFromDump","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IsolateSerializer.production.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static setPending(isolate: TIsolate): void {\n isolate.status = IsolateStatus.PENDING;\n }\n\n static setDone(isolate: TIsolate): void {\n isolate.status = IsolateStatus.DONE;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":["ErrorStrings","IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","MinifiedToKey","Object","entries","reduce","acc","key","minified","assign","IsolateStatus","IsolateMutator","static","isolate","parent","output","child","invariant","children","_a","push","setParent","node","_b","filter","keys","at","isNullish","length","data","status","PENDING","DONE","IsolateSerializer","root","isStringValue","JSON","parse","validateIsolate","queue","current","shift","getChildren","value","isNotNullish","map","nextChild","stringify","transformIsolate","hasOwnProperty","text","INVALID_ISOLATE_CANNOT_PARSE","next","isKeyExcluededFromDump","includes"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ var IsolateKeys;
|
|
|
6
6
|
IsolateKeys["Parent"] = "parent";
|
|
7
7
|
IsolateKeys["Data"] = "data";
|
|
8
8
|
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
9
|
+
IsolateKeys["Status"] = "status";
|
|
9
10
|
})(IsolateKeys || (IsolateKeys = {}));
|
|
10
11
|
var MinifiedKeys;
|
|
11
12
|
(function (MinifiedKeys) {
|
|
@@ -15,6 +16,7 @@ var MinifiedKeys;
|
|
|
15
16
|
MinifiedKeys["Parent"] = "P";
|
|
16
17
|
MinifiedKeys["Data"] = "D";
|
|
17
18
|
MinifiedKeys["AllowReorder"] = "aR";
|
|
19
|
+
MinifiedKeys["Status"] = "S";
|
|
18
20
|
})(MinifiedKeys || (MinifiedKeys = {}));
|
|
19
21
|
const KeyToMinified = {
|
|
20
22
|
[IsolateKeys.Type]: MinifiedKeys.Type,
|
|
@@ -23,6 +25,7 @@ const KeyToMinified = {
|
|
|
23
25
|
[IsolateKeys.Data]: MinifiedKeys.Data,
|
|
24
26
|
[IsolateKeys.Key]: MinifiedKeys.Key,
|
|
25
27
|
[IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,
|
|
28
|
+
[IsolateKeys.Status]: MinifiedKeys.Status,
|
|
26
29
|
};
|
|
27
30
|
// This const is an object that looks like this:
|
|
28
31
|
// {
|
|
@@ -35,6 +38,13 @@ Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc
|
|
|
35
38
|
[minified]: key,
|
|
36
39
|
}), {});
|
|
37
40
|
|
|
41
|
+
var IsolateStatus;
|
|
42
|
+
(function (IsolateStatus) {
|
|
43
|
+
IsolateStatus["PENDING"] = "PENDING";
|
|
44
|
+
IsolateStatus["DONE"] = "DONE";
|
|
45
|
+
IsolateStatus["INITIAL"] = "INITIAL";
|
|
46
|
+
})(IsolateStatus || (IsolateStatus = {}));
|
|
47
|
+
|
|
38
48
|
function genTestIsolate(data = {}) {
|
|
39
49
|
return {
|
|
40
50
|
children: [],
|
|
@@ -43,6 +53,7 @@ function genTestIsolate(data = {}) {
|
|
|
43
53
|
keys: {},
|
|
44
54
|
output: null,
|
|
45
55
|
parent: null,
|
|
56
|
+
status: IsolateStatus.INITIAL,
|
|
46
57
|
[IsolateKeys.Type]: 'UnitTest',
|
|
47
58
|
};
|
|
48
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.development.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":[],"mappings":"AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"test-utils.development.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n status: IsolateStatus.INITIAL,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":[],"mappings":"AAAA,IAAY,WAQX,CAAA;AARD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;AAED,IAAK,YAQJ,CAAA;AARD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,IAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EARI,YAAY,KAAZ,YAAY,GAQhB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,aAAa,GAAG;AAC3B,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;AACrC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;AACrC,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;AACzC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;AACrC,IAAA,CAAC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;AACnC,IAAA,CAAC,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY;AACrD,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;CAC1C,CAAC;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AAC6B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAC/D,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,KACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;IACjB,CAAC,QAAQ,GAAG,GAAG;CAChB,CAAC,EACJ,EAAiC;;AC1CnC,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;ACAe,SAAA,cAAc,CAAC,IAAA,GAA4B,EAAE,EAAA;IAC3D,OAAO;AACL,QAAA,QAAQ,EAAE,EAAE;QACZ,IAAI;AACJ,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,aAAa,CAAC,OAAO;AAC7B,QAAA,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU;KAC/B,CAAC;AACJ;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;!function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder"}(e||(e={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR"}(t||(t={}));const
|
|
1
|
+
var e,t;!function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status"}(e||(e={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(t||(t={}));const a={[e.Type]:t.Type,[e.Keys]:t.Keys,[e.Parent]:t.Parent,[e.Data]:t.Data,[e.Key]:t.Key,[e.AllowReorder]:t.AllowReorder,[e.Status]:t.Status};var r;function n(t={}){return{children:[],data:t,key:null,keys:{},output:null,parent:null,status:r.INITIAL,[e.Type]:"UnitTest"}}Object.entries(a).reduce(((e,[t,a])=>Object.assign(e,{[a]:t})),{}),function(e){e.PENDING="PENDING",e.DONE="DONE",e.INITIAL="INITIAL"}(r||(r={}));export{n as genTestIsolate};
|
|
2
2
|
//# sourceMappingURL=test-utils.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.production.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":["IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","genTestIsolate","data","children","key","keys","output","parent","Object","entries","reduce","acc","minified","assign"],"mappings":"AAAA,IAAYA,
|
|
1
|
+
{"version":3,"file":"test-utils.production.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n status: IsolateStatus.INITIAL,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":["IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","IsolateStatus","genTestIsolate","data","children","key","keys","output","parent","status","INITIAL","Object","entries","reduce","acc","minified","assign"],"mappings":"AAAA,IAAYA,EAUPC,GAVL,SAAYD,GACVA,EAAA,KAAA,QACAA,EAAA,KAAA,OACAA,EAAA,IAAA,MACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,aAAA,eACAA,EAAA,OAAA,QACD,CARD,CAAYA,IAAAA,EAQX,CAAA,IAED,SAAKC,GACHA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,IAAA,IACAA,EAAA,OAAA,IACAA,EAAA,KAAA,IACAA,EAAA,aAAA,KACAA,EAAA,OAAA,GACD,CARD,CAAKA,IAAAA,EAQJ,CAAA,IAEM,MAAMC,EAAgB,CAC3B,CAACF,EAAYG,MAAOF,EAAaE,KACjC,CAACH,EAAYI,MAAOH,EAAaG,KACjC,CAACJ,EAAYK,QAASJ,EAAaI,OACnC,CAACL,EAAYM,MAAOL,EAAaK,KACjC,CAACN,EAAYO,KAAMN,EAAaM,IAChC,CAACP,EAAYQ,cAAeP,EAAaO,aACzC,CAACR,EAAYS,QAASR,EAAaQ,QC3BrC,IAAYC,ECII,SAAAC,EAAeC,EAA4B,IACzD,MAAO,CACLC,SAAU,GACVD,OACAE,IAAK,KACLC,KAAM,CAAE,EACRC,OAAQ,KACRC,OAAQ,KACRC,OAAQR,EAAcS,QACtB,CAACnB,EAAYG,MAAO,WAExB,CFsB6BiB,OAAOC,QAAQnB,GAAeoB,QACzD,CAACC,GAAMT,EAAKU,KACVJ,OAAOK,OAAOF,EAAK,CACjBC,CAACA,GAAWV,KAEhB,CAAiC,GC1CnC,SAAYJ,GACVA,EAAA,QAAA,UACAA,EAAA,KAAA,OACAA,EAAA,QAAA,SACD,CAJD,CAAYA,IAAAA,EAIX,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isNullish, isNotNullish, invariant, assign, bus, optionalFunctionValue, tinyState, deferThrow, text, isPromise, isStringValue, hasOwnProperty } from 'vest-utils';
|
|
2
2
|
import { createCascade } from 'context';
|
|
3
3
|
|
|
4
4
|
/******************************************************************************
|
|
@@ -35,91 +35,12 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
35
35
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
var IsolateKeys;
|
|
39
|
-
(function (IsolateKeys) {
|
|
40
|
-
IsolateKeys["Type"] = "$type";
|
|
41
|
-
IsolateKeys["Keys"] = "keys";
|
|
42
|
-
IsolateKeys["Key"] = "key";
|
|
43
|
-
IsolateKeys["Parent"] = "parent";
|
|
44
|
-
IsolateKeys["Data"] = "data";
|
|
45
|
-
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
46
|
-
})(IsolateKeys || (IsolateKeys = {}));
|
|
47
|
-
var MinifiedKeys;
|
|
48
|
-
(function (MinifiedKeys) {
|
|
49
|
-
MinifiedKeys["Type"] = "$";
|
|
50
|
-
MinifiedKeys["Keys"] = "K";
|
|
51
|
-
MinifiedKeys["Key"] = "k";
|
|
52
|
-
MinifiedKeys["Parent"] = "P";
|
|
53
|
-
MinifiedKeys["Data"] = "D";
|
|
54
|
-
MinifiedKeys["AllowReorder"] = "aR";
|
|
55
|
-
})(MinifiedKeys || (MinifiedKeys = {}));
|
|
56
|
-
const KeyToMinified = {
|
|
57
|
-
[IsolateKeys.Type]: MinifiedKeys.Type,
|
|
58
|
-
[IsolateKeys.Keys]: MinifiedKeys.Keys,
|
|
59
|
-
[IsolateKeys.Parent]: MinifiedKeys.Parent,
|
|
60
|
-
[IsolateKeys.Data]: MinifiedKeys.Data,
|
|
61
|
-
[IsolateKeys.Key]: MinifiedKeys.Key,
|
|
62
|
-
[IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,
|
|
63
|
-
};
|
|
64
|
-
// This const is an object that looks like this:
|
|
65
|
-
// {
|
|
66
|
-
// '$': '$type',
|
|
67
|
-
// 'K': 'keys',
|
|
68
|
-
// 'P': 'parent',
|
|
69
|
-
// ...
|
|
70
|
-
// }
|
|
71
|
-
const MinifiedToKey = Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
|
|
72
|
-
[minified]: key,
|
|
73
|
-
}), {});
|
|
74
|
-
|
|
75
|
-
class IsolateMutator {
|
|
76
|
-
static setParent(isolate, parent) {
|
|
77
|
-
isolate.parent = parent;
|
|
78
|
-
return isolate;
|
|
79
|
-
}
|
|
80
|
-
static saveOutput(isolate, output) {
|
|
81
|
-
isolate.output = output;
|
|
82
|
-
return isolate;
|
|
83
|
-
}
|
|
84
|
-
static setKey(isolate, key) {
|
|
85
|
-
isolate.key = key;
|
|
86
|
-
return isolate;
|
|
87
|
-
}
|
|
88
|
-
static addChild(isolate, child) {
|
|
89
|
-
var _a;
|
|
90
|
-
invariant(isolate);
|
|
91
|
-
isolate.children = (_a = isolate.children) !== null && _a !== void 0 ? _a : [];
|
|
92
|
-
isolate.children.push(child);
|
|
93
|
-
IsolateMutator.setParent(child, isolate);
|
|
94
|
-
}
|
|
95
|
-
static removeChild(isolate, node) {
|
|
96
|
-
var _a, _b;
|
|
97
|
-
isolate.children =
|
|
98
|
-
(_b = (_a = isolate.children) === null || _a === void 0 ? void 0 : _a.filter(child => child !== node)) !== null && _b !== void 0 ? _b : null;
|
|
99
|
-
}
|
|
100
|
-
static addChildKey(isolate, key, node) {
|
|
101
|
-
var _a;
|
|
102
|
-
invariant(isolate);
|
|
103
|
-
isolate.keys = (_a = isolate.keys) !== null && _a !== void 0 ? _a : {};
|
|
104
|
-
isolate.keys[key] = node;
|
|
105
|
-
}
|
|
106
|
-
static slice(isolate, at) {
|
|
107
|
-
if (isNullish(isolate.children)) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
isolate.children.length = at;
|
|
111
|
-
}
|
|
112
|
-
static setData(isolate, data) {
|
|
113
|
-
isolate.data = data;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
38
|
var ErrorStrings;
|
|
118
39
|
(function (ErrorStrings) {
|
|
119
40
|
ErrorStrings["NO_ACTIVE_ISOLATE"] = "Not within an active isolate";
|
|
120
41
|
ErrorStrings["UNABLE_TO_PICK_NEXT_ISOLATE"] = "Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.";
|
|
121
42
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.";
|
|
122
|
-
ErrorStrings["
|
|
43
|
+
ErrorStrings["INVALID_ISOLATE_CANNOT_PARSE"] = "Invalid isolate was passed to IsolateSerializer. Cannot proceed.";
|
|
123
44
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
124
45
|
|
|
125
46
|
class IsolateInspector {
|
|
@@ -161,22 +82,60 @@ class IsolateInspector {
|
|
|
161
82
|
}
|
|
162
83
|
}
|
|
163
84
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
function isSameIsolateIdentity(a, b) {
|
|
171
|
-
return Object.is(a, b) || (isSameIsolateType(a, b) && a.key === b.key);
|
|
172
|
-
}
|
|
85
|
+
var IsolateStatus;
|
|
86
|
+
(function (IsolateStatus) {
|
|
87
|
+
IsolateStatus["PENDING"] = "PENDING";
|
|
88
|
+
IsolateStatus["DONE"] = "DONE";
|
|
89
|
+
IsolateStatus["INITIAL"] = "INITIAL";
|
|
90
|
+
})(IsolateStatus || (IsolateStatus = {}));
|
|
173
91
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
92
|
+
class IsolateMutator {
|
|
93
|
+
static setParent(isolate, parent) {
|
|
94
|
+
isolate.parent = parent;
|
|
95
|
+
return isolate;
|
|
96
|
+
}
|
|
97
|
+
static saveOutput(isolate, output) {
|
|
98
|
+
isolate.output = output;
|
|
99
|
+
return isolate;
|
|
100
|
+
}
|
|
101
|
+
static setKey(isolate, key) {
|
|
102
|
+
isolate.key = key;
|
|
103
|
+
return isolate;
|
|
104
|
+
}
|
|
105
|
+
static addChild(isolate, child) {
|
|
106
|
+
var _a;
|
|
107
|
+
invariant(isolate);
|
|
108
|
+
isolate.children = (_a = isolate.children) !== null && _a !== void 0 ? _a : [];
|
|
109
|
+
isolate.children.push(child);
|
|
110
|
+
IsolateMutator.setParent(child, isolate);
|
|
111
|
+
}
|
|
112
|
+
static removeChild(isolate, node) {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
isolate.children =
|
|
115
|
+
(_b = (_a = isolate.children) === null || _a === void 0 ? void 0 : _a.filter(child => child !== node)) !== null && _b !== void 0 ? _b : null;
|
|
116
|
+
}
|
|
117
|
+
static addChildKey(isolate, key, node) {
|
|
118
|
+
var _a;
|
|
119
|
+
invariant(isolate);
|
|
120
|
+
isolate.keys = (_a = isolate.keys) !== null && _a !== void 0 ? _a : {};
|
|
121
|
+
isolate.keys[key] = node;
|
|
122
|
+
}
|
|
123
|
+
static slice(isolate, at) {
|
|
124
|
+
if (isNullish(isolate.children)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
isolate.children.length = at;
|
|
128
|
+
}
|
|
129
|
+
static setData(isolate, data) {
|
|
130
|
+
isolate.data = data;
|
|
131
|
+
}
|
|
132
|
+
static setPending(isolate) {
|
|
133
|
+
isolate.status = IsolateStatus.PENDING;
|
|
134
|
+
}
|
|
135
|
+
static setDone(isolate) {
|
|
136
|
+
isolate.status = IsolateStatus.DONE;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
180
139
|
|
|
181
140
|
const PersistedContext = createCascade((stateRef, parentContext) => {
|
|
182
141
|
if (parentContext) {
|
|
@@ -319,6 +278,89 @@ function useLoadRootNode(root) {
|
|
|
319
278
|
useSetHistory(root);
|
|
320
279
|
}
|
|
321
280
|
|
|
281
|
+
function useBus() {
|
|
282
|
+
return useX().stateRef.Bus;
|
|
283
|
+
}
|
|
284
|
+
/*
|
|
285
|
+
Returns an emitter, but it also has a shortcut for emitting an event immediately
|
|
286
|
+
by passing an event name.
|
|
287
|
+
*/
|
|
288
|
+
function useEmit(event, data) {
|
|
289
|
+
const emit = useBus().emit;
|
|
290
|
+
if (!isNullish(event)) {
|
|
291
|
+
emit(event, data);
|
|
292
|
+
}
|
|
293
|
+
return persist(emit);
|
|
294
|
+
}
|
|
295
|
+
function usePrepareEmitter(event) {
|
|
296
|
+
const emit = useEmit();
|
|
297
|
+
return (arg) => emit(event, arg);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
var Bus = /*#__PURE__*/Object.freeze({
|
|
301
|
+
__proto__: null,
|
|
302
|
+
useBus: useBus,
|
|
303
|
+
useEmit: useEmit,
|
|
304
|
+
usePrepareEmitter: usePrepareEmitter
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
var IsolateKeys;
|
|
308
|
+
(function (IsolateKeys) {
|
|
309
|
+
IsolateKeys["Type"] = "$type";
|
|
310
|
+
IsolateKeys["Keys"] = "keys";
|
|
311
|
+
IsolateKeys["Key"] = "key";
|
|
312
|
+
IsolateKeys["Parent"] = "parent";
|
|
313
|
+
IsolateKeys["Data"] = "data";
|
|
314
|
+
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
315
|
+
IsolateKeys["Status"] = "status";
|
|
316
|
+
})(IsolateKeys || (IsolateKeys = {}));
|
|
317
|
+
var MinifiedKeys;
|
|
318
|
+
(function (MinifiedKeys) {
|
|
319
|
+
MinifiedKeys["Type"] = "$";
|
|
320
|
+
MinifiedKeys["Keys"] = "K";
|
|
321
|
+
MinifiedKeys["Key"] = "k";
|
|
322
|
+
MinifiedKeys["Parent"] = "P";
|
|
323
|
+
MinifiedKeys["Data"] = "D";
|
|
324
|
+
MinifiedKeys["AllowReorder"] = "aR";
|
|
325
|
+
MinifiedKeys["Status"] = "S";
|
|
326
|
+
})(MinifiedKeys || (MinifiedKeys = {}));
|
|
327
|
+
const KeyToMinified = {
|
|
328
|
+
[IsolateKeys.Type]: MinifiedKeys.Type,
|
|
329
|
+
[IsolateKeys.Keys]: MinifiedKeys.Keys,
|
|
330
|
+
[IsolateKeys.Parent]: MinifiedKeys.Parent,
|
|
331
|
+
[IsolateKeys.Data]: MinifiedKeys.Data,
|
|
332
|
+
[IsolateKeys.Key]: MinifiedKeys.Key,
|
|
333
|
+
[IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,
|
|
334
|
+
[IsolateKeys.Status]: MinifiedKeys.Status,
|
|
335
|
+
};
|
|
336
|
+
// This const is an object that looks like this:
|
|
337
|
+
// {
|
|
338
|
+
// '$': '$type',
|
|
339
|
+
// 'K': 'keys',
|
|
340
|
+
// 'P': 'parent',
|
|
341
|
+
// ...
|
|
342
|
+
// }
|
|
343
|
+
const MinifiedToKey = Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
|
|
344
|
+
[minified]: key,
|
|
345
|
+
}), {});
|
|
346
|
+
|
|
347
|
+
function isIsolateType(node, type) {
|
|
348
|
+
return (node === null || node === void 0 ? void 0 : node[IsolateKeys.Type]) === type;
|
|
349
|
+
}
|
|
350
|
+
function isSameIsolateType(a, b) {
|
|
351
|
+
return isIsolateType(a, b[IsolateKeys.Type]);
|
|
352
|
+
}
|
|
353
|
+
function isSameIsolateIdentity(a, b) {
|
|
354
|
+
return Object.is(a, b) || (isSameIsolateType(a, b) && a.key === b.key);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
var IsolateSelectors = /*#__PURE__*/Object.freeze({
|
|
358
|
+
__proto__: null,
|
|
359
|
+
isIsolateType: isIsolateType,
|
|
360
|
+
isSameIsolateIdentity: isSameIsolateIdentity,
|
|
361
|
+
isSameIsolateType: isSameIsolateType
|
|
362
|
+
});
|
|
363
|
+
|
|
322
364
|
function BaseReconciler(currentNode, historyNode) {
|
|
323
365
|
if (isNullish(historyNode)) {
|
|
324
366
|
return currentNode;
|
|
@@ -389,6 +431,10 @@ function removeAllNextNodesInIsolate() {
|
|
|
389
431
|
IsolateMutator.slice(historyNode, IsolateInspector.cursor(currentNode));
|
|
390
432
|
}
|
|
391
433
|
|
|
434
|
+
const RuntimeEvents = {
|
|
435
|
+
ASYNC_ISOLATE_DONE: 'ASYNC_ISOLATE_DONE',
|
|
436
|
+
};
|
|
437
|
+
|
|
392
438
|
class Isolate {
|
|
393
439
|
static create(type, callback, payload = undefined, key) {
|
|
394
440
|
const parent = useIsolate();
|
|
@@ -403,6 +449,9 @@ class Isolate {
|
|
|
403
449
|
addNodeToHistory(nextIsolateChild);
|
|
404
450
|
return nextIsolateChild;
|
|
405
451
|
}
|
|
452
|
+
static isIsolate(node) {
|
|
453
|
+
return isNotNullish(node) && node[IsolateKeys.Type];
|
|
454
|
+
}
|
|
406
455
|
}
|
|
407
456
|
/**
|
|
408
457
|
* Creates a new child isolate context where the local history node is the current history node, thus advancing the history cursor.
|
|
@@ -414,9 +463,26 @@ class Isolate {
|
|
|
414
463
|
*/
|
|
415
464
|
function useRunAsNew(localHistoryNode, current, callback) {
|
|
416
465
|
const runtimeRoot = useRuntimeRoot();
|
|
466
|
+
const emit = useEmit();
|
|
417
467
|
// We're creating a new child isolate context where the local history node
|
|
418
468
|
// is the current history node, thus advancing the history cursor.
|
|
419
|
-
const output = Run(Object.assign({ historyNode: localHistoryNode, runtimeNode: current }, (!runtimeRoot && { runtimeRoot: current })), () =>
|
|
469
|
+
const output = Run(Object.assign({ historyNode: localHistoryNode, runtimeNode: current }, (!runtimeRoot && { runtimeRoot: current })), () => {
|
|
470
|
+
const output = callback(current);
|
|
471
|
+
if (isPromise(output)) {
|
|
472
|
+
IsolateMutator.setPending(current);
|
|
473
|
+
output.then(iso => {
|
|
474
|
+
if (Isolate.isIsolate(iso)) {
|
|
475
|
+
IsolateMutator.addChild(current, iso);
|
|
476
|
+
}
|
|
477
|
+
IsolateMutator.setDone(current);
|
|
478
|
+
emit(RuntimeEvents.ASYNC_ISOLATE_DONE, current);
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
IsolateMutator.setDone(current);
|
|
483
|
+
}
|
|
484
|
+
return output;
|
|
485
|
+
});
|
|
420
486
|
current.output = output;
|
|
421
487
|
return output;
|
|
422
488
|
}
|
|
@@ -428,6 +494,7 @@ function baseIsolate(type, payload = undefined, key = null) {
|
|
|
428
494
|
[IsolateKeys.Parent]: null,
|
|
429
495
|
[IsolateKeys.Type]: type,
|
|
430
496
|
[IsolateKeys.Data]: data,
|
|
497
|
+
[IsolateKeys.Status]: IsolateStatus.INITIAL,
|
|
431
498
|
children: null,
|
|
432
499
|
key,
|
|
433
500
|
output: null,
|
|
@@ -565,32 +632,6 @@ var IsolateWalker = /*#__PURE__*/Object.freeze({
|
|
|
565
632
|
walk: walk
|
|
566
633
|
});
|
|
567
634
|
|
|
568
|
-
function useBus() {
|
|
569
|
-
return useX().stateRef.Bus;
|
|
570
|
-
}
|
|
571
|
-
/*
|
|
572
|
-
Returns an emitter, but it also has a shortcut for emitting an event immediately
|
|
573
|
-
by passing an event name.
|
|
574
|
-
*/
|
|
575
|
-
function useEmit(event, data) {
|
|
576
|
-
const emit = useBus().emit;
|
|
577
|
-
if (!isNullish(event)) {
|
|
578
|
-
emit(event, data);
|
|
579
|
-
}
|
|
580
|
-
return persist(emit);
|
|
581
|
-
}
|
|
582
|
-
function usePrepareEmitter(event) {
|
|
583
|
-
const emit = useEmit();
|
|
584
|
-
return (arg) => emit(event, arg);
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
var Bus = /*#__PURE__*/Object.freeze({
|
|
588
|
-
__proto__: null,
|
|
589
|
-
useBus: useBus,
|
|
590
|
-
useEmit: useEmit,
|
|
591
|
-
usePrepareEmitter: usePrepareEmitter
|
|
592
|
-
});
|
|
593
|
-
|
|
594
635
|
class IsolateSerializer {
|
|
595
636
|
// eslint-disable-next-line max-statements, complexity
|
|
596
637
|
static deserialize(node) {
|
|
@@ -645,7 +686,7 @@ class IsolateSerializer {
|
|
|
645
686
|
}
|
|
646
687
|
static validateIsolate(node) {
|
|
647
688
|
invariant(hasOwnProperty(node, IsolateKeys.Type) ||
|
|
648
|
-
hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]), text(ErrorStrings.
|
|
689
|
+
hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]), text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE));
|
|
649
690
|
}
|
|
650
691
|
}
|
|
651
692
|
// eslint-disable-next-line max-statements, complexity
|
|
@@ -678,5 +719,5 @@ function isKeyExcluededFromDump(key) {
|
|
|
678
719
|
return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key);
|
|
679
720
|
}
|
|
680
721
|
|
|
681
|
-
export { Bus, Isolate, IsolateInspector, IsolateMutator, IsolateSelectors, IsolateSerializer, Reconciler, RuntimeApi as VestRuntime, IsolateWalker as Walker };
|
|
722
|
+
export { Bus, Isolate, IsolateInspector, IsolateMutator, IsolateSelectors, IsolateSerializer, IsolateStatus, Reconciler, RuntimeApi as VestRuntime, IsolateWalker as Walker };
|
|
682
723
|
//# sourceMappingURL=vestjs-runtime.development.js.map
|