@logicflow/engine 0.0.11-beta.0 → 0.0.12-beta.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/README.md +5 -2
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/es/EventEmitter.d.ts +34 -4
- package/es/EventEmitter.js +70 -48
- package/es/EventEmitter.js.map +1 -0
- package/es/FlowModel.d.ts +75 -73
- package/es/FlowModel.js +130 -173
- package/es/FlowModel.js.map +1 -0
- package/es/Scheduler.d.ts +50 -34
- package/es/Scheduler.js +134 -209
- package/es/Scheduler.js.map +1 -0
- package/es/constant/{constant.js → index.js} +8 -7
- package/es/constant/index.js.map +1 -0
- package/es/constant/logCode.js +29 -0
- package/es/constant/logCode.js.map +1 -0
- package/es/index.d.ts +135 -38
- package/es/index.js +92 -144
- package/es/index.js.map +1 -0
- package/es/nodes/base.d.ts +108 -0
- package/es/nodes/base.js +151 -0
- package/es/nodes/base.js.map +1 -0
- package/es/nodes/index.d.ts +3 -0
- package/es/nodes/index.js +4 -0
- package/es/nodes/index.js.map +1 -0
- package/es/nodes/{StartNode.d.ts → start.d.ts} +3 -2
- package/es/nodes/start.js +11 -0
- package/es/nodes/start.js.map +1 -0
- package/es/nodes/{TaskNode.d.ts → task.d.ts} +3 -2
- package/es/nodes/task.js +11 -0
- package/es/nodes/task.js.map +1 -0
- package/es/platform/browser/browserVm.d.ts +1 -0
- package/es/platform/browser/browserVm.js +66 -0
- package/es/platform/browser/browserVm.js.map +1 -0
- package/es/platform/browser/index.d.ts +4 -0
- package/es/platform/browser/index.js +23 -0
- package/es/platform/browser/index.js.map +1 -0
- package/es/platform/index.d.ts +1 -0
- package/es/platform/index.js +2 -0
- package/es/platform/index.js.map +1 -0
- package/es/platform/node/index.d.ts +4 -0
- package/es/platform/node/index.js +23 -0
- package/es/platform/node/index.js.map +1 -0
- package/es/platform/node/nodeVm.d.ts +1 -0
- package/es/platform/node/nodeVm.js +9 -0
- package/es/platform/node/nodeVm.js.map +1 -0
- package/es/recorder/index.d.ts +36 -10
- package/es/recorder/index.js +82 -135
- package/es/recorder/index.js.map +1 -0
- package/es/utils/global.d.ts +5 -0
- package/es/utils/global.js +27 -0
- package/es/utils/global.js.map +1 -0
- package/es/utils/id.js +14 -0
- package/es/utils/id.js.map +1 -0
- package/es/utils/index.d.ts +4 -0
- package/es/utils/index.js +5 -0
- package/es/utils/index.js.map +1 -0
- package/es/{util → utils}/storage.js +17 -16
- package/es/utils/storage.js.map +1 -0
- package/lib/EventEmitter.d.ts +37 -0
- package/lib/EventEmitter.js +94 -0
- package/lib/EventEmitter.js.map +1 -0
- package/lib/FlowModel.d.ts +146 -0
- package/lib/FlowModel.js +236 -0
- package/lib/FlowModel.js.map +1 -0
- package/lib/Scheduler.d.ts +78 -0
- package/lib/Scheduler.js +179 -0
- package/lib/Scheduler.js.map +1 -0
- package/lib/constant/index.d.ts +16 -0
- package/{cjs/constant/constant.js → lib/constant/index.js} +4 -3
- package/lib/constant/index.js.map +1 -0
- package/lib/constant/logCode.d.ts +12 -0
- package/{cjs/constant/LogCode.js → lib/constant/logCode.js} +16 -13
- package/lib/constant/logCode.js.map +1 -0
- package/lib/index.d.ts +157 -0
- package/lib/index.js +159 -0
- package/lib/index.js.map +1 -0
- package/lib/nodes/base.d.ts +108 -0
- package/lib/nodes/base.js +154 -0
- package/lib/nodes/base.js.map +1 -0
- package/lib/nodes/index.d.ts +3 -0
- package/lib/nodes/index.js +7 -0
- package/lib/nodes/index.js.map +1 -0
- package/lib/nodes/start.d.ts +6 -0
- package/lib/nodes/start.js +15 -0
- package/lib/nodes/start.js.map +1 -0
- package/lib/nodes/task.d.ts +6 -0
- package/lib/nodes/task.js +15 -0
- package/lib/nodes/task.js.map +1 -0
- package/lib/platform/browser/browserVm.d.ts +1 -0
- package/lib/platform/browser/browserVm.js +70 -0
- package/lib/platform/browser/browserVm.js.map +1 -0
- package/lib/platform/browser/index.d.ts +4 -0
- package/lib/platform/browser/index.js +28 -0
- package/lib/platform/browser/index.js.map +1 -0
- package/lib/platform/index.d.ts +1 -0
- package/lib/platform/index.js +5 -0
- package/lib/platform/index.js.map +1 -0
- package/lib/platform/node/index.d.ts +4 -0
- package/lib/platform/node/index.js +28 -0
- package/lib/platform/node/index.js.map +1 -0
- package/lib/platform/node/nodeVm.d.ts +1 -0
- package/lib/platform/node/nodeVm.js +13 -0
- package/lib/platform/node/nodeVm.js.map +1 -0
- package/lib/recorder/index.d.ts +46 -0
- package/lib/recorder/index.js +117 -0
- package/lib/recorder/index.js.map +1 -0
- package/lib/utils/global.d.ts +5 -0
- package/lib/utils/global.js +31 -0
- package/lib/utils/global.js.map +1 -0
- package/lib/utils/id.d.ts +3 -0
- package/lib/utils/id.js +20 -0
- package/lib/utils/id.js.map +1 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/index.js +9 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/storage.d.ts +7 -0
- package/{cjs/util → lib/utils}/storage.js +18 -17
- package/lib/utils/storage.js.map +1 -0
- package/package.json +31 -71
- package/src/EventEmitter.ts +103 -0
- package/src/FlowModel.ts +325 -0
- package/src/Scheduler.ts +244 -0
- package/src/constant/index.ts +23 -0
- package/src/constant/logCode.ts +34 -0
- package/src/index.ts +300 -0
- package/src/nodes/base.ts +236 -0
- package/src/nodes/index.ts +3 -0
- package/src/nodes/start.ts +8 -0
- package/src/nodes/task.ts +8 -0
- package/src/platform/browser/browserVm.ts +68 -0
- package/src/platform/browser/index.ts +28 -0
- package/src/platform/index.ts +1 -0
- package/src/platform/node/index.ts +28 -0
- package/src/platform/node/nodeVm.ts +12 -0
- package/src/recorder/index.ts +137 -0
- package/src/typings.d.ts +0 -0
- package/src/utils/global.ts +41 -0
- package/src/utils/id.ts +16 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/storage.ts +55 -0
- package/cjs/EventEmitter.js +0 -70
- package/cjs/FlowModel.js +0 -277
- package/cjs/Scheduler.js +0 -252
- package/cjs/expression/browserVm.js +0 -81
- package/cjs/expression/index.js +0 -57
- package/cjs/index.js +0 -210
- package/cjs/nodes/BaseNode.js +0 -252
- package/cjs/nodes/StartNode.js +0 -27
- package/cjs/nodes/TaskNode.js +0 -27
- package/cjs/recorder/index.js +0 -168
- package/cjs/util/ID.js +0 -16
- package/cjs/util/global.js +0 -32
- package/es/constant/LogCode.js +0 -28
- package/es/expression/browserVm.d.ts +0 -4
- package/es/expression/browserVm.js +0 -76
- package/es/expression/index.d.ts +0 -2
- package/es/expression/index.js +0 -54
- package/es/nodes/BaseNode.d.ts +0 -110
- package/es/nodes/BaseNode.js +0 -250
- package/es/nodes/StartNode.js +0 -25
- package/es/nodes/TaskNode.js +0 -25
- package/es/util/ID.js +0 -13
- package/es/util/global.d.ts +0 -5
- package/es/util/global.js +0 -26
- package/lib/main.js +0 -1
- /package/es/constant/{constant.d.ts → index.d.ts} +0 -0
- /package/es/constant/{LogCode.d.ts → logCode.d.ts} +0 -0
- /package/es/{util/ID.d.ts → utils/id.d.ts} +0 -0
- /package/es/{util → utils}/storage.d.ts +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Recorder = exports.LOGICFLOW_ENGINE_INSTANCES = exports.MAX_INSTANCE = exports.MAX_RECORDER = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
exports.MAX_RECORDER = 100;
|
|
7
|
+
exports.MAX_INSTANCE = 100;
|
|
8
|
+
exports.LOGICFLOW_ENGINE_INSTANCES = 'LOGICFLOW_ENGINE_INSTANCES';
|
|
9
|
+
class Recorder {
|
|
10
|
+
constructor({ instanceId }) {
|
|
11
|
+
this.instanceId = instanceId;
|
|
12
|
+
this.maxRecorder = exports.MAX_RECORDER;
|
|
13
|
+
const instances = this.getItem(exports.LOGICFLOW_ENGINE_INSTANCES) || [];
|
|
14
|
+
if (instances.indexOf(instanceId) === -1) {
|
|
15
|
+
instances.push(instanceId);
|
|
16
|
+
}
|
|
17
|
+
if (instances.length > exports.MAX_INSTANCE) {
|
|
18
|
+
const clearInstance = instances.shift();
|
|
19
|
+
this.clearInstance(clearInstance);
|
|
20
|
+
}
|
|
21
|
+
this.setItem(exports.LOGICFLOW_ENGINE_INSTANCES, instances);
|
|
22
|
+
}
|
|
23
|
+
setMaxRecorderNumber(max) {
|
|
24
|
+
this.maxRecorder = max;
|
|
25
|
+
}
|
|
26
|
+
// 将存储 storage 的方法收敛到此处,并在此处做异常处理 - setItem
|
|
27
|
+
setItem(key, value) {
|
|
28
|
+
try {
|
|
29
|
+
utils_1.storage.setItem(key, value);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error('Ops, something wrong with storage.setItem !!!');
|
|
33
|
+
utils_1.storage.clear();
|
|
34
|
+
utils_1.storage.setItem(key, value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// getItem 方法
|
|
38
|
+
getItem(key) {
|
|
39
|
+
return utils_1.storage.getItem(key);
|
|
40
|
+
}
|
|
41
|
+
getExecutionActions(executionId) {
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return this.getItem(executionId);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
getExecutionList() {
|
|
47
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
return this.getItem(this.instanceId) || [];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
addExecution(executionId) {
|
|
52
|
+
const instanceExecutions = this.getItem(this.instanceId) || [];
|
|
53
|
+
if (instanceExecutions.length >= this.maxRecorder) {
|
|
54
|
+
const toBeRemovedItem = instanceExecutions.shift();
|
|
55
|
+
this.popExecution(toBeRemovedItem);
|
|
56
|
+
}
|
|
57
|
+
instanceExecutions.push(executionId);
|
|
58
|
+
this.setItem(this.instanceId, instanceExecutions);
|
|
59
|
+
}
|
|
60
|
+
popExecution(executionId) {
|
|
61
|
+
const instanceData = this.getItem(executionId) || [];
|
|
62
|
+
instanceData.forEach((actionId) => {
|
|
63
|
+
utils_1.storage.removeItem(actionId);
|
|
64
|
+
});
|
|
65
|
+
utils_1.storage.removeItem(executionId);
|
|
66
|
+
}
|
|
67
|
+
pushActionToExecution(executionId, actionId) {
|
|
68
|
+
const actions = this.getItem(executionId) || [];
|
|
69
|
+
actions.push(actionId);
|
|
70
|
+
this.setItem(executionId, actions);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @param {Object} action
|
|
74
|
+
* {
|
|
75
|
+
* actionId: '',
|
|
76
|
+
* nodeId: '',
|
|
77
|
+
* executionId: '',
|
|
78
|
+
* nodeType: '',
|
|
79
|
+
* timestamp: '',
|
|
80
|
+
* properties: {},
|
|
81
|
+
* }
|
|
82
|
+
*/
|
|
83
|
+
addActionRecord(action) {
|
|
84
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
const { executionId, actionId } = action;
|
|
86
|
+
const instanceData = yield this.getExecutionActions(executionId);
|
|
87
|
+
if (!instanceData) {
|
|
88
|
+
this.addExecution(executionId);
|
|
89
|
+
}
|
|
90
|
+
this.pushActionToExecution(executionId, actionId);
|
|
91
|
+
this.setItem(actionId, action);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
getActionRecord(actionId) {
|
|
95
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
return this.getItem(actionId);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
clear() {
|
|
100
|
+
this.clearInstance(this.instanceId);
|
|
101
|
+
}
|
|
102
|
+
clearInstance(instanceId) {
|
|
103
|
+
const instanceExecutions = this.getItem(instanceId) || [];
|
|
104
|
+
// TODO: 完善类型定义
|
|
105
|
+
instanceExecutions.forEach((executionId) => {
|
|
106
|
+
utils_1.storage.removeItem(executionId);
|
|
107
|
+
const instanceData = this.getItem(executionId) || [];
|
|
108
|
+
instanceData.forEach((actionId) => {
|
|
109
|
+
utils_1.storage.removeItem(actionId);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
utils_1.storage.removeItem(instanceId);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.Recorder = Recorder;
|
|
116
|
+
exports.default = Recorder;
|
|
117
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recorder/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// 判断当前环境是否为服务端
|
|
3
|
+
// const isServer = typeof window === undefined;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.isInNodeJS = exports.isInBrowser = exports.isInWebWorker = exports.globalScope = void 0;
|
|
6
|
+
// const isServer = process.env.BROWSER === true;
|
|
7
|
+
const isInBrowser = typeof window === 'object' && window.window === window;
|
|
8
|
+
exports.isInBrowser = isInBrowser;
|
|
9
|
+
const isInNodeJS = typeof global === 'object' && global.global === global;
|
|
10
|
+
exports.isInNodeJS = isInNodeJS;
|
|
11
|
+
const isInWebWorker = !isInBrowser && typeof self === 'object' && self.constructor;
|
|
12
|
+
exports.isInWebWorker = isInWebWorker;
|
|
13
|
+
const globalScope = (() => {
|
|
14
|
+
if (isInBrowser) {
|
|
15
|
+
return window;
|
|
16
|
+
}
|
|
17
|
+
if (typeof self === 'object' && self.self === self) {
|
|
18
|
+
return self;
|
|
19
|
+
}
|
|
20
|
+
if (isInNodeJS) {
|
|
21
|
+
return global;
|
|
22
|
+
}
|
|
23
|
+
if (typeof globalThis === 'object') {
|
|
24
|
+
return globalThis;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
eval: () => undefined,
|
|
28
|
+
};
|
|
29
|
+
})();
|
|
30
|
+
exports.globalScope = globalScope;
|
|
31
|
+
//# sourceMappingURL=global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/utils/global.ts"],"names":[],"mappings":";AAAA,eAAe;AACf,gDAAgD;;;AAEhD,iDAAiD;AAEjD,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA;AAiCxE,kCAAW;AA/Bb,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA;AAgCvE,gCAAU;AA9BZ,MAAM,aAAa,GACjB,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAA;AA2B5D,sCAAa;AAzBf,MAAM,WAAW,GAAQ,CAAC,GAAG,EAAE;IAC7B,IAAI,WAAW,EAAE;QACf,OAAO,MAAM,CAAA;KACd;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;QAClD,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,UAAU,EAAE;QACd,OAAO,MAAM,CAAA;KACd;IAED,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,UAAU,CAAA;KAClB;IAED,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;KACK,CAAA;AAC9B,CAAC,CAAC,EAAE,CAAA;AAIF,kCAAW"}
|
package/lib/utils/id.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEngineId = exports.createActionId = exports.createExecId = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const createExecId = () => {
|
|
6
|
+
const uuid = (0, uuid_1.v4)();
|
|
7
|
+
return `exec-${uuid}`;
|
|
8
|
+
};
|
|
9
|
+
exports.createExecId = createExecId;
|
|
10
|
+
const createActionId = () => {
|
|
11
|
+
const uuid = (0, uuid_1.v4)();
|
|
12
|
+
return `action-${uuid}`;
|
|
13
|
+
};
|
|
14
|
+
exports.createActionId = createActionId;
|
|
15
|
+
const createEngineId = () => {
|
|
16
|
+
const uuid = (0, uuid_1.v4)();
|
|
17
|
+
return `engine-${uuid}`;
|
|
18
|
+
};
|
|
19
|
+
exports.createEngineId = createEngineId;
|
|
20
|
+
//# sourceMappingURL=id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AAE5B,MAAM,YAAY,GAAG,GAAW,EAAE;IACvC,MAAM,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AAHY,QAAA,YAAY,gBAGxB;AAEM,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;IACrB,OAAO,UAAU,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B;AAEM,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;IACrB,OAAO,UAAU,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storage = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const storage_1 = tslib_1.__importDefault(require("./storage"));
|
|
6
|
+
exports.storage = storage_1.default;
|
|
7
|
+
tslib_1.__exportStar(require("./global"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./id"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;AAAA,gEAA+B;AAItB,kBAJF,iBAAO,CAIE;AAFhB,mDAAwB;AACxB,+CAAoB"}
|
|
@@ -3,45 +3,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
/**
|
|
4
4
|
* 存储执行记录
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
const global_1 = require("./global");
|
|
7
7
|
if (!global_1.globalScope.sessionStorage) {
|
|
8
|
-
|
|
8
|
+
const storage = {
|
|
9
9
|
data: {},
|
|
10
|
-
setItem
|
|
11
|
-
|
|
10
|
+
setItem(key, value) {
|
|
11
|
+
storage.data[key] = value;
|
|
12
12
|
},
|
|
13
|
-
getItem
|
|
14
|
-
return
|
|
13
|
+
getItem(key) {
|
|
14
|
+
return storage.data[key];
|
|
15
15
|
},
|
|
16
|
-
removeItem
|
|
17
|
-
delete
|
|
16
|
+
removeItem(key) {
|
|
17
|
+
delete storage.data[key];
|
|
18
18
|
},
|
|
19
|
-
clear
|
|
20
|
-
|
|
19
|
+
clear() {
|
|
20
|
+
storage.data = {};
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
|
-
global_1.globalScope.sessionStorage =
|
|
23
|
+
global_1.globalScope.sessionStorage = storage;
|
|
24
24
|
}
|
|
25
25
|
exports.default = {
|
|
26
|
-
setItem
|
|
26
|
+
setItem(key, value) {
|
|
27
27
|
if (typeof value === 'object') {
|
|
28
28
|
value = JSON.stringify(value);
|
|
29
29
|
}
|
|
30
30
|
global_1.globalScope.sessionStorage.setItem(key, value);
|
|
31
31
|
},
|
|
32
|
-
getItem
|
|
33
|
-
|
|
32
|
+
getItem(key) {
|
|
33
|
+
const value = global_1.globalScope.sessionStorage.getItem(key);
|
|
34
34
|
try {
|
|
35
35
|
return JSON.parse(value);
|
|
36
36
|
}
|
|
37
|
-
catch (
|
|
37
|
+
catch (error) {
|
|
38
38
|
return value;
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
|
-
removeItem
|
|
41
|
+
removeItem(key) {
|
|
42
42
|
global_1.globalScope.sessionStorage.removeItem(key);
|
|
43
43
|
},
|
|
44
|
-
clear
|
|
44
|
+
clear() {
|
|
45
45
|
global_1.globalScope.sessionStorage.clear();
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,qCAAsC;AAEtC,IAAI,CAAC,oBAAW,CAAC,cAAc,EAAE;IAC/B,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,EAA6B;QAEnC,OAAO,CAAC,GAAG,EAAE,KAAK;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QAED,UAAU,CAAC,GAAG;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK;YACH,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;QACnB,CAAC;KACF,CAAA;IAED,oBAAW,CAAC,cAAc,GAAG,OAAO,CAAA;CACrC;AAED,kBAAe;IACb,OAAO,CAAC,GAAG,EAAE,KAAK;QAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;SAC9B;QAED,oBAAW,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,CAAC,GAAG;QACT,MAAM,KAAK,GAAG,oBAAW,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SACzB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAA;SACb;IACH,CAAC;IAED,UAAU,CAAC,GAAG;QACZ,oBAAW,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK;QACH,oBAAW,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,90 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@logicflow/engine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12-beta.0",
|
|
4
4
|
"description": "a process engine for javascript",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
7
|
-
"homepage": "https://docs.logic-flow.cn",
|
|
8
7
|
"types": "es/index.d.ts",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/didi/LogicFlow",
|
|
12
|
-
"directory": "packages/engine"
|
|
13
|
-
},
|
|
14
8
|
"browser": {
|
|
15
|
-
"
|
|
9
|
+
"./es/platform/node/index.js": "./es/platform/browser/index.js"
|
|
16
10
|
},
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"dev": "cross-env NODE_ENV=development webpack-dev-server --client-log-level warning --config scripts/webpack.config.dev.js",
|
|
20
|
-
"types": "tsc -d --declarationDir ./types --outDir temp && rimraf -R temp",
|
|
21
|
-
"build:esm": "tsc --module esnext --target es5 --outDir ./es -d",
|
|
22
|
-
"build:cjs": "tsc --module commonjs --target es5 --outDir ./cjs",
|
|
23
|
-
"build:umd": "cross-env NODE_ENV=production webpack --config scripts/webpack.config.build.js",
|
|
24
|
-
"build": "rimraf ./es ./cjs ./lib && npm run build:esm & npm run build:cjs & npm run build:umd",
|
|
25
|
-
"publish-lib": "npm run build && npm publish",
|
|
26
|
-
"test": "jest",
|
|
27
|
-
"test:watch": "jest --watch"
|
|
28
|
-
},
|
|
29
|
-
"author": "",
|
|
11
|
+
"jsdeliver": "dist/index.js",
|
|
12
|
+
"unpkg": "dist/index.js",
|
|
30
13
|
"files": [
|
|
31
|
-
"
|
|
14
|
+
"dist",
|
|
32
15
|
"es",
|
|
33
16
|
"lib",
|
|
34
|
-
"
|
|
17
|
+
"src",
|
|
35
18
|
"readme.md"
|
|
36
19
|
],
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "jest",
|
|
22
|
+
"clean:turbo": "rss",
|
|
23
|
+
"clean:build": "rss",
|
|
24
|
+
"clean": "rss",
|
|
25
|
+
"build:less": "rss",
|
|
26
|
+
"build:esm": "rss",
|
|
27
|
+
"build:cjs": "rss",
|
|
28
|
+
"build:umd": "rollup -c ./rollup.config.js --bundleConfigAsCjs",
|
|
29
|
+
"build:dev": "run-p -s build:cjs build:esm",
|
|
30
|
+
"build:watch": "rss",
|
|
31
|
+
"build:watch:esm": "rss",
|
|
32
|
+
"build:watch:cjs": "rss",
|
|
33
|
+
"build": "rss",
|
|
34
|
+
"prebuild": "rss"
|
|
45
35
|
},
|
|
46
36
|
"keywords": [
|
|
47
37
|
"logicflow",
|
|
48
38
|
"workflow",
|
|
49
|
-
"process"
|
|
50
|
-
"diagram"
|
|
39
|
+
"process engine"
|
|
51
40
|
],
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
"@
|
|
57
|
-
"@babel/preset-env": "^7.9.5",
|
|
58
|
-
"@babel/preset-typescript": "^7.9.0",
|
|
59
|
-
"@commitlint/config-conventional": "^8.3.4",
|
|
60
|
-
"@typescript-eslint/eslint-plugin": "^4.7.0",
|
|
61
|
-
"@typescript-eslint/parser": "^3.2.0",
|
|
62
|
-
"babel-core": "^7.0.0-bridge.0",
|
|
63
|
-
"babel-loader": "^8.1.0",
|
|
64
|
-
"babel-plugin-import": "^1.13.0",
|
|
65
|
-
"case-sensitive-paths-webpack-plugin": "^2.3.0",
|
|
66
|
-
"core-js": "^3.6.5",
|
|
67
|
-
"cross-env": "^7.0.2",
|
|
68
|
-
"css-loader": "^4.2.1",
|
|
69
|
-
"eslint": "^7.0.0",
|
|
70
|
-
"eslint-config-airbnb-typescript": "^9.0.0",
|
|
71
|
-
"eslint-plugin-import": "^2.22.0",
|
|
72
|
-
"eslint-plugin-jsx-a11y": "^6.3.1",
|
|
73
|
-
"eslint-plugin-react": "^7.20.6",
|
|
74
|
-
"eslint-plugin-standard": "^4.0.1",
|
|
75
|
-
"eslint-webpack-plugin": "^2.1.0",
|
|
76
|
-
"html-webpack-plugin": "^4.2.0",
|
|
77
|
-
"less-loader": "^6.0.0",
|
|
78
|
-
"prettier": "^2.2.1",
|
|
79
|
-
"rimraf": "^3.0.2",
|
|
80
|
-
"standard-version": "^9.0.0",
|
|
81
|
-
"style-loader": "^1.2.0",
|
|
82
|
-
"typescript": "^3.8.3",
|
|
83
|
-
"url-loader": "^4.1.0",
|
|
84
|
-
"webpack": "^4.43.0",
|
|
85
|
-
"webpack-bundle-analyzer": "^4.1.0",
|
|
86
|
-
"webpack-cli": "^3.3.11",
|
|
87
|
-
"webpack-dev-server": "^3.10.3"
|
|
41
|
+
"author": "Logicflow-Team",
|
|
42
|
+
"license": "Apache-2.0",
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"uuid": "^8.2.0",
|
|
45
|
+
"@nyariv/sandboxjs": "^0.8.23"
|
|
88
46
|
},
|
|
89
|
-
"
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"tslib": "^2.6.1"
|
|
49
|
+
}
|
|
90
50
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export interface EventType {
|
|
2
|
+
readonly callback: (params?: any) => void
|
|
3
|
+
readonly once: boolean
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export type EventArgs = Record<string, unknown>
|
|
7
|
+
export type EventsType = Record<string, EventType[]>
|
|
8
|
+
export type CallbackType = (...args: unknown[]) => void
|
|
9
|
+
|
|
10
|
+
export default class EventEmitter {
|
|
11
|
+
private _events: EventsType
|
|
12
|
+
constructor() {
|
|
13
|
+
this._events = {}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 添加一个监听事件
|
|
18
|
+
* @param evtKey 事件名称
|
|
19
|
+
* @param callback 回调方法
|
|
20
|
+
* @param once 是否触发一次
|
|
21
|
+
* @returns 当前 EventEmitter 实例
|
|
22
|
+
*/
|
|
23
|
+
on(evtKey: string, callback: CallbackType, once?: boolean) {
|
|
24
|
+
evtKey = evtKey.trim()
|
|
25
|
+
if (!this._events[evtKey]) {
|
|
26
|
+
this._events[evtKey] = []
|
|
27
|
+
}
|
|
28
|
+
this._events[evtKey].push({
|
|
29
|
+
callback,
|
|
30
|
+
once: !!once,
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 取消监听一个事件,或者一个 Channel
|
|
36
|
+
* @param evtKey
|
|
37
|
+
* @param callback
|
|
38
|
+
*/
|
|
39
|
+
off(evtKey: string, callback?: CallbackType) {
|
|
40
|
+
if (!evtKey) {
|
|
41
|
+
// evtKey 为空全部清除
|
|
42
|
+
this._events = {}
|
|
43
|
+
}
|
|
44
|
+
if (!callback) {
|
|
45
|
+
// evtKey 存在,callback 为空,清除事件所有方法
|
|
46
|
+
delete this._events[evtKey]
|
|
47
|
+
} else {
|
|
48
|
+
// evtKey 存在,callback 存在,清除匹配的
|
|
49
|
+
const events = this._events[evtKey] || []
|
|
50
|
+
let { length } = events
|
|
51
|
+
for (let i = 0; i < length; i++) {
|
|
52
|
+
if (events[i].callback === callback) {
|
|
53
|
+
events.splice(i, 1)
|
|
54
|
+
length--
|
|
55
|
+
i--
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (events.length === 0) {
|
|
59
|
+
delete this._events[evtKey]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 主动触发事件
|
|
66
|
+
* @param evtKey 触发事件名称
|
|
67
|
+
* @param eventArgs 事件参数
|
|
68
|
+
*/
|
|
69
|
+
emit(evtKey: string, eventArgs: EventArgs) {
|
|
70
|
+
const events = this._events[evtKey] || []
|
|
71
|
+
// 实际的处理 emit 方法
|
|
72
|
+
const doEmit = (es) => {
|
|
73
|
+
let { length } = es
|
|
74
|
+
for (let i = 0; i < length; i++) {
|
|
75
|
+
if (!es[i]) {
|
|
76
|
+
// eslint-disable-next-line no-continue
|
|
77
|
+
continue
|
|
78
|
+
}
|
|
79
|
+
const { callback, once } = es[i]
|
|
80
|
+
if (once) {
|
|
81
|
+
es.splice(i, 1)
|
|
82
|
+
if (es.length === 0) {
|
|
83
|
+
delete this._events[evtKey]
|
|
84
|
+
}
|
|
85
|
+
length--
|
|
86
|
+
i--
|
|
87
|
+
}
|
|
88
|
+
callback.apply(this, [eventArgs])
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
doEmit(events)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 获取当前所有事件
|
|
96
|
+
* @returns _events
|
|
97
|
+
*/
|
|
98
|
+
getEvents() {
|
|
99
|
+
return this._events
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export { EventEmitter }
|