@logicflow/engine 0.0.9 → 0.0.10-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.
Files changed (190) hide show
  1. package/README.md +5 -2
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.map +1 -0
  4. package/es/EventEmitter.d.ts +34 -4
  5. package/es/EventEmitter.js +70 -48
  6. package/es/EventEmitter.js.map +1 -0
  7. package/es/FlowModel.d.ts +75 -73
  8. package/es/FlowModel.js +130 -173
  9. package/es/FlowModel.js.map +1 -0
  10. package/es/Scheduler.d.ts +50 -34
  11. package/es/Scheduler.js +134 -209
  12. package/es/Scheduler.js.map +1 -0
  13. package/es/constant/{constant.js → index.js} +8 -7
  14. package/es/constant/index.js.map +1 -0
  15. package/es/constant/logCode.js +29 -0
  16. package/es/constant/logCode.js.map +1 -0
  17. package/es/expression/brewserVm.d.ts +2 -0
  18. package/es/expression/brewserVm.js +30 -0
  19. package/es/expression/brewserVm.js.map +1 -0
  20. package/es/expression/index.d.ts +1 -1
  21. package/es/expression/index.js +16 -59
  22. package/es/expression/index.js.map +1 -0
  23. package/es/expression/nodeVm.d.ts +4 -2
  24. package/es/expression/nodeVm.js +10 -50
  25. package/es/expression/nodeVm.js.map +1 -0
  26. package/es/index.d.ts +135 -38
  27. package/es/index.js +92 -144
  28. package/es/index.js.map +1 -0
  29. package/es/nodes/base.d.ts +108 -0
  30. package/es/nodes/base.js +149 -0
  31. package/es/nodes/base.js.map +1 -0
  32. package/es/nodes/index.d.ts +3 -0
  33. package/es/nodes/index.js +4 -0
  34. package/es/nodes/index.js.map +1 -0
  35. package/es/nodes/{StartNode.d.ts → start.d.ts} +3 -2
  36. package/es/nodes/start.js +11 -0
  37. package/es/nodes/start.js.map +1 -0
  38. package/es/nodes/{TaskNode.d.ts → task.d.ts} +3 -2
  39. package/es/nodes/task.js +11 -0
  40. package/es/nodes/task.js.map +1 -0
  41. package/es/platform/browser/browserVm.d.ts +4 -0
  42. package/es/platform/browser/browserVm.js +44 -0
  43. package/es/platform/browser/browserVm.js.map +1 -0
  44. package/es/platform/browser/index.d.ts +4 -0
  45. package/es/platform/browser/index.js +23 -0
  46. package/es/platform/browser/index.js.map +1 -0
  47. package/es/platform/index.d.ts +1 -0
  48. package/es/platform/index.js +2 -0
  49. package/es/platform/index.js.map +1 -0
  50. package/es/platform/node/index.d.ts +4 -0
  51. package/es/platform/node/index.js +23 -0
  52. package/es/platform/node/index.js.map +1 -0
  53. package/es/platform/node/nodeVm.d.ts +1 -0
  54. package/es/platform/node/nodeVm.js +9 -0
  55. package/es/platform/node/nodeVm.js.map +1 -0
  56. package/es/recorder/index.d.ts +36 -10
  57. package/es/recorder/index.js +82 -135
  58. package/es/recorder/index.js.map +1 -0
  59. package/es/utils/global.d.ts +5 -0
  60. package/es/utils/global.js +27 -0
  61. package/es/utils/global.js.map +1 -0
  62. package/es/utils/id.js +14 -0
  63. package/es/utils/id.js.map +1 -0
  64. package/es/utils/index.d.ts +4 -0
  65. package/es/utils/index.js +5 -0
  66. package/es/utils/index.js.map +1 -0
  67. package/es/{util → utils}/storage.js +17 -16
  68. package/es/utils/storage.js.map +1 -0
  69. package/lib/EventEmitter.d.ts +37 -0
  70. package/lib/EventEmitter.js +94 -0
  71. package/lib/EventEmitter.js.map +1 -0
  72. package/lib/FlowModel.d.ts +146 -0
  73. package/lib/FlowModel.js +236 -0
  74. package/lib/FlowModel.js.map +1 -0
  75. package/lib/Scheduler.d.ts +78 -0
  76. package/lib/Scheduler.js +179 -0
  77. package/lib/Scheduler.js.map +1 -0
  78. package/lib/constant/index.d.ts +16 -0
  79. package/{cjs/constant/constant.js → lib/constant/index.js} +4 -3
  80. package/lib/constant/index.js.map +1 -0
  81. package/lib/constant/logCode.d.ts +12 -0
  82. package/{cjs/constant/LogCode.js → lib/constant/logCode.js} +16 -13
  83. package/lib/constant/logCode.js.map +1 -0
  84. package/lib/expression/brewserVm.d.ts +2 -0
  85. package/lib/expression/brewserVm.js +33 -0
  86. package/lib/expression/brewserVm.js.map +1 -0
  87. package/lib/expression/index.d.ts +2 -0
  88. package/lib/expression/index.js +20 -0
  89. package/lib/expression/index.js.map +1 -0
  90. package/lib/expression/nodeVm.d.ts +4 -0
  91. package/lib/expression/nodeVm.js +13 -0
  92. package/lib/expression/nodeVm.js.map +1 -0
  93. package/lib/index.d.ts +157 -0
  94. package/lib/index.js +159 -0
  95. package/lib/index.js.map +1 -0
  96. package/lib/nodes/base.d.ts +108 -0
  97. package/lib/nodes/base.js +152 -0
  98. package/lib/nodes/base.js.map +1 -0
  99. package/lib/nodes/index.d.ts +3 -0
  100. package/lib/nodes/index.js +7 -0
  101. package/lib/nodes/index.js.map +1 -0
  102. package/lib/nodes/start.d.ts +6 -0
  103. package/lib/nodes/start.js +15 -0
  104. package/lib/nodes/start.js.map +1 -0
  105. package/lib/nodes/task.d.ts +6 -0
  106. package/lib/nodes/task.js +15 -0
  107. package/lib/nodes/task.js.map +1 -0
  108. package/lib/platform/browser/browserVm.d.ts +4 -0
  109. package/lib/platform/browser/browserVm.js +49 -0
  110. package/lib/platform/browser/browserVm.js.map +1 -0
  111. package/lib/platform/browser/index.d.ts +4 -0
  112. package/lib/platform/browser/index.js +28 -0
  113. package/lib/platform/browser/index.js.map +1 -0
  114. package/lib/platform/index.d.ts +1 -0
  115. package/lib/platform/index.js +5 -0
  116. package/lib/platform/index.js.map +1 -0
  117. package/lib/platform/node/index.d.ts +4 -0
  118. package/lib/platform/node/index.js +28 -0
  119. package/lib/platform/node/index.js.map +1 -0
  120. package/lib/platform/node/nodeVm.d.ts +1 -0
  121. package/lib/platform/node/nodeVm.js +13 -0
  122. package/lib/platform/node/nodeVm.js.map +1 -0
  123. package/lib/recorder/index.d.ts +46 -0
  124. package/lib/recorder/index.js +117 -0
  125. package/lib/recorder/index.js.map +1 -0
  126. package/lib/utils/global.d.ts +5 -0
  127. package/lib/utils/global.js +31 -0
  128. package/lib/utils/global.js.map +1 -0
  129. package/lib/utils/id.d.ts +3 -0
  130. package/lib/utils/id.js +20 -0
  131. package/lib/utils/id.js.map +1 -0
  132. package/lib/utils/index.d.ts +4 -0
  133. package/lib/utils/index.js +9 -0
  134. package/lib/utils/index.js.map +1 -0
  135. package/lib/utils/storage.d.ts +7 -0
  136. package/{cjs/util → lib/utils}/storage.js +18 -17
  137. package/lib/utils/storage.js.map +1 -0
  138. package/package.json +30 -71
  139. package/src/EventEmitter.ts +103 -0
  140. package/src/FlowModel.ts +325 -0
  141. package/src/Scheduler.ts +244 -0
  142. package/src/constant/index.ts +23 -0
  143. package/src/constant/logCode.ts +34 -0
  144. package/src/expression/brewserVm.ts +36 -0
  145. package/src/expression/index.ts +17 -0
  146. package/src/expression/nodeVm.ts +14 -0
  147. package/src/index.ts +300 -0
  148. package/src/nodes/base.ts +234 -0
  149. package/src/nodes/index.ts +3 -0
  150. package/src/nodes/start.ts +8 -0
  151. package/src/nodes/task.ts +8 -0
  152. package/src/platform/browser/browserVm.ts +52 -0
  153. package/src/platform/browser/index.ts +28 -0
  154. package/src/platform/index.ts +1 -0
  155. package/src/platform/node/index.ts +28 -0
  156. package/src/platform/node/nodeVm.ts +12 -0
  157. package/src/recorder/index.ts +137 -0
  158. package/src/typings.d.ts +0 -0
  159. package/src/utils/global.ts +41 -0
  160. package/src/utils/id.ts +16 -0
  161. package/src/utils/index.ts +5 -0
  162. package/src/utils/storage.ts +55 -0
  163. package/cjs/EventEmitter.js +0 -70
  164. package/cjs/FlowModel.js +0 -277
  165. package/cjs/Scheduler.js +0 -252
  166. package/cjs/expression/browserVm.js +0 -81
  167. package/cjs/expression/index.js +0 -63
  168. package/cjs/expression/nodeVm.js +0 -53
  169. package/cjs/index.js +0 -210
  170. package/cjs/nodes/BaseNode.js +0 -252
  171. package/cjs/nodes/StartNode.js +0 -27
  172. package/cjs/nodes/TaskNode.js +0 -27
  173. package/cjs/recorder/index.js +0 -168
  174. package/cjs/util/ID.js +0 -16
  175. package/cjs/util/global.js +0 -32
  176. package/es/constant/LogCode.js +0 -28
  177. package/es/expression/browserVm.d.ts +0 -4
  178. package/es/expression/browserVm.js +0 -76
  179. package/es/nodes/BaseNode.d.ts +0 -110
  180. package/es/nodes/BaseNode.js +0 -250
  181. package/es/nodes/StartNode.js +0 -25
  182. package/es/nodes/TaskNode.js +0 -25
  183. package/es/util/ID.js +0 -13
  184. package/es/util/global.d.ts +0 -5
  185. package/es/util/global.js +0 -26
  186. package/lib/main.js +0 -1
  187. /package/es/constant/{constant.d.ts → index.d.ts} +0 -0
  188. /package/es/constant/{LogCode.d.ts → logCode.d.ts} +0 -0
  189. /package/es/{util/ID.d.ts → utils/id.d.ts} +0 -0
  190. /package/es/{util → utils}/storage.d.ts +0 -0
@@ -1,166 +1,113 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import storage from '../util/storage';
38
- var LOGICFLOW_ENGINE_INSTANCES = 'LOGICFLOW_ENGINE_INSTANCES';
39
- var MAX_RECORDER = 100;
40
- var MAX_INSTANCE = 100;
41
- var Recorder = /** @class */ (function () {
42
- function Recorder(_a) {
43
- var instanceId = _a.instanceId;
44
- this.maxRecorder = MAX_RECORDER;
1
+ import { __awaiter } from "tslib";
2
+ import { storage } from '../utils';
3
+ export const MAX_RECORDER = 100;
4
+ export const MAX_INSTANCE = 100;
5
+ export const LOGICFLOW_ENGINE_INSTANCES = 'LOGICFLOW_ENGINE_INSTANCES';
6
+ export class Recorder {
7
+ constructor({ instanceId }) {
45
8
  this.instanceId = instanceId;
46
- var instances = this.getItem(LOGICFLOW_ENGINE_INSTANCES) || [];
9
+ this.maxRecorder = MAX_RECORDER;
10
+ const instances = this.getItem(LOGICFLOW_ENGINE_INSTANCES) || [];
47
11
  if (instances.indexOf(instanceId) === -1) {
48
12
  instances.push(instanceId);
49
13
  }
50
14
  if (instances.length > MAX_INSTANCE) {
51
- var clearInstance = instances.shift();
15
+ const clearInstance = instances.shift();
52
16
  this.clearInstance(clearInstance);
53
17
  }
54
18
  this.setItem(LOGICFLOW_ENGINE_INSTANCES, instances);
55
19
  }
56
- Recorder.prototype.setMaxRecorderNumber = function (maxRecorder) {
57
- this.maxRecorder = maxRecorder;
58
- };
20
+ setMaxRecorderNumber(max) {
21
+ this.maxRecorder = max;
22
+ }
59
23
  // 将存储 storage 的方法收敛到此处,并在此处做异常处理 - setItem
60
- Recorder.prototype.setItem = function (key, value) {
24
+ setItem(key, value) {
61
25
  try {
62
26
  storage.setItem(key, value);
63
27
  }
64
28
  catch (error) {
65
- console.log('Ops, something wrong with storage.setItem');
29
+ console.error('Ops, something wrong with storage.setItem !!!');
66
30
  storage.clear();
67
31
  storage.setItem(key, value);
68
32
  }
69
- };
33
+ }
70
34
  // getItem 方法
71
- Recorder.prototype.getItem = function (key) {
35
+ getItem(key) {
72
36
  return storage.getItem(key);
73
- };
74
- /*
75
- * @param {Object} action
76
- * {
77
- * actionId: '',
78
- * nodeId: '',
79
- * executionId: '',
80
- * nodeType: '',
81
- * timestamp: '',
82
- * properties: {},
83
- * }
84
- */
85
- Recorder.prototype.addActionRecord = function (action) {
86
- return __awaiter(this, void 0, void 0, function () {
87
- var executionId, actionId, instanceData;
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0:
91
- executionId = action.executionId, actionId = action.actionId;
92
- return [4 /*yield*/, this.getExecutionActions(executionId)];
93
- case 1:
94
- instanceData = _a.sent();
95
- if (!instanceData) {
96
- this.pushExecution(executionId);
97
- }
98
- this.pushActionToExecution(executionId, actionId);
99
- this.setItem(actionId, action);
100
- return [2 /*return*/];
101
- }
102
- });
103
- });
104
- };
105
- Recorder.prototype.getActionRecord = function (actionId) {
106
- return __awaiter(this, void 0, void 0, function () {
107
- return __generator(this, function (_a) {
108
- return [2 /*return*/, this.getItem(actionId)];
109
- });
110
- });
111
- };
112
- Recorder.prototype.getExecutionActions = function (executionId) {
113
- return __awaiter(this, void 0, void 0, function () {
114
- return __generator(this, function (_a) {
115
- return [2 /*return*/, this.getItem(executionId)];
116
- });
117
- });
118
- };
119
- Recorder.prototype.getExecutionList = function () {
120
- return __awaiter(this, void 0, void 0, function () {
121
- var instances;
122
- return __generator(this, function (_a) {
123
- instances = this.getItem(this.instanceId) || [];
124
- return [2 /*return*/, instances];
125
- });
37
+ }
38
+ getExecutionActions(executionId) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return this.getItem(executionId);
126
41
  });
127
- };
128
- Recorder.prototype.clear = function () {
129
- this.clearInstance(this.instanceId);
130
- };
131
- Recorder.prototype.clearInstance = function (instanceId) {
132
- var _this = this;
133
- var instanceExecutions = this.getItem(instanceId) || [];
134
- instanceExecutions.forEach(function (executionId) {
135
- storage.removeItem(executionId);
136
- var instanceData = _this.getItem(executionId) || [];
137
- instanceData.forEach(function (actionId) {
138
- storage.removeItem(actionId);
139
- });
42
+ }
43
+ getExecutionList() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ return this.getItem(this.instanceId) || [];
140
46
  });
141
- storage.removeItem(instanceId);
142
- };
143
- Recorder.prototype.pushExecution = function (executionId) {
144
- var instanceExecutions = this.getItem(this.instanceId) || [];
47
+ }
48
+ addExecution(executionId) {
49
+ const instanceExecutions = this.getItem(this.instanceId) || [];
145
50
  if (instanceExecutions.length >= this.maxRecorder) {
146
- var removeItem = instanceExecutions.shift();
147
- this.popExecution(removeItem);
51
+ const toBeRemovedItem = instanceExecutions.shift();
52
+ this.popExecution(toBeRemovedItem);
148
53
  }
149
54
  instanceExecutions.push(executionId);
150
55
  this.setItem(this.instanceId, instanceExecutions);
151
- };
152
- Recorder.prototype.popExecution = function (executionId) {
153
- var instanceData = this.getItem(executionId) || [];
154
- instanceData.forEach(function (actionId) {
56
+ }
57
+ popExecution(executionId) {
58
+ const instanceData = this.getItem(executionId) || [];
59
+ instanceData.forEach((actionId) => {
155
60
  storage.removeItem(actionId);
156
61
  });
157
62
  storage.removeItem(executionId);
158
- };
159
- Recorder.prototype.pushActionToExecution = function (executionId, actionId) {
160
- var actions = this.getItem(executionId) || [];
63
+ }
64
+ pushActionToExecution(executionId, actionId) {
65
+ const actions = this.getItem(executionId) || [];
161
66
  actions.push(actionId);
162
67
  this.setItem(executionId, actions);
163
- };
164
- return Recorder;
165
- }());
68
+ }
69
+ /**
70
+ * @param {Object} action
71
+ * {
72
+ * actionId: '',
73
+ * nodeId: '',
74
+ * executionId: '',
75
+ * nodeType: '',
76
+ * timestamp: '',
77
+ * properties: {},
78
+ * }
79
+ */
80
+ addActionRecord(action) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const { executionId, actionId } = action;
83
+ const instanceData = yield this.getExecutionActions(executionId);
84
+ if (!instanceData) {
85
+ this.addExecution(executionId);
86
+ }
87
+ this.pushActionToExecution(executionId, actionId);
88
+ this.setItem(actionId, action);
89
+ });
90
+ }
91
+ getActionRecord(actionId) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ return this.getItem(actionId);
94
+ });
95
+ }
96
+ clear() {
97
+ this.clearInstance(this.instanceId);
98
+ }
99
+ clearInstance(instanceId) {
100
+ const instanceExecutions = this.getItem(instanceId) || [];
101
+ // TODO: 完善类型定义
102
+ instanceExecutions.forEach((executionId) => {
103
+ storage.removeItem(executionId);
104
+ const instanceData = this.getItem(executionId) || [];
105
+ instanceData.forEach((actionId) => {
106
+ storage.removeItem(actionId);
107
+ });
108
+ });
109
+ storage.removeItem(instanceId);
110
+ }
111
+ }
166
112
  export default Recorder;
113
+ //# 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,5 @@
1
+ declare const isInBrowser: boolean;
2
+ declare const isInNodeJS: boolean;
3
+ declare const isInWebWorker: false | Function;
4
+ declare const globalScope: any;
5
+ export { globalScope, isInWebWorker, isInBrowser, isInNodeJS, };
@@ -0,0 +1,27 @@
1
+ // 判断当前环境是否为服务端
2
+ // const isServer = typeof window === undefined;
3
+ // const isServer = process.env.BROWSER === true;
4
+ const isInBrowser = typeof window === 'object' && window.window === window;
5
+ const isInNodeJS = typeof global === 'object' && global.global === global;
6
+ const isInWebWorker = !isInBrowser && typeof self === 'object' && self.constructor;
7
+ const globalScope = (() => {
8
+ if (isInBrowser) {
9
+ return window;
10
+ }
11
+ if (typeof self === 'object' && self.self === self) {
12
+ return self;
13
+ }
14
+ if (isInNodeJS) {
15
+ return global;
16
+ }
17
+ if (typeof globalThis === 'object') {
18
+ return globalThis;
19
+ }
20
+ return {
21
+ eval: () => undefined,
22
+ };
23
+ })();
24
+ export {
25
+ // 环境相关方法
26
+ globalScope, isInWebWorker, isInBrowser, isInNodeJS, };
27
+ //# 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;AAE1E,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA;AAEzE,MAAM,aAAa,GACjB,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAA;AAE9D,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;AAEJ,OAAO;AACL,SAAS;AACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,GACX,CAAA"}
package/es/utils/id.js ADDED
@@ -0,0 +1,14 @@
1
+ import { v4 as uuidV4 } from 'uuid';
2
+ export const createExecId = () => {
3
+ const uuid = uuidV4();
4
+ return `exec-${uuid}`;
5
+ };
6
+ export const createActionId = () => {
7
+ const uuid = uuidV4();
8
+ return `action-${uuid}`;
9
+ };
10
+ export const createEngineId = () => {
11
+ const uuid = uuidV4();
12
+ return `engine-${uuid}`;
13
+ };
14
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE;IACvC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;IACrB,OAAO,QAAQ,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;IACrB,OAAO,UAAU,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;IACrB,OAAO,UAAU,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import storage from './storage';
2
+ export * from './global';
3
+ export * from './id';
4
+ export { storage };
@@ -0,0 +1,5 @@
1
+ import storage from './storage';
2
+ export * from './global';
3
+ export * from './id';
4
+ export { storage };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,cAAc,UAAU,CAAA;AACxB,cAAc,MAAM,CAAA;AACpB,OAAO,EAAE,OAAO,EAAE,CAAA"}
@@ -3,43 +3,44 @@
3
3
  */
4
4
  import { globalScope } from './global';
5
5
  if (!globalScope.sessionStorage) {
6
- var storage_1 = {
6
+ const storage = {
7
7
  data: {},
8
- setItem: function (key, value) {
9
- storage_1.data[key] = value;
8
+ setItem(key, value) {
9
+ storage.data[key] = value;
10
10
  },
11
- getItem: function (key) {
12
- return storage_1.data[key];
11
+ getItem(key) {
12
+ return storage.data[key];
13
13
  },
14
- removeItem: function (key) {
15
- delete storage_1.data[key];
14
+ removeItem(key) {
15
+ delete storage.data[key];
16
16
  },
17
- clear: function () {
18
- storage_1.data = {};
17
+ clear() {
18
+ storage.data = {};
19
19
  },
20
20
  };
21
- globalScope.sessionStorage = storage_1;
21
+ globalScope.sessionStorage = storage;
22
22
  }
23
23
  export default {
24
- setItem: function (key, value) {
24
+ setItem(key, value) {
25
25
  if (typeof value === 'object') {
26
26
  value = JSON.stringify(value);
27
27
  }
28
28
  globalScope.sessionStorage.setItem(key, value);
29
29
  },
30
- getItem: function (key) {
31
- var value = globalScope.sessionStorage.getItem(key);
30
+ getItem(key) {
31
+ const value = globalScope.sessionStorage.getItem(key);
32
32
  try {
33
33
  return JSON.parse(value);
34
34
  }
35
- catch (e) {
35
+ catch (error) {
36
36
  return value;
37
37
  }
38
38
  },
39
- removeItem: function (key) {
39
+ removeItem(key) {
40
40
  globalScope.sessionStorage.removeItem(key);
41
41
  },
42
- clear: function () {
42
+ clear() {
43
43
  globalScope.sessionStorage.clear();
44
44
  },
45
45
  };
46
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,IAAI,CAAC,WAAW,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,WAAW,CAAC,cAAc,GAAG,OAAO,CAAA;CACrC;AAED,eAAe;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,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,CAAC,GAAG;QACT,MAAM,KAAK,GAAG,WAAW,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,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK;QACH,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;CACF,CAAA"}
@@ -0,0 +1,37 @@
1
+ export interface EventType {
2
+ readonly callback: (params?: any) => void;
3
+ readonly once: boolean;
4
+ }
5
+ export type EventArgs = Record<string, unknown>;
6
+ export type EventsType = Record<string, EventType[]>;
7
+ export type CallbackType = (...args: unknown[]) => void;
8
+ export default class EventEmitter {
9
+ private _events;
10
+ constructor();
11
+ /**
12
+ * 添加一个监听事件
13
+ * @param evtKey 事件名称
14
+ * @param callback 回调方法
15
+ * @param once 是否触发一次
16
+ * @returns 当前 EventEmitter 实例
17
+ */
18
+ on(evtKey: string, callback: CallbackType, once?: boolean): void;
19
+ /**
20
+ * 取消监听一个事件,或者一个 Channel
21
+ * @param evtKey
22
+ * @param callback
23
+ */
24
+ off(evtKey: string, callback?: CallbackType): void;
25
+ /**
26
+ * 主动触发事件
27
+ * @param evtKey 触发事件名称
28
+ * @param eventArgs 事件参数
29
+ */
30
+ emit(evtKey: string, eventArgs: EventArgs): void;
31
+ /**
32
+ * 获取当前所有事件
33
+ * @returns _events
34
+ */
35
+ getEvents(): EventsType;
36
+ }
37
+ export { EventEmitter };
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventEmitter = void 0;
4
+ class EventEmitter {
5
+ constructor() {
6
+ this._events = {};
7
+ }
8
+ /**
9
+ * 添加一个监听事件
10
+ * @param evtKey 事件名称
11
+ * @param callback 回调方法
12
+ * @param once 是否触发一次
13
+ * @returns 当前 EventEmitter 实例
14
+ */
15
+ on(evtKey, callback, once) {
16
+ evtKey = evtKey.trim();
17
+ if (!this._events[evtKey]) {
18
+ this._events[evtKey] = [];
19
+ }
20
+ this._events[evtKey].push({
21
+ callback,
22
+ once: !!once,
23
+ });
24
+ }
25
+ /**
26
+ * 取消监听一个事件,或者一个 Channel
27
+ * @param evtKey
28
+ * @param callback
29
+ */
30
+ off(evtKey, callback) {
31
+ if (!evtKey) {
32
+ // evtKey 为空全部清除
33
+ this._events = {};
34
+ }
35
+ if (!callback) {
36
+ // evtKey 存在,callback 为空,清除事件所有方法
37
+ delete this._events[evtKey];
38
+ }
39
+ else {
40
+ // evtKey 存在,callback 存在,清除匹配的
41
+ const events = this._events[evtKey] || [];
42
+ let { length } = events;
43
+ for (let i = 0; i < length; i++) {
44
+ if (events[i].callback === callback) {
45
+ events.splice(i, 1);
46
+ length--;
47
+ i--;
48
+ }
49
+ }
50
+ if (events.length === 0) {
51
+ delete this._events[evtKey];
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * 主动触发事件
57
+ * @param evtKey 触发事件名称
58
+ * @param eventArgs 事件参数
59
+ */
60
+ emit(evtKey, eventArgs) {
61
+ const events = this._events[evtKey] || [];
62
+ // 实际的处理 emit 方法
63
+ const doEmit = (es) => {
64
+ let { length } = es;
65
+ for (let i = 0; i < length; i++) {
66
+ if (!es[i]) {
67
+ // eslint-disable-next-line no-continue
68
+ continue;
69
+ }
70
+ const { callback, once } = es[i];
71
+ if (once) {
72
+ es.splice(i, 1);
73
+ if (es.length === 0) {
74
+ delete this._events[evtKey];
75
+ }
76
+ length--;
77
+ i--;
78
+ }
79
+ callback.apply(this, [eventArgs]);
80
+ }
81
+ };
82
+ doEmit(events);
83
+ }
84
+ /**
85
+ * 获取当前所有事件
86
+ * @returns _events
87
+ */
88
+ getEvents() {
89
+ return this._events;
90
+ }
91
+ }
92
+ exports.default = EventEmitter;
93
+ exports.EventEmitter = EventEmitter;
94
+ //# sourceMappingURL=EventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":";;;AASA,MAAqB,YAAY;IAE/B;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED;;;;;;OAMG;IACH,EAAE,CAAC,MAAc,EAAE,QAAsB,EAAE,IAAc;QACvD,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;SAC1B;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACxB,QAAQ;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,MAAc,EAAE,QAAuB;QACzC,IAAI,CAAC,MAAM,EAAE;YACX,gBAAgB;YAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;SAClB;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,iCAAiC;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAC5B;aAAM;YACL,8BAA8B;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YACzC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACnB,MAAM,EAAE,CAAA;oBACR,CAAC,EAAE,CAAA;iBACJ;aACF;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;aAC5B;SACF;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,MAAc,EAAE,SAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACzC,gBAAgB;QAChB,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE;YACpB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;oBACV,uCAAuC;oBACvC,SAAQ;iBACT;gBACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;gBAChC,IAAI,IAAI,EAAE;oBACR,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACf,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;qBAC5B;oBACD,MAAM,EAAE,CAAA;oBACR,CAAC,EAAE,CAAA;iBACJ;gBACD,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;aAClC;QACH,CAAC,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AA3FD,+BA2FC;AAEQ,oCAAY"}