oak-domain 3.0.3 → 4.0.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/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +25 -38
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -160
- package/lib/base-app-domain/ActionAuth/Storage.js +39 -42
- package/lib/base-app-domain/ActionDefDict.d.ts +8 -9
- package/lib/base-app-domain/ActionDefDict.js +9 -11
- package/lib/base-app-domain/EntityDict.d.ts +28 -24
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -311
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +153 -152
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -300
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Path/Schema.d.ts +149 -0
- package/lib/base-app-domain/Path/Schema.js +2 -0
- package/lib/base-app-domain/Path/Storage.d.ts +3 -0
- package/lib/base-app-domain/Path/Storage.js +54 -0
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +2 -10
- package/lib/base-app-domain/Relation.js +4 -10
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -180
- package/lib/base-app-domain/RelationAuth/Storage.js +44 -46
- package/lib/base-app-domain/Storage.js +31 -27
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +210 -197
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -0
- package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -0
- package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -0
- package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -0
- package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
- package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -157
- package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -29
- package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -194
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +142 -112
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +13 -14
- package/lib/compiler/entities.d.ts +2 -0
- package/lib/compiler/entities.js +7 -0
- package/lib/compiler/env.d.ts +13 -14
- package/lib/compiler/env.js +45 -50
- package/lib/compiler/localeBuilder.d.ts +27 -22
- package/lib/compiler/localeBuilder.js +184 -169
- package/lib/compiler/schemalBuilder.d.ts +27 -11
- package/lib/compiler/schemalBuilder.js +3569 -3787
- package/lib/entities/ActionAuth.d.ts +10 -12
- package/lib/entities/ActionAuth.js +31 -29
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +36 -37
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Path.d.ts +8 -0
- package/lib/entities/Path.js +35 -0
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityClaim.d.ts +13 -0
- package/lib/entities/UserEntityClaim.js +17 -0
- package/lib/entities/UserEntityGrant.d.ts +9 -8
- package/lib/entities/UserEntityGrant.js +15 -18
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/index.d.ts +23 -0
- package/lib/index.js +37 -0
- package/lib/store/AsyncRowStore.d.ts +60 -58
- package/lib/store/AsyncRowStore.js +118 -190
- package/lib/store/CascadeStore.d.ts +104 -103
- package/lib/store/CascadeStore.js +1688 -2036
- package/lib/store/RelationAuth.d.ts +96 -103
- package/lib/store/RelationAuth.js +1336 -1492
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +50 -49
- package/lib/store/TriggerExecutor.d.ts +38 -31
- package/lib/store/TriggerExecutor.js +459 -532
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +25 -40
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +278 -353
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +487 -623
- package/lib/store/filter.d.ts +85 -123
- package/lib/store/filter.js +1651 -1761
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +254 -315
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +57 -60
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +111 -176
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/AppLoader.d.ts +17 -11
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Aspect.d.ts +1 -3
- package/lib/types/Auth.d.ts +70 -74
- package/lib/types/Cluster.d.ts +5 -0
- package/lib/types/Cluster.js +2 -0
- package/lib/types/Connector.d.ts +38 -34
- package/lib/types/Connector.js +2 -9
- package/lib/types/DataType.d.ts +25 -24
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +88 -88
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Entity.d.ts +203 -198
- package/lib/types/Entity.js +15 -15
- package/lib/types/EntityDesc.d.ts +9 -8
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +88 -57
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +147 -120
- package/lib/types/Exception.js +406 -406
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +397 -427
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/RowStore.d.ts +18 -18
- package/lib/types/RowStore.js +33 -34
- package/lib/types/Storage.d.ts +58 -57
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Timer.d.ts +14 -14
- package/lib/types/Trigger.d.ts +124 -108
- package/lib/types/Trigger.js +58 -54
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/index.d.ts +26 -24
- package/lib/types/index.js +29 -27
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/utils/SimpleConnector.d.ts +64 -50
- package/lib/utils/SimpleConnector.js +206 -184
- package/lib/utils/assert.d.ts +5 -5
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +63 -89
- package/lib/utils/date.js +18 -18
- package/lib/utils/{url.d.ts → domain.d.ts} +1 -1
- package/lib/utils/{url.js → domain.js} +11 -12
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +24 -20
- package/lib/utils/lodash.js +46 -55
- package/lib/utils/mask.js +34 -35
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +51 -40
- package/lib/utils/projection.d.ts +4 -0
- package/lib/utils/projection.js +15 -0
- package/lib/utils/random/random.js +19 -24
- package/lib/utils/random/random.mp.js +14 -25
- package/lib/utils/random/random.native.d.ts +1 -0
- package/lib/utils/random/random.native.js +14 -0
- package/lib/utils/random/random.web.js +11 -17
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +69 -82
- package/lib/utils/url/index.d.ts +7 -0
- package/lib/utils/url/index.js +8 -0
- package/lib/utils/url/index.mp.d.ts +4 -0
- package/lib/utils/url/index.mp.js +8 -0
- package/lib/utils/url/index.native.d.ts +12 -0
- package/lib/utils/url/index.native.js +7 -0
- package/lib/utils/url/index.web.d.ts +12 -0
- package/lib/utils/url/index.web.js +7 -0
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +218 -257
- package/lib/utils/validator.d.ts +26 -25
- package/lib/utils/validator.js +131 -128
- package/lib/utils/version.js +21 -21
- package/package.json +51 -49
- package/src/entities/ActionAuth.ts +41 -41
- package/src/entities/I18n.ts +45 -46
- package/src/entities/Modi.ts +69 -69
- package/src/entities/ModiEntity.ts +26 -26
- package/src/entities/Oper.ts +32 -32
- package/src/entities/OperEntity.ts +27 -27
- package/src/entities/Path.ts +43 -0
- package/src/entities/Relation.ts +43 -43
- package/src/entities/RelationAuth.ts +44 -43
- package/src/entities/User.ts +48 -48
- package/src/entities/UserEntityClaim.ts +30 -0
- package/src/entities/UserEntityGrant.ts +24 -27
- package/src/entities/UserRelation.ts +50 -50
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, TxnOption, Context, AggregationResult } from "../types";
|
|
2
|
-
export declare abstract class SyncContext<ED extends EntityDict> implements Context {
|
|
3
|
-
rowStore: SyncRowStore<ED, this>;
|
|
4
|
-
private uuid?;
|
|
5
|
-
constructor(rowStore: SyncRowStore<ED, SyncContext<ED>>);
|
|
6
|
-
abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
|
|
7
|
-
abstract isRoot(): boolean;
|
|
8
|
-
abstract toString(): string;
|
|
9
|
-
begin(option?: TxnOption): void;
|
|
10
|
-
commit(): void;
|
|
11
|
-
rollback(): void;
|
|
12
|
-
getCurrentTxnId(): string | undefined;
|
|
13
|
-
getSchema(): import("../types").StorageSchema<ED>;
|
|
14
|
-
operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): OperationResult<ED>;
|
|
15
|
-
select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Partial<ED[T]["Schema"]>[];
|
|
16
|
-
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): AggregationResult<ED[T]["Schema"]>;
|
|
17
|
-
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): number;
|
|
18
|
-
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
19
|
-
abstract allowUserUpdate(): boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface SyncRowStore<ED extends EntityDict, Cxt extends
|
|
22
|
-
operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
|
|
23
|
-
select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]['Schema']>[];
|
|
24
|
-
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): number;
|
|
25
|
-
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult<ED[T]['Schema']>;
|
|
26
|
-
begin(option?: TxnOption): string;
|
|
27
|
-
commit(txnId: string): void;
|
|
28
|
-
rollback(txnId: string): void;
|
|
29
|
-
}
|
|
1
|
+
import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, TxnOption, Context, AggregationResult } from "../types";
|
|
2
|
+
export declare abstract class SyncContext<ED extends EntityDict> implements Context {
|
|
3
|
+
rowStore: SyncRowStore<ED, this>;
|
|
4
|
+
private uuid?;
|
|
5
|
+
constructor(rowStore: SyncRowStore<ED, SyncContext<ED>>);
|
|
6
|
+
abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
|
|
7
|
+
abstract isRoot(): boolean;
|
|
8
|
+
abstract toString(): string;
|
|
9
|
+
begin(option?: TxnOption): void;
|
|
10
|
+
commit(): void;
|
|
11
|
+
rollback(): void;
|
|
12
|
+
getCurrentTxnId(): string | undefined;
|
|
13
|
+
getSchema(): import("../types").StorageSchema<ED>;
|
|
14
|
+
operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): OperationResult<ED>;
|
|
15
|
+
select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Partial<ED[T]["Schema"]>[];
|
|
16
|
+
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): AggregationResult<ED[T]["Schema"]>;
|
|
17
|
+
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): number;
|
|
18
|
+
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
19
|
+
abstract allowUserUpdate(): boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface SyncRowStore<ED extends EntityDict, Cxt extends SyncContext<ED>> extends RowStore<ED> {
|
|
22
|
+
operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
|
|
23
|
+
select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]['Schema']>[];
|
|
24
|
+
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): number;
|
|
25
|
+
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult<ED[T]['Schema']>;
|
|
26
|
+
begin(option?: TxnOption): string;
|
|
27
|
+
commit(txnId: string): void;
|
|
28
|
+
rollback(txnId: string): void;
|
|
29
|
+
}
|
|
@@ -1,49 +1,50 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SyncContext = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.uuid
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.uuid
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
;
|
|
49
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SyncContext = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
+
class SyncContext {
|
|
7
|
+
rowStore;
|
|
8
|
+
uuid;
|
|
9
|
+
constructor(rowStore) {
|
|
10
|
+
this.rowStore = rowStore;
|
|
11
|
+
}
|
|
12
|
+
begin(option) {
|
|
13
|
+
(0, assert_1.default)(!this.uuid, '事务不允许嵌套');
|
|
14
|
+
this.uuid = this.rowStore.begin(option);
|
|
15
|
+
}
|
|
16
|
+
commit() {
|
|
17
|
+
(0, assert_1.default)(this.uuid);
|
|
18
|
+
this.rowStore.commit(this.uuid);
|
|
19
|
+
this.uuid = undefined;
|
|
20
|
+
}
|
|
21
|
+
rollback() {
|
|
22
|
+
(0, assert_1.default)(this.uuid);
|
|
23
|
+
this.rowStore.rollback(this.uuid);
|
|
24
|
+
this.uuid = undefined;
|
|
25
|
+
}
|
|
26
|
+
getCurrentTxnId() {
|
|
27
|
+
return this.uuid;
|
|
28
|
+
}
|
|
29
|
+
getSchema() {
|
|
30
|
+
return this.rowStore.getSchema();
|
|
31
|
+
}
|
|
32
|
+
operate(entity, operation, option) {
|
|
33
|
+
return this.rowStore.operate(entity, operation, this, option);
|
|
34
|
+
}
|
|
35
|
+
select(entity, selection, option) {
|
|
36
|
+
return this.rowStore.select(entity, selection, this, option);
|
|
37
|
+
}
|
|
38
|
+
aggregate(entity, aggregation, option) {
|
|
39
|
+
return this.rowStore.aggregate(entity, aggregation, this, option);
|
|
40
|
+
}
|
|
41
|
+
count(entity, selection, option) {
|
|
42
|
+
return this.rowStore.count(entity, selection, this, option);
|
|
43
|
+
}
|
|
44
|
+
mergeMultipleResults(toBeMerged) {
|
|
45
|
+
return this.rowStore.mergeMultipleResults(toBeMerged);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.SyncContext = SyncContext;
|
|
49
|
+
;
|
|
50
|
+
;
|
|
@@ -1,31 +1,38 @@
|
|
|
1
|
-
import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
|
|
2
|
-
import { EntityDict as BaseEntityDict } from '../base-app-domain';
|
|
3
|
-
import { Logger } from "../types/Logger";
|
|
4
|
-
import { Checker } from '../types/Auth';
|
|
5
|
-
import { Trigger } from "../types/Trigger";
|
|
6
|
-
import { AsyncContext } from './AsyncRowStore';
|
|
7
|
-
/**
|
|
8
|
-
* update可能会传入多种不同的action,此时都需要检查update trigger
|
|
9
|
-
*/
|
|
10
|
-
export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict
|
|
11
|
-
private counter;
|
|
12
|
-
private triggerMap;
|
|
13
|
-
private triggerNameMap;
|
|
14
|
-
private volatileEntities;
|
|
15
|
-
private logger;
|
|
16
|
-
private contextBuilder;
|
|
17
|
-
constructor(contextBuilder: (cxtString
|
|
18
|
-
registerChecker<T extends keyof ED
|
|
19
|
-
registerTrigger<T extends keyof ED
|
|
20
|
-
unregisterTrigger<T extends keyof ED
|
|
21
|
-
private preCommitTrigger;
|
|
22
|
-
preOperation<T extends keyof ED
|
|
23
|
-
action: 'select';
|
|
24
|
-
}, context: Cxt, option: OperateOption | SelectOption): Promise<void> | void;
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
|
|
2
|
+
import { EntityDict as BaseEntityDict } from '../base-app-domain';
|
|
3
|
+
import { Logger } from "../types/Logger";
|
|
4
|
+
import { Checker } from '../types/Auth';
|
|
5
|
+
import { Trigger } from "../types/Trigger";
|
|
6
|
+
import { AsyncContext } from './AsyncRowStore';
|
|
7
|
+
/**
|
|
8
|
+
* update可能会传入多种不同的action,此时都需要检查update trigger
|
|
9
|
+
*/
|
|
10
|
+
export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>> {
|
|
11
|
+
private counter;
|
|
12
|
+
private triggerMap;
|
|
13
|
+
private triggerNameMap;
|
|
14
|
+
private volatileEntities;
|
|
15
|
+
private logger;
|
|
16
|
+
private contextBuilder;
|
|
17
|
+
constructor(contextBuilder: (cxtString?: string) => Promise<Cxt>, logger?: Logger);
|
|
18
|
+
registerChecker<T extends keyof ED>(checker: Checker<ED, T, Cxt>): void;
|
|
19
|
+
registerTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
|
|
20
|
+
unregisterTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
|
|
21
|
+
private preCommitTrigger;
|
|
22
|
+
preOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
|
|
23
|
+
action: 'select';
|
|
24
|
+
}, context: Cxt, option: OperateOption | SelectOption): Promise<void> | void;
|
|
25
|
+
private execVolatileTrigger;
|
|
26
|
+
/**
|
|
27
|
+
* 判断一个trigger和当前modi上下文是否符合
|
|
28
|
+
* trigger的默认行为是:如果是commit时机的trigger,不显式声明则只能在modi apply时执行(create时不执行);非commit时机的trigger,不显式声明则只在modi create时执行
|
|
29
|
+
* @param option
|
|
30
|
+
* @param trigger
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
private judgeModiTurn;
|
|
34
|
+
postOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
|
|
35
|
+
action: 'select';
|
|
36
|
+
}, context: Cxt, option: OperateOption | SelectOption, result?: Partial<ED[T]['Schema']>[]): Promise<void> | void;
|
|
37
|
+
checkpoint(timestamp: number): Promise<number>;
|
|
38
|
+
}
|