oak-domain 1.0.0 → 1.1.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/lib/OakError.js +2 -16
- package/lib/actions/action.d.ts +9 -1
- package/lib/actions/action.js +6 -2
- package/lib/base-app-domain/ActionDefDict.d.ts +5 -0
- package/lib/base-app-domain/ActionDefDict.js +7 -0
- package/lib/base-app-domain/EntityDict.d.ts +12 -0
- package/lib/base-app-domain/EntityDict.js +2 -0
- package/lib/base-app-domain/Modi/Action.d.ts +10 -0
- package/lib/base-app-domain/Modi/Action.js +14 -0
- package/lib/base-app-domain/Modi/Schema.d.ts +161 -0
- package/lib/base-app-domain/Modi/Schema.js +2 -0
- package/lib/base-app-domain/Modi/Storage.d.ts +3 -0
- package/lib/base-app-domain/Modi/Storage.js +60 -0
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +179 -0
- package/lib/base-app-domain/ModiEntity/Schema.js +2 -0
- package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -0
- package/lib/base-app-domain/ModiEntity/Storage.js +26 -0
- package/lib/base-app-domain/Oper/Schema.d.ts +158 -0
- package/lib/base-app-domain/Oper/Schema.js +2 -0
- package/lib/base-app-domain/Oper/Storage.d.ts +3 -0
- package/lib/base-app-domain/Oper/Storage.js +29 -0
- package/lib/base-app-domain/OperEntity/Schema.d.ts +196 -0
- package/lib/base-app-domain/OperEntity/Schema.js +2 -0
- package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -0
- package/lib/base-app-domain/OperEntity/Storage.js +26 -0
- package/lib/base-app-domain/Storage.d.ts +3 -0
- package/lib/base-app-domain/Storage.js +15 -0
- package/lib/base-app-domain/User/Schema.d.ts +140 -0
- package/lib/base-app-domain/User/Schema.js +2 -0
- package/lib/base-app-domain/User/Storage.d.ts +3 -0
- package/lib/base-app-domain/User/Storage.js +25 -0
- package/lib/base-app-domain/_SubQuery.d.ts +36 -0
- package/lib/base-app-domain/_SubQuery.js +2 -0
- package/lib/base-app-domain/index.d.ts +3 -0
- package/lib/base-app-domain/index.js +6 -0
- package/lib/checkers/index.d.ts +3 -0
- package/lib/checkers/index.js +8 -0
- package/lib/compiler/env.d.ts +4 -3
- package/lib/compiler/env.js +22 -9
- package/lib/compiler/schemalBuilder.js +689 -355
- package/lib/entities/Action.d.ts +12 -0
- package/lib/entities/Action.js +17 -0
- package/lib/entities/Modi.d.ts +11 -0
- package/lib/entities/Modi.js +46 -0
- package/lib/entities/ModiEntity.d.ts +8 -0
- package/lib/entities/ModiEntity.js +15 -0
- package/lib/entities/Ooperation.d.ts +12 -0
- package/lib/entities/Ooperation.js +17 -0
- package/lib/entities/Oper.d.ts +10 -0
- package/lib/entities/Oper.js +17 -0
- package/lib/entities/OperEntity.d.ts +8 -0
- package/lib/entities/OperEntity.js +15 -0
- package/lib/entities/Update.d.ts +9 -0
- package/lib/entities/Update.js +44 -0
- package/lib/entities/User.d.ts +7 -0
- package/lib/entities/User.js +12 -0
- package/lib/entities/Uupdate.d.ts +9 -0
- package/lib/entities/Uupdate.js +44 -0
- package/lib/store/CascadeStore.d.ts +31 -6
- package/lib/store/CascadeStore.js +957 -230
- package/lib/store/TriggerExecutor.d.ts +4 -3
- package/lib/store/TriggerExecutor.js +30 -102
- package/lib/store/UniversalContext.d.ts +1 -0
- package/lib/store/UniversalContext.js +10 -59
- package/lib/store/action.d.ts +6 -0
- package/lib/store/action.js +14 -0
- package/lib/store/actionDef.js +14 -47
- package/lib/store/filter.d.ts +6 -0
- package/lib/store/filter.js +60 -29
- package/lib/store/modi.d.ts +11 -0
- package/lib/store/modi.js +143 -0
- package/lib/store/projection.d.ts +7 -0
- package/lib/store/projection.js +211 -0
- package/lib/store/relation.js +6 -6
- package/lib/store/selection.d.ts +7 -0
- package/lib/store/selection.js +227 -0
- package/lib/triggers/index.d.ts +2 -0
- package/lib/triggers/index.js +5 -0
- package/lib/triggers/modi.d.ts +5 -0
- package/lib/triggers/modi.js +72 -0
- package/lib/types/Context.d.ts +1 -0
- package/lib/types/DataType.d.ts +1 -1
- package/lib/types/Entity.d.ts +29 -16
- package/lib/types/Exception.d.ts +28 -0
- package/lib/types/Exception.js +75 -23
- package/lib/types/Expression.d.ts +9 -0
- package/lib/types/Expression.js +47 -38
- package/lib/types/RowStore.d.ts +3 -3
- package/lib/types/Storage.d.ts +6 -0
- package/lib/types/Trigger.d.ts +5 -5
- package/lib/types/index.js +19 -28
- package/lib/utils/SimpleConnector.js +5 -58
- package/lib/utils/assert.js +2 -4
- package/lib/utils/concurrent.js +5 -54
- package/lib/utils/lodash.d.ts +4 -1
- package/lib/utils/lodash.js +19 -15
- package/package.json +10 -5
- package/src/entities/Modi.ts +68 -0
- package/src/entities/ModiEntity.ts +24 -0
- package/src/entities/Oper.ts +28 -0
- package/src/entities/OperEntity.ts +24 -0
- package/src/entities/User.ts +20 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EntityDict, OperateOption, SelectOption, SelectRowShape } from "../types/Entity";
|
|
2
|
+
import { EntityDict as BaseEntityDict } from '../base-app-domain';
|
|
2
3
|
import { Logger } from "../types/Logger";
|
|
3
4
|
import { Checker } from '../types/Auth';
|
|
4
5
|
import { Context } from '../types/Context';
|
|
@@ -6,7 +7,7 @@ import { Trigger, Executor } from "../types/Trigger";
|
|
|
6
7
|
/**
|
|
7
8
|
* update可能会传入多种不同的action,此时都需要检查update trigger
|
|
8
9
|
*/
|
|
9
|
-
export declare class TriggerExecutor<ED extends EntityDict, Cxt extends Context<ED>> extends Executor<ED, Cxt> {
|
|
10
|
+
export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict, Cxt extends Context<ED>> extends Executor<ED, Cxt> {
|
|
10
11
|
private counter;
|
|
11
12
|
private triggerMap;
|
|
12
13
|
private triggerNameMap;
|
|
@@ -20,11 +21,11 @@ export declare class TriggerExecutor<ED extends EntityDict, Cxt extends Context<
|
|
|
20
21
|
private preCommitTrigger;
|
|
21
22
|
preOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
|
|
22
23
|
action: 'select';
|
|
23
|
-
}, context: Cxt, option
|
|
24
|
+
}, context: Cxt, option: OperateOption | SelectOption): Promise<void>;
|
|
24
25
|
private onCommit;
|
|
25
26
|
private postCommitTrigger;
|
|
26
27
|
postOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
|
|
27
28
|
action: 'select';
|
|
28
|
-
}, context: Cxt, option
|
|
29
|
+
}, context: Cxt, option: OperateOption | SelectOption, result?: SelectRowShape<ED[T]['Schema'], ED[T]['Selection']['data']>[]): Promise<void>;
|
|
29
30
|
checkpoint(context: Cxt, timestamp: number): Promise<number>;
|
|
30
31
|
}
|
|
@@ -1,83 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
-
function step(op) {
|
|
42
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
-
while (_) try {
|
|
44
|
-
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;
|
|
45
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
-
switch (op[0]) {
|
|
47
|
-
case 0: case 1: t = op; break;
|
|
48
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
-
default:
|
|
52
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
-
if (t[2]) _.ops.pop();
|
|
57
|
-
_.trys.pop(); continue;
|
|
58
|
-
}
|
|
59
|
-
op = body.call(thisArg, _);
|
|
60
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
var __values = (this && this.__values) || function(o) {
|
|
65
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
66
|
-
if (m) return m.call(o);
|
|
67
|
-
if (o && typeof o.length === "number") return {
|
|
68
|
-
next: function () {
|
|
69
|
-
if (o && i >= o.length) o = void 0;
|
|
70
|
-
return { value: o && o[i++], done: !o };
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
74
|
-
};
|
|
75
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
76
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
77
|
-
};
|
|
78
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
79
3
|
exports.TriggerExecutor = void 0;
|
|
80
|
-
var
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
81
6
|
var lodash_1 = require("../utils/lodash");
|
|
82
7
|
var filter_1 = require("../store/filter");
|
|
83
8
|
var Trigger_1 = require("../types/Trigger");
|
|
@@ -93,7 +18,7 @@ var Trigger_1 = require("../types/Trigger");
|
|
|
93
18
|
'stat': 'select',
|
|
94
19
|
}; */
|
|
95
20
|
var TriggerExecutor = /** @class */ (function (_super) {
|
|
96
|
-
__extends(TriggerExecutor, _super);
|
|
21
|
+
tslib_1.__extends(TriggerExecutor, _super);
|
|
97
22
|
function TriggerExecutor(contextBuilder, logger) {
|
|
98
23
|
if (logger === void 0) { logger = console; }
|
|
99
24
|
var _this = _super.call(this) || this;
|
|
@@ -107,7 +32,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
107
32
|
}
|
|
108
33
|
TriggerExecutor.prototype.registerChecker = function (checker) {
|
|
109
34
|
var entity = checker.entity, action = checker.action, checkFn = checker.checker, type = checker.type;
|
|
110
|
-
var triggerName = "".concat(entity).concat(action, "\u6743\u9650\u68C0\u67E5-").concat(this.counter++);
|
|
35
|
+
var triggerName = "".concat(String(entity)).concat(action, "\u6743\u9650\u68C0\u67E5-").concat(this.counter++);
|
|
111
36
|
var trigger = {
|
|
112
37
|
checkerType: type,
|
|
113
38
|
name: triggerName,
|
|
@@ -177,10 +102,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
177
102
|
}
|
|
178
103
|
};
|
|
179
104
|
TriggerExecutor.prototype.preCommitTrigger = function (entity, operation, trigger, context, option) {
|
|
180
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
105
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
181
106
|
var _a, filter, filter2, rowStore, count, _b, _c, _d, _e;
|
|
182
107
|
var _f, _g;
|
|
183
|
-
return __generator(this, function (_h) {
|
|
108
|
+
return tslib_1.__generator(this, function (_h) {
|
|
184
109
|
switch (_h.label) {
|
|
185
110
|
case 0:
|
|
186
111
|
(0, assert_1.default)(trigger.action !== 'select');
|
|
@@ -217,11 +142,11 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
217
142
|
rowStore = context.rowStore;
|
|
218
143
|
return [4 /*yield*/, rowStore.count(entity, {
|
|
219
144
|
filter: filter2
|
|
220
|
-
}, context)];
|
|
145
|
+
}, context, {})];
|
|
221
146
|
case 3:
|
|
222
147
|
count = _h.sent();
|
|
223
148
|
if (count > 0) {
|
|
224
|
-
throw new Error("\u5BF9\u8C61".concat(entity, "\u7684\u884C\u300C").concat(JSON.stringify(operation), "\u300D\u4E0A\u5DF2\u7ECF\u5B58\u5728\u672A\u5B8C\u6210\u7684\u8DE8\u4E8B\u52A1\u7EA6\u675F"));
|
|
149
|
+
throw new Error("\u5BF9\u8C61".concat(String(entity), "\u7684\u884C\u300C").concat(JSON.stringify(operation), "\u300D\u4E0A\u5DF2\u7ECF\u5B58\u5728\u672A\u5B8C\u6210\u7684\u8DE8\u4E8B\u52A1\u7EA6\u675F"));
|
|
225
150
|
}
|
|
226
151
|
return [3 /*break*/, 4];
|
|
227
152
|
case 4:
|
|
@@ -248,10 +173,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
248
173
|
};
|
|
249
174
|
TriggerExecutor.prototype.preOperation = function (entity, operation, context, option) {
|
|
250
175
|
var _a;
|
|
251
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
176
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
252
177
|
var action, triggers, preTriggers, preTriggers_1, preTriggers_1_1, trigger, number, e_1_1, commitTriggers, commitTriggers_1, commitTriggers_1_1, trigger, e_2_1;
|
|
253
178
|
var e_1, _b, e_2, _c;
|
|
254
|
-
return __generator(this, function (_d) {
|
|
179
|
+
return tslib_1.__generator(this, function (_d) {
|
|
255
180
|
switch (_d.label) {
|
|
256
181
|
case 0:
|
|
257
182
|
action = operation.action;
|
|
@@ -261,7 +186,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
261
186
|
_d.label = 1;
|
|
262
187
|
case 1:
|
|
263
188
|
_d.trys.push([1, 6, 7, 8]);
|
|
264
|
-
preTriggers_1 = __values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
|
|
189
|
+
preTriggers_1 = tslib_1.__values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
|
|
265
190
|
_d.label = 2;
|
|
266
191
|
case 2:
|
|
267
192
|
if (!!preTriggers_1_1.done) return [3 /*break*/, 5];
|
|
@@ -292,7 +217,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
292
217
|
_d.label = 9;
|
|
293
218
|
case 9:
|
|
294
219
|
_d.trys.push([9, 14, 15, 16]);
|
|
295
|
-
commitTriggers_1 = __values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
|
|
220
|
+
commitTriggers_1 = tslib_1.__values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
|
|
296
221
|
_d.label = 10;
|
|
297
222
|
case 10:
|
|
298
223
|
if (!!commitTriggers_1_1.done) return [3 /*break*/, 13];
|
|
@@ -322,9 +247,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
322
247
|
};
|
|
323
248
|
TriggerExecutor.prototype.onCommit = function (trigger, operation, cxtStr, option) {
|
|
324
249
|
var _this = this;
|
|
325
|
-
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
250
|
+
return function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
326
251
|
var context, number, rowStore, filter;
|
|
327
|
-
return __generator(this, function (_a) {
|
|
252
|
+
return tslib_1.__generator(this, function (_a) {
|
|
328
253
|
switch (_a.label) {
|
|
329
254
|
case 0: return [4 /*yield*/, this.contextBuilder(cxtStr)];
|
|
330
255
|
case 1:
|
|
@@ -356,10 +281,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
356
281
|
else if (operation.filter) {
|
|
357
282
|
Object.assign(filter, { filter: operation.filter });
|
|
358
283
|
}
|
|
359
|
-
return [4 /*yield*/, rowStore.operate(trigger.entity, __assign({ action: 'update', data: {
|
|
284
|
+
return [4 /*yield*/, rowStore.operate(trigger.entity, tslib_1.__assign({ id: 'aaa', action: 'update', data: {
|
|
360
285
|
$$triggerTimestamp$$: null,
|
|
361
286
|
$$triggerData$$: null,
|
|
362
|
-
} }, filter /** as Filter<'update', DeduceFilter<ED[T]['Schema']>> */), context)];
|
|
287
|
+
} }, filter /** as Filter<'update', DeduceFilter<ED[T]['Schema']>> */), context, {})];
|
|
363
288
|
case 4:
|
|
364
289
|
_a.sent();
|
|
365
290
|
_a.label = 5;
|
|
@@ -372,9 +297,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
372
297
|
}); };
|
|
373
298
|
};
|
|
374
299
|
TriggerExecutor.prototype.postCommitTrigger = function (operation, trigger, context, option) {
|
|
375
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
300
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
376
301
|
var _a, _b, _c, _d, _e;
|
|
377
|
-
return __generator(this, function (_f) {
|
|
302
|
+
return tslib_1.__generator(this, function (_f) {
|
|
378
303
|
switch (_f.label) {
|
|
379
304
|
case 0:
|
|
380
305
|
_b = (_a = context).on;
|
|
@@ -391,10 +316,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
391
316
|
};
|
|
392
317
|
TriggerExecutor.prototype.postOperation = function (entity, operation, context, option, result) {
|
|
393
318
|
var _a;
|
|
394
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
319
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
395
320
|
var action, triggers, postTriggers, postTriggers_1, postTriggers_1_1, trigger, number, e_3_1, commitTriggers, commitTriggers_2, commitTriggers_2_1, trigger, e_4_1;
|
|
396
321
|
var e_3, _b, e_4, _c;
|
|
397
|
-
return __generator(this, function (_d) {
|
|
322
|
+
return tslib_1.__generator(this, function (_d) {
|
|
398
323
|
switch (_d.label) {
|
|
399
324
|
case 0:
|
|
400
325
|
action = operation.action;
|
|
@@ -404,7 +329,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
404
329
|
_d.label = 1;
|
|
405
330
|
case 1:
|
|
406
331
|
_d.trys.push([1, 6, 7, 8]);
|
|
407
|
-
postTriggers_1 = __values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
|
|
332
|
+
postTriggers_1 = tslib_1.__values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
|
|
408
333
|
_d.label = 2;
|
|
409
334
|
case 2:
|
|
410
335
|
if (!!postTriggers_1_1.done) return [3 /*break*/, 5];
|
|
@@ -438,7 +363,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
438
363
|
_d.label = 9;
|
|
439
364
|
case 9:
|
|
440
365
|
_d.trys.push([9, 14, 15, 16]);
|
|
441
|
-
commitTriggers_2 = __values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
|
|
366
|
+
commitTriggers_2 = tslib_1.__values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
|
|
442
367
|
_d.label = 10;
|
|
443
368
|
case 10:
|
|
444
369
|
if (!!commitTriggers_2_1.done) return [3 /*break*/, 13];
|
|
@@ -467,10 +392,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
467
392
|
});
|
|
468
393
|
};
|
|
469
394
|
TriggerExecutor.prototype.checkpoint = function (context, timestamp) {
|
|
470
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
395
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
471
396
|
var result, rowStore, _a, _b, entity, rows, rows_1, rows_1_1, row, $$triggerData$$, _c, name_1, operation, cxtStr, params, trigger, e_5_1, e_6_1;
|
|
472
397
|
var e_6, _d, e_5, _e;
|
|
473
|
-
return __generator(this, function (_f) {
|
|
398
|
+
return tslib_1.__generator(this, function (_f) {
|
|
474
399
|
switch (_f.label) {
|
|
475
400
|
case 0:
|
|
476
401
|
result = 0;
|
|
@@ -478,7 +403,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
478
403
|
_f.label = 1;
|
|
479
404
|
case 1:
|
|
480
405
|
_f.trys.push([1, 13, 14, 15]);
|
|
481
|
-
_a = __values(this.volatileEntities), _b = _a.next();
|
|
406
|
+
_a = tslib_1.__values(this.volatileEntities), _b = _a.next();
|
|
482
407
|
_f.label = 2;
|
|
483
408
|
case 2:
|
|
484
409
|
if (!!_b.done) return [3 /*break*/, 12];
|
|
@@ -493,13 +418,16 @@ var TriggerExecutor = /** @class */ (function (_super) {
|
|
|
493
418
|
$gt: timestamp,
|
|
494
419
|
}
|
|
495
420
|
},
|
|
496
|
-
}, context
|
|
421
|
+
}, context, {
|
|
422
|
+
dontCollect: true,
|
|
423
|
+
forUpdate: true,
|
|
424
|
+
})];
|
|
497
425
|
case 3:
|
|
498
426
|
rows = (_f.sent()).result;
|
|
499
427
|
_f.label = 4;
|
|
500
428
|
case 4:
|
|
501
429
|
_f.trys.push([4, 9, 10, 11]);
|
|
502
|
-
rows_1 = (e_5 = void 0, __values(rows)), rows_1_1 = rows_1.next();
|
|
430
|
+
rows_1 = (e_5 = void 0, tslib_1.__values(rows)), rows_1_1 = rows_1.next();
|
|
503
431
|
_f.label = 5;
|
|
504
432
|
case 5:
|
|
505
433
|
if (!!rows_1_1.done) return [3 /*break*/, 8];
|
|
@@ -1,57 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __values = (this && this.__values) || function(o) {
|
|
39
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
-
if (m) return m.call(o);
|
|
41
|
-
if (o && typeof o.length === "number") return {
|
|
42
|
-
next: function () {
|
|
43
|
-
if (o && i >= o.length) o = void 0;
|
|
44
|
-
return { value: o && o[i++], done: !o };
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
-
};
|
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
-
};
|
|
52
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
3
|
exports.UniversalContext = void 0;
|
|
54
|
-
var
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
55
6
|
var concurrent_1 = require("../utils/concurrent");
|
|
56
7
|
var UniversalContext = /** @class */ (function () {
|
|
57
8
|
function UniversalContext(store) {
|
|
@@ -83,9 +34,9 @@ var UniversalContext = /** @class */ (function () {
|
|
|
83
34
|
* @param options
|
|
84
35
|
*/
|
|
85
36
|
UniversalContext.prototype.begin = function (options) {
|
|
86
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
37
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
87
38
|
var _a;
|
|
88
|
-
return __generator(this, function (_b) {
|
|
39
|
+
return tslib_1.__generator(this, function (_b) {
|
|
89
40
|
switch (_b.label) {
|
|
90
41
|
case 0: return [4 /*yield*/, this.rwLock.acquire('X')];
|
|
91
42
|
case 1:
|
|
@@ -105,10 +56,10 @@ var UniversalContext = /** @class */ (function () {
|
|
|
105
56
|
});
|
|
106
57
|
};
|
|
107
58
|
UniversalContext.prototype.commit = function () {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
59
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
109
60
|
var _a, _b, e, e_1_1;
|
|
110
61
|
var e_1, _c;
|
|
111
|
-
return __generator(this, function (_d) {
|
|
62
|
+
return tslib_1.__generator(this, function (_d) {
|
|
112
63
|
switch (_d.label) {
|
|
113
64
|
case 0:
|
|
114
65
|
if (!this.uuid) return [3 /*break*/, 10];
|
|
@@ -121,7 +72,7 @@ var UniversalContext = /** @class */ (function () {
|
|
|
121
72
|
_d.label = 2;
|
|
122
73
|
case 2:
|
|
123
74
|
_d.trys.push([2, 7, 8, 9]);
|
|
124
|
-
_a = __values(this.events.commit), _b = _a.next();
|
|
75
|
+
_a = tslib_1.__values(this.events.commit), _b = _a.next();
|
|
125
76
|
_d.label = 3;
|
|
126
77
|
case 3:
|
|
127
78
|
if (!!_b.done) return [3 /*break*/, 6];
|
|
@@ -153,10 +104,10 @@ var UniversalContext = /** @class */ (function () {
|
|
|
153
104
|
});
|
|
154
105
|
};
|
|
155
106
|
UniversalContext.prototype.rollback = function () {
|
|
156
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
157
108
|
var _a, _b, e, e_2_1;
|
|
158
109
|
var e_2, _c;
|
|
159
|
-
return __generator(this, function (_d) {
|
|
110
|
+
return tslib_1.__generator(this, function (_d) {
|
|
160
111
|
switch (_d.label) {
|
|
161
112
|
case 0:
|
|
162
113
|
if (!this.uuid) return [3 /*break*/, 10];
|
|
@@ -169,7 +120,7 @@ var UniversalContext = /** @class */ (function () {
|
|
|
169
120
|
_d.label = 2;
|
|
170
121
|
case 2:
|
|
171
122
|
_d.trys.push([2, 7, 8, 9]);
|
|
172
|
-
_a = __values(this.events.rollback), _b = _a.next();
|
|
123
|
+
_a = tslib_1.__values(this.events.rollback), _b = _a.next();
|
|
173
124
|
_d.label = 3;
|
|
174
125
|
case 3:
|
|
175
126
|
if (!!_b.done) return [3 /*break*/, 6];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLaterAction = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* 判断一个action是不是延时性操作,如果是则返回动作本身
|
|
6
|
+
* @param action
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
function isLaterAction(action) {
|
|
10
|
+
if (action.endsWith('-l')) {
|
|
11
|
+
return action.slice(0, action.length - 2);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.isLaterAction = isLaterAction;
|
package/lib/store/actionDef.js
CHANGED
|
@@ -1,42 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.analyzeActionDefDict = exports.checkFilterContains = exports.getFullProjection = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
40
5
|
var filter_1 = require("./filter");
|
|
41
6
|
var types_1 = require("../types");
|
|
42
7
|
function getFullProjection(entity, schema) {
|
|
@@ -57,10 +22,10 @@ function getFullProjection(entity, schema) {
|
|
|
57
22
|
}
|
|
58
23
|
exports.getFullProjection = getFullProjection;
|
|
59
24
|
function checkFilterContains(entity, schema, contained, context, filter) {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
61
26
|
var rowStore, filter2, result, data_1;
|
|
62
27
|
var _a;
|
|
63
|
-
return __generator(this, function (_b) {
|
|
28
|
+
return tslib_1.__generator(this, function (_b) {
|
|
64
29
|
switch (_b.label) {
|
|
65
30
|
case 0:
|
|
66
31
|
if (!filter) {
|
|
@@ -79,7 +44,9 @@ function checkFilterContains(entity, schema, contained, context, filter) {
|
|
|
79
44
|
filter: filter2,
|
|
80
45
|
indexFrom: 0,
|
|
81
46
|
count: 10,
|
|
82
|
-
}, context
|
|
47
|
+
}, context, {
|
|
48
|
+
dontCollect: true,
|
|
49
|
+
})];
|
|
83
50
|
case 1:
|
|
84
51
|
result = (_b.sent()).result;
|
|
85
52
|
if (result.length > 0) {
|
|
@@ -115,8 +82,8 @@ function makeIntrinsicWatchers(schema) {
|
|
|
115
82
|
watchers.push({
|
|
116
83
|
entity: entity,
|
|
117
84
|
name: "\u5BF9\u8C61".concat(entity, "\u4E0A\u7684\u8FC7\u671F\u81EA\u52A8watcher"),
|
|
118
|
-
filter: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
119
|
-
return __generator(this, function (_a) {
|
|
85
|
+
filter: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
86
|
+
return tslib_1.__generator(this, function (_a) {
|
|
120
87
|
return [2 /*return*/, {
|
|
121
88
|
expired: false,
|
|
122
89
|
expiresAt: {
|
|
@@ -153,10 +120,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
|
|
|
153
120
|
entity: entity,
|
|
154
121
|
checker: function (_a, context) {
|
|
155
122
|
var operation = _a.operation;
|
|
156
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
123
|
+
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
157
124
|
var filter, conditionalFilter;
|
|
158
125
|
var _b, _c;
|
|
159
|
-
return __generator(this, function (_d) {
|
|
126
|
+
return tslib_1.__generator(this, function (_d) {
|
|
160
127
|
switch (_d.label) {
|
|
161
128
|
case 0:
|
|
162
129
|
filter = operation.filter;
|
|
@@ -183,10 +150,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
|
|
|
183
150
|
when: 'before',
|
|
184
151
|
fn: function (_a) {
|
|
185
152
|
var operation = _a.operation;
|
|
186
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
153
|
+
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
187
154
|
var _b, data;
|
|
188
155
|
var _c;
|
|
189
|
-
return __generator(this, function (_d) {
|
|
156
|
+
return tslib_1.__generator(this, function (_d) {
|
|
190
157
|
_b = operation.data, data = _b === void 0 ? {} : _b;
|
|
191
158
|
Object.assign(operation, {
|
|
192
159
|
data: Object.assign(data, (_c = {},
|
|
@@ -210,10 +177,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
|
|
|
210
177
|
when: 'before',
|
|
211
178
|
fn: function (_a) {
|
|
212
179
|
var operation = _a.operation;
|
|
213
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
180
|
+
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
214
181
|
var data;
|
|
215
182
|
var _b;
|
|
216
|
-
return __generator(this, function (_c) {
|
|
183
|
+
return tslib_1.__generator(this, function (_c) {
|
|
217
184
|
data = operation.data;
|
|
218
185
|
Object.assign(data, (_b = {},
|
|
219
186
|
_b[attr] = is,
|
package/lib/store/filter.d.ts
CHANGED
|
@@ -34,3 +34,9 @@ export declare function contains<ED extends EntityDict, T extends keyof ED>(enti
|
|
|
34
34
|
* @param conditionalFilter
|
|
35
35
|
*/
|
|
36
36
|
export declare function repel<ED extends EntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 从filter中判断是否有确定的id对象,如果有则返回这些id,没有返回空数组
|
|
39
|
+
* @param filter
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
export declare function getRelevantIds<ED extends EntityDict, T extends keyof ED>(filter: ED[T]['Selection']['filter']): string[];
|