vestjs-runtime 1.0.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/IsolateSerializer.development.js +12 -13
- 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 +43 -18
- 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 +43 -51
- 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 +12 -13
- 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 +43 -18
- 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 +43 -52
- 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 +12 -13
- 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 +86 -61
- 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 +702 -710
- 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 +6 -7
- package/types/IsolateSerializer.d.ts.map +1 -1
- package/types/test-utils.d.ts +7 -8
- package/types/test-utils.d.ts.map +1 -1
- package/types/vestjs-runtime.d.ts +29 -24
- package/types/vestjs-runtime.d.ts.map +1 -1
|
@@ -19,6 +19,7 @@ var IsolateKeys;
|
|
|
19
19
|
IsolateKeys["Data"] = "data";
|
|
20
20
|
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
21
21
|
IsolateKeys["Status"] = "status";
|
|
22
|
+
IsolateKeys["AbortController"] = "abortController";
|
|
22
23
|
})(IsolateKeys || (IsolateKeys = {}));
|
|
23
24
|
var MinifiedKeys;
|
|
24
25
|
(function (MinifiedKeys) {
|
|
@@ -49,13 +50,11 @@ const KeyToMinified = {
|
|
|
49
50
|
const MinifiedToKey = Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
|
|
50
51
|
[minified]: key,
|
|
51
52
|
}), {});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
IsolateStatus["INITIAL"] = "INITIAL";
|
|
58
|
-
})(IsolateStatus || (IsolateStatus = {}));
|
|
53
|
+
const ExcludedFromDump = [
|
|
54
|
+
IsolateKeys.AbortController,
|
|
55
|
+
IsolateKeys.Parent,
|
|
56
|
+
IsolateKeys.Keys,
|
|
57
|
+
];
|
|
59
58
|
|
|
60
59
|
class IsolateMutator {
|
|
61
60
|
static setParent(isolate, parent) {
|
|
@@ -97,11 +96,11 @@ class IsolateMutator {
|
|
|
97
96
|
static setData(isolate, data) {
|
|
98
97
|
isolate.data = data;
|
|
99
98
|
}
|
|
100
|
-
static
|
|
101
|
-
isolate.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
isolate.
|
|
99
|
+
static abort(isolate, reason) {
|
|
100
|
+
if (vestUtils.isNullish(isolate.abortController)) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
isolate.abortController.abort(reason);
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
|
|
@@ -189,7 +188,7 @@ function transformIsolate(isolate) {
|
|
|
189
188
|
return next;
|
|
190
189
|
}
|
|
191
190
|
function isKeyExcluededFromDump(key) {
|
|
192
|
-
return
|
|
191
|
+
return ExcludedFromDump.includes(key);
|
|
193
192
|
}
|
|
194
193
|
|
|
195
194
|
exports.IsolateSerializer = IsolateSerializer;
|
|
@@ -1 +1 @@
|
|
|
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":["invariant","isNullish","isStringValue","isNotNullish","hasOwnProperty","text"],"mappings":"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"}
|
|
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 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 AbortController = 'abortController',\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\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\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 static abort(isolate: TIsolate, reason?: string): void {\n if (isNullish(isolate.abortController)) {\n return;\n }\n isolate.abortController.abort(reason);\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 {\n ExcludedFromDump,\n IsolateKeys,\n KeyToMinified,\n MinifiedToKey,\n} 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 ExcludedFromDump.includes(key as IsolateKeys);\n}\n"],"names":["invariant","isNullish","isStringValue","isNotNullish","hasOwnProperty","text"],"mappings":";;;;AAAA,IAAY,YAKX,CAAA;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,mBAAA,CAAA,GAAA,8BAAkD,CAAA;AAClD,IAAA,YAAA,CAAA,6BAAA,CAAA,GAAA,uFAAqH,CAAA;AACrH,IAAA,YAAA,CAAA,gCAAA,CAAA,GAAA,mGAAkI,CAAA;AAClI,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,kEAAiG,CAAA;AACnG,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;ACLD,IAAY,WASX,CAAA;AATD,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;AACjB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACrC,CAAC,EATW,WAAW,KAAX,WAAW,GAStB,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;AACO,MAAM,aAAa,GAAG,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,CAClC,CAAC;AAEK,MAAM,gBAAgB,GAAG;AAC9B,IAAA,WAAW,CAAC,eAAe;AAC3B,IAAA,WAAW,CAAC,MAAM;AAClB,IAAA,WAAW,CAAC,IAAI;CACjB;;MC9CY,cAAc,CAAA;AACzB,IAAA,OAAO,SAAS,CAAC,OAAiB,EAAE,MAA0B,EAAA;AAC5D,QAAA,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,OAAO,UAAU,CAAC,OAAiB,EAAE,MAAW,EAAA;AAC9C,QAAA,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,OAAO,MAAM,CAAC,OAAiB,EAAE,GAAqB,EAAA;AACpD,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAClB,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,OAAO,QAAQ,CAAC,OAAiB,EAAE,KAAe,EAAA;;QAChDA,mBAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAE1C,QAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC1C;AAED,IAAA,OAAO,WAAW,CAAC,OAAiB,EAAE,IAAc,EAAA;;AAClD,QAAA,OAAO,CAAC,QAAQ;AACd,YAAA,CAAA,EAAA,GAAA,MAAA,OAAO,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;KAC7D;AAED,IAAA,OAAO,WAAW,CAAC,OAAiB,EAAE,GAAW,EAAE,IAAc,EAAA;;QAC/DA,mBAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAElC,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KAC1B;AAED,IAAA,OAAO,KAAK,CAAC,OAAiB,EAAE,EAAU,EAAA;AACxC,QAAA,IAAIC,mBAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO;AACR,SAAA;AACD,QAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;KAC9B;AAED,IAAA,OAAO,OAAO,CAAC,OAAiB,EAAE,IAAS,EAAA;AACzC,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;KACrB;AAED,IAAA,OAAO,KAAK,CAAC,OAAiB,EAAE,MAAe,EAAA;AAC7C,QAAA,IAAIA,mBAAS,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YACtC,OAAO;AACR,SAAA;AACD,QAAA,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACvC;AACF;;MCvCY,iBAAiB,CAAA;;IAE5B,OAAO,WAAW,CAAC,IAA6C,EAAA;;;;;;;;AAS9D,QAAA,MAAM,IAAI,GAAGC,uBAAa,CAAC,IAAI,CAAC;AAC9B,cAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClB,cAAG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,IAAI,CAAe,CAAC;AAE9B,QAAA,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAExC,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,KAAK,CAAC,MAAM,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAE9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAExD,YAAA,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;AAC/B,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3B,gBAAA,IAAIC,sBAAY,CAAC,KAAK,CAAC,EAAE;oBACvB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpC,oBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,iBAAA;AACF,aAAA;YAED,IAAI,CAAC,QAAQ,EAAE;gBACb,SAAS;AACV,aAAA;YAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAG;;AACtC,gBAAA,MAAM,SAAS,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,KAAK,CAAE,CAAC;AAE/B,gBAAA,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7C,gBAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEtB,gBAAA,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;AAE1B,gBAAA,IAAI,GAAG,EAAE;oBACP,OAAO,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAClC,oBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC/B,iBAAA;AAED,gBAAA,OAAO,SAAS,CAAC;AACnB,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,IAAgB,CAAC;KACzB;IAED,OAAO,SAAS,CAAC,OAA2B,EAAA;AAC1C,QAAA,IAAIF,mBAAS,CAAC,OAAO,CAAC,EAAE;AACtB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;KAClD;IAED,OAAO,WAAW,CAAC,IAAc,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;KAClD;IAED,OAAO,eAAe,CAAC,IAAoC,EAAA;QACzDD,mBAAS,CACPI,wBAAc,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACpC,YAAAA,wBAAc,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EACvDC,cAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAChD,CAAC;KACH;AACF,CAAA;AAED;AACA,SAAS,gBAAgB,CAAC,OAAiB,EAAA;IACzC,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACxD,KAAA;AAED,IAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAI,GAAG,KAAK,UAAU,EAAE;YACtB,SAAS;AACV,SAAA;AAED,QAAA,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE;YAC/B,SAAS;AACV,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAqB,CAAC,CAAC;AAE7C,QAAA,IAAIJ,mBAAS,CAAC,KAAK,CAAC,EAAE;YACpB,SAAS;AACV,SAAA;AAED,QAAA,IAAIG,wBAAc,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACnB,SAAA;AACF,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW,EAAA;AACzC,IAAA,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAkB,CAAC,CAAC;AACvD;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e,
|
|
1
|
+
"use strict";var t,e,r,i=require("vest-utils");!function(t){t.NO_ACTIVE_ISOLATE="Not within an active isolate",t.UNABLE_TO_PICK_NEXT_ISOLATE="Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.",t.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same key "{key}" twice. This may lead to inconsistent or overriding of results.',t.INVALID_ISOLATE_CANNOT_PARSE="Invalid isolate was passed to IsolateSerializer. Cannot proceed."}(t||(t={})),function(t){t.Type="$type",t.Keys="keys",t.Key="key",t.Parent="parent",t.Data="data",t.AllowReorder="allowReorder",t.Status="status",t.AbortController="abortController"}(e||(e={})),function(t){t.Type="$",t.Keys="K",t.Key="k",t.Parent="P",t.Data="D",t.AllowReorder="aR",t.Status="S"}(r||(r={}));const s={[e.Type]:r.Type,[e.Keys]:r.Keys,[e.Parent]:r.Parent,[e.Data]:r.Data,[e.Key]:r.Key,[e.AllowReorder]:r.AllowReorder,[e.Status]:r.Status},n=Object.entries(s).reduce(((t,[e,r])=>Object.assign(t,{[r]:e})),{}),a=[e.AbortController,e.Parent,e.Keys];class l{static setParent(t,e){return t.parent=e,t}static saveOutput(t,e){return t.output=e,t}static setKey(t,e){return t.key=e,t}static addChild(t,e){var r;i.invariant(t),t.children=null!==(r=t.children)&&void 0!==r?r:[],t.children.push(e),l.setParent(e,t)}static removeChild(t,e){var r,i;t.children=null!==(i=null===(r=t.children)||void 0===r?void 0:r.filter((t=>t!==e)))&&void 0!==i?i:null}static addChildKey(t,e,r){var s;i.invariant(t),t.keys=null!==(s=t.keys)&&void 0!==s?s:{},t.keys[e]=r}static slice(t,e){i.isNullish(t.children)||(t.children.length=e)}static setData(t,e){t.data=e}static abort(t,e){i.isNullish(t.abortController)||t.abortController.abort(e)}}class o{static deserialize(t){const e=i.isStringValue(t)?JSON.parse(t):Object.assign({},t);o.validateIsolate(e);const r=[e];for(;r.length;){const t=r.shift(),e=o.getChildren(t);for(const e in n){const r=t[e];i.isNotNullish(r)&&(t[n[e]]=r,delete t[e])}e&&(t.children=e.map((e=>{var i;const s=Object.assign({},e);l.setParent(s,t),r.push(s);const n=s.key;return n&&(t.keys=null!==(i=t.keys)&&void 0!==i?i:{},t.keys[n]=s),s})))}return e}static serialize(t){return i.isNullish(t)?"":JSON.stringify(c(t))}static getChildren(t){return t.children?[...t.children]:null}static validateIsolate(r){i.invariant(i.hasOwnProperty(r,e.Type)||i.hasOwnProperty(r,s[e.Type]),i.text(t.INVALID_ISOLATE_CANNOT_PARSE))}}function c(t){const e={};t.children&&(e.children=t.children.map(c));for(const r in t){if("children"===r)continue;if(d(r))continue;const n=t[r];i.isNullish(n)||(i.hasOwnProperty(s,r)?e[s[r]]=n:e[r]=n)}return e}function d(t){return a.includes(t)}exports.IsolateSerializer=o;
|
|
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/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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"}
|
|
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 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 AbortController = 'abortController',\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\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\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 static abort(isolate: TIsolate, reason?: string): void {\n if (isNullish(isolate.abortController)) {\n return;\n }\n isolate.abortController.abort(reason);\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 {\n ExcludedFromDump,\n IsolateKeys,\n KeyToMinified,\n MinifiedToKey,\n} 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 ExcludedFromDump.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","ExcludedFromDump","AbortController","IsolateMutator","static","isolate","parent","output","child","invariant","children","_a","push","setParent","node","_b","filter","keys","at","isNullish","length","data","reason","abortController","abort","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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"}
|
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
/******************************************************************************
|
|
4
|
+
Copyright (c) Microsoft Corporation.
|
|
5
|
+
|
|
6
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7
|
+
purpose with or without fee is hereby granted.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
+
***************************************************************************** */
|
|
17
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
function __rest(s, e) {
|
|
21
|
+
var t = {};
|
|
22
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
23
|
+
t[p] = s[p];
|
|
24
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
25
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
26
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
27
|
+
t[p[i]] = s[p[i]];
|
|
28
|
+
}
|
|
29
|
+
return t;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
33
|
+
var e = new Error(message);
|
|
34
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
35
|
+
};
|
|
36
|
+
|
|
3
37
|
var IsolateKeys;
|
|
4
38
|
(function (IsolateKeys) {
|
|
5
39
|
IsolateKeys["Type"] = "$type";
|
|
@@ -9,6 +43,7 @@ var IsolateKeys;
|
|
|
9
43
|
IsolateKeys["Data"] = "data";
|
|
10
44
|
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
11
45
|
IsolateKeys["Status"] = "status";
|
|
46
|
+
IsolateKeys["AbortController"] = "abortController";
|
|
12
47
|
})(IsolateKeys || (IsolateKeys = {}));
|
|
13
48
|
var MinifiedKeys;
|
|
14
49
|
(function (MinifiedKeys) {
|
|
@@ -39,25 +74,15 @@ const KeyToMinified = {
|
|
|
39
74
|
Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
|
|
40
75
|
[minified]: key,
|
|
41
76
|
}), {});
|
|
77
|
+
[
|
|
78
|
+
IsolateKeys.AbortController,
|
|
79
|
+
IsolateKeys.Parent,
|
|
80
|
+
IsolateKeys.Keys,
|
|
81
|
+
];
|
|
42
82
|
|
|
43
|
-
|
|
44
|
-
(
|
|
45
|
-
|
|
46
|
-
IsolateStatus["DONE"] = "DONE";
|
|
47
|
-
IsolateStatus["INITIAL"] = "INITIAL";
|
|
48
|
-
})(IsolateStatus || (IsolateStatus = {}));
|
|
49
|
-
|
|
50
|
-
function genTestIsolate(data = {}) {
|
|
51
|
-
return {
|
|
52
|
-
children: [],
|
|
53
|
-
data,
|
|
54
|
-
key: null,
|
|
55
|
-
keys: {},
|
|
56
|
-
output: null,
|
|
57
|
-
parent: null,
|
|
58
|
-
status: IsolateStatus.INITIAL,
|
|
59
|
-
[IsolateKeys.Type]: 'UnitTest',
|
|
60
|
-
};
|
|
83
|
+
function genTestIsolate(payload = {}) {
|
|
84
|
+
const { status } = payload, data = __rest(payload, ["status"]);
|
|
85
|
+
return Object.assign({ children: [], data, key: null, keys: {}, output: null, parent: null, [IsolateKeys.Type]: 'UnitTest' }, (status && { status }));
|
|
61
86
|
}
|
|
62
87
|
|
|
63
88
|
exports.genTestIsolate = genTestIsolate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.development.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/
|
|
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 Status = 'status',\n AbortController = 'abortController',\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\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(payload: Record<string, any> = {}): TIsolate {\n const { status, ...data } = payload;\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n ...(status && { status }),\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAY,WASX,CAAA;AATD,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;AACjB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACrC,CAAC,EATW,WAAW,KAAX,WAAW,GAStB,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,EACjC;AAE8B;AAC9B,IAAA,WAAW,CAAC,eAAe;AAC3B,IAAA,WAAW,CAAC,MAAM;AAClB,IAAA,WAAW,CAAC,IAAI;;;AC9CF,SAAA,cAAc,CAAC,OAAA,GAA+B,EAAE,EAAA;IAC9D,MAAM,EAAE,MAAM,EAAA,GAAc,OAAO,EAAhB,IAAI,GAAA,MAAA,CAAK,OAAO,EAA7B,CAAmB,QAAA,CAAA,CAAU,CAAC;AACpC,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,EACE,QAAQ,EAAE,EAAE,EACZ,IAAI,EACJ,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,EAAE,EACR,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,EACZ,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,EAAA,GAC1B,MAAM,IAAI,EAAE,MAAM,EAAE,EACxB,CAAA;AACJ;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e,t
|
|
1
|
+
"use strict";var e,t;"function"==typeof SuppressedError&&SuppressedError,function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status",e.AbortController="abortController"}(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 r={[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};Object.entries(r).reduce(((e,[t,r])=>Object.assign(e,{[r]:t})),{}),e.AbortController,e.Parent,e.Keys,exports.genTestIsolate=function(t={}){const{status:r}=t,o=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}(t,["status"]);return Object.assign({children:[],data:o,key:null,keys:{},output:null,parent:null,[e.Type]:"UnitTest"},r&&{status:r})};
|
|
2
2
|
//# sourceMappingURL=test-utils.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.production.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/
|
|
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 Status = 'status',\n AbortController = 'abortController',\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\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(payload: Record<string, any> = {}): TIsolate {\n const { status, ...data } = payload;\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n ...(status && { status }),\n };\n}\n"],"names":["IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","Object","entries","reduce","acc","key","minified","assign","AbortController","payload","status","data","__rest","children","keys","output","parent"],"mappings":"aAAA,IAAYA,EAWPC,sDAXL,SAAYD,GACVA,EAAA,KAAA,QACAA,EAAA,KAAA,OACAA,EAAA,IAAA,MACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,aAAA,eACAA,EAAA,OAAA,SACAA,EAAA,gBAAA,iBACD,CATD,CAAYA,IAAAA,EASX,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,QAURC,OAAOC,QAAQT,GAAeU,QACzD,CAACC,GAAMC,EAAKC,KACVL,OAAOM,OAAOH,EAAK,CACjBE,CAACA,GAAWD,KAEhB,CAAA,GAIAd,EAAYiB,gBACZjB,EAAYK,OACZL,EAAYI,4BC9CE,SAAec,EAA+B,IAC5D,MAAMC,OAAEA,GAAoBD,EAATE,2UAAIC,CAAKH,EAAtB,CAAmB,WACzB,OAAAR,OAAAM,OAAA,CACEM,SAAU,GACVF,OACAN,IAAK,KACLS,KAAM,GACNC,OAAQ,KACRC,OAAQ,KACR,CAACzB,EAAYG,MAAO,YAChBgB,GAAU,CAAEA,UAEpB"}
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
var vestUtils = require('vest-utils');
|
|
4
4
|
var context = require('context');
|
|
5
5
|
|
|
6
|
+
const RuntimeEvents = {
|
|
7
|
+
ISOLATE_ENTER: 'ISOLATE_ENTER',
|
|
8
|
+
ISOLATE_PENDING: 'ISOLATE_PENDING',
|
|
9
|
+
ISOLATE_DONE: 'ISOLATE_DONE',
|
|
10
|
+
};
|
|
11
|
+
|
|
6
12
|
/******************************************************************************
|
|
7
13
|
Copyright (c) Microsoft Corporation.
|
|
8
14
|
|
|
@@ -84,13 +90,6 @@ class IsolateInspector {
|
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
|
|
87
|
-
exports.IsolateStatus = void 0;
|
|
88
|
-
(function (IsolateStatus) {
|
|
89
|
-
IsolateStatus["PENDING"] = "PENDING";
|
|
90
|
-
IsolateStatus["DONE"] = "DONE";
|
|
91
|
-
IsolateStatus["INITIAL"] = "INITIAL";
|
|
92
|
-
})(exports.IsolateStatus || (exports.IsolateStatus = {}));
|
|
93
|
-
|
|
94
93
|
class IsolateMutator {
|
|
95
94
|
static setParent(isolate, parent) {
|
|
96
95
|
isolate.parent = parent;
|
|
@@ -131,11 +130,11 @@ class IsolateMutator {
|
|
|
131
130
|
static setData(isolate, data) {
|
|
132
131
|
isolate.data = data;
|
|
133
132
|
}
|
|
134
|
-
static
|
|
135
|
-
isolate.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
isolate.
|
|
133
|
+
static abort(isolate, reason) {
|
|
134
|
+
if (vestUtils.isNullish(isolate.abortController)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
isolate.abortController.abort(reason);
|
|
139
138
|
}
|
|
140
139
|
}
|
|
141
140
|
|
|
@@ -300,10 +299,10 @@ function usePrepareEmitter(event) {
|
|
|
300
299
|
}
|
|
301
300
|
|
|
302
301
|
var Bus = /*#__PURE__*/Object.freeze({
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
302
|
+
__proto__: null,
|
|
303
|
+
useBus: useBus,
|
|
304
|
+
useEmit: useEmit,
|
|
305
|
+
usePrepareEmitter: usePrepareEmitter
|
|
307
306
|
});
|
|
308
307
|
|
|
309
308
|
var IsolateKeys;
|
|
@@ -315,6 +314,7 @@ var IsolateKeys;
|
|
|
315
314
|
IsolateKeys["Data"] = "data";
|
|
316
315
|
IsolateKeys["AllowReorder"] = "allowReorder";
|
|
317
316
|
IsolateKeys["Status"] = "status";
|
|
317
|
+
IsolateKeys["AbortController"] = "abortController";
|
|
318
318
|
})(IsolateKeys || (IsolateKeys = {}));
|
|
319
319
|
var MinifiedKeys;
|
|
320
320
|
(function (MinifiedKeys) {
|
|
@@ -345,6 +345,11 @@ const KeyToMinified = {
|
|
|
345
345
|
const MinifiedToKey = Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
|
|
346
346
|
[minified]: key,
|
|
347
347
|
}), {});
|
|
348
|
+
const ExcludedFromDump = [
|
|
349
|
+
IsolateKeys.AbortController,
|
|
350
|
+
IsolateKeys.Parent,
|
|
351
|
+
IsolateKeys.Keys,
|
|
352
|
+
];
|
|
348
353
|
|
|
349
354
|
function isIsolateType(node, type) {
|
|
350
355
|
return (node === null || node === void 0 ? void 0 : node[IsolateKeys.Type]) === type;
|
|
@@ -357,10 +362,10 @@ function isSameIsolateIdentity(a, b) {
|
|
|
357
362
|
}
|
|
358
363
|
|
|
359
364
|
var IsolateSelectors = /*#__PURE__*/Object.freeze({
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
365
|
+
__proto__: null,
|
|
366
|
+
isIsolateType: isIsolateType,
|
|
367
|
+
isSameIsolateIdentity: isSameIsolateIdentity,
|
|
368
|
+
isSameIsolateType: isSameIsolateType
|
|
364
369
|
});
|
|
365
370
|
|
|
366
371
|
function BaseReconciler(currentNode, historyNode) {
|
|
@@ -433,10 +438,6 @@ function removeAllNextNodesInIsolate() {
|
|
|
433
438
|
IsolateMutator.slice(historyNode, IsolateInspector.cursor(currentNode));
|
|
434
439
|
}
|
|
435
440
|
|
|
436
|
-
const RuntimeEvents = {
|
|
437
|
-
ASYNC_ISOLATE_DONE: 'ASYNC_ISOLATE_DONE',
|
|
438
|
-
};
|
|
439
|
-
|
|
440
441
|
class Isolate {
|
|
441
442
|
static create(type, callback, payload = undefined, key) {
|
|
442
443
|
const parent = useIsolate();
|
|
@@ -469,19 +470,19 @@ function useRunAsNew(localHistoryNode, current, callback) {
|
|
|
469
470
|
// We're creating a new child isolate context where the local history node
|
|
470
471
|
// is the current history node, thus advancing the history cursor.
|
|
471
472
|
const output = Run(Object.assign({ historyNode: localHistoryNode, runtimeNode: current }, (!runtimeRoot && { runtimeRoot: current })), () => {
|
|
473
|
+
emit(RuntimeEvents.ISOLATE_ENTER, current);
|
|
472
474
|
const output = callback(current);
|
|
473
475
|
if (vestUtils.isPromise(output)) {
|
|
474
|
-
|
|
476
|
+
emit(RuntimeEvents.ISOLATE_PENDING, current);
|
|
475
477
|
output.then(iso => {
|
|
476
478
|
if (Isolate.isIsolate(iso)) {
|
|
477
479
|
IsolateMutator.addChild(current, iso);
|
|
478
480
|
}
|
|
479
|
-
|
|
480
|
-
emit(RuntimeEvents.ASYNC_ISOLATE_DONE, current);
|
|
481
|
+
emit(RuntimeEvents.ISOLATE_DONE, current);
|
|
481
482
|
});
|
|
482
483
|
}
|
|
483
484
|
else {
|
|
484
|
-
|
|
485
|
+
emit(RuntimeEvents.ISOLATE_DONE, current);
|
|
485
486
|
}
|
|
486
487
|
return output;
|
|
487
488
|
});
|
|
@@ -489,18 +490,8 @@ function useRunAsNew(localHistoryNode, current, callback) {
|
|
|
489
490
|
return output;
|
|
490
491
|
}
|
|
491
492
|
function baseIsolate(type, payload = undefined, key = null) {
|
|
492
|
-
const _a = payload !== null && payload !== void 0 ? payload : {}, { allowReorder } = _a, data = __rest(_a, ["allowReorder"]);
|
|
493
|
-
return {
|
|
494
|
-
[IsolateKeys.AllowReorder]: allowReorder,
|
|
495
|
-
[IsolateKeys.Keys]: null,
|
|
496
|
-
[IsolateKeys.Parent]: null,
|
|
497
|
-
[IsolateKeys.Type]: type,
|
|
498
|
-
[IsolateKeys.Data]: data,
|
|
499
|
-
[IsolateKeys.Status]: exports.IsolateStatus.INITIAL,
|
|
500
|
-
children: null,
|
|
501
|
-
key,
|
|
502
|
-
output: null,
|
|
503
|
-
};
|
|
493
|
+
const _a = payload !== null && payload !== void 0 ? payload : {}, { allowReorder, status } = _a, data = __rest(_a, ["allowReorder", "status"]);
|
|
494
|
+
return Object.assign(Object.assign({ [IsolateKeys.AllowReorder]: allowReorder, [IsolateKeys.AbortController]: new AbortController(), [IsolateKeys.Keys]: null, [IsolateKeys.Parent]: null, [IsolateKeys.Type]: type, [IsolateKeys.Data]: data }, (status && { [IsolateKeys.Status]: status })), { children: null, key, output: null });
|
|
504
495
|
}
|
|
505
496
|
|
|
506
497
|
// eslint-disable-next-line
|
|
@@ -622,16 +613,16 @@ function closestExists(startNode, predicate) {
|
|
|
622
613
|
}
|
|
623
614
|
|
|
624
615
|
var IsolateWalker = /*#__PURE__*/Object.freeze({
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
616
|
+
__proto__: null,
|
|
617
|
+
closest: closest,
|
|
618
|
+
closestExists: closestExists,
|
|
619
|
+
every: every,
|
|
620
|
+
find: find,
|
|
621
|
+
findClosest: findClosest,
|
|
622
|
+
has: has,
|
|
623
|
+
pluck: pluck,
|
|
624
|
+
some: some,
|
|
625
|
+
walk: walk
|
|
635
626
|
});
|
|
636
627
|
|
|
637
628
|
class IsolateSerializer {
|
|
@@ -718,7 +709,7 @@ function transformIsolate(isolate) {
|
|
|
718
709
|
return next;
|
|
719
710
|
}
|
|
720
711
|
function isKeyExcluededFromDump(key) {
|
|
721
|
-
return
|
|
712
|
+
return ExcludedFromDump.includes(key);
|
|
722
713
|
}
|
|
723
714
|
|
|
724
715
|
exports.Bus = Bus;
|
|
@@ -728,6 +719,7 @@ exports.IsolateMutator = IsolateMutator;
|
|
|
728
719
|
exports.IsolateSelectors = IsolateSelectors;
|
|
729
720
|
exports.IsolateSerializer = IsolateSerializer;
|
|
730
721
|
exports.Reconciler = Reconciler;
|
|
722
|
+
exports.RuntimeEvents = RuntimeEvents;
|
|
731
723
|
exports.VestRuntime = RuntimeApi;
|
|
732
724
|
exports.Walker = IsolateWalker;
|
|
733
725
|
//# sourceMappingURL=vestjs-runtime.development.js.map
|