oak-domain 2.0.2 → 2.0.3
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 +1 -1
- package/lib/actions/relation.js +2 -2
- package/lib/base-app-domain/ActionDefDict.d.ts +5 -5
- package/lib/base-app-domain/ActionDefDict.js +7 -7
- package/lib/base-app-domain/EntityDict.d.ts +12 -12
- package/lib/base-app-domain/EntityDict.js +2 -2
- 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 +161 -161
- package/lib/base-app-domain/Modi/Schema.js +2 -2
- package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
- package/lib/base-app-domain/Modi/Storage.js +60 -60
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +176 -176
- package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
- package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/ModiEntity/Storage.js +26 -26
- package/lib/base-app-domain/Oper/Schema.d.ts +158 -158
- package/lib/base-app-domain/Oper/Schema.js +2 -2
- package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
- package/lib/base-app-domain/Oper/Storage.js +29 -29
- package/lib/base-app-domain/OperEntity/Schema.d.ts +193 -193
- package/lib/base-app-domain/OperEntity/Schema.js +2 -2
- package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/OperEntity/Storage.js +26 -26
- package/lib/base-app-domain/Storage.d.ts +3 -3
- package/lib/base-app-domain/Storage.js +15 -15
- package/lib/base-app-domain/User/Schema.d.ts +137 -137
- package/lib/base-app-domain/User/Schema.js +2 -2
- package/lib/base-app-domain/User/Storage.d.ts +3 -3
- package/lib/base-app-domain/User/Storage.js +25 -25
- package/lib/base-app-domain/_SubQuery.d.ts +36 -36
- package/lib/base-app-domain/_SubQuery.js +2 -2
- package/lib/base-app-domain/index.d.ts +3 -3
- package/lib/base-app-domain/index.js +6 -6
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +8 -8
- package/lib/compiler/env.d.ts +11 -11
- package/lib/compiler/env.js +39 -39
- package/lib/compiler/schemalBuilder.d.ts +2 -2
- package/lib/compiler/schemalBuilder.js +3137 -3137
- package/lib/compiler/uiBuilder.d.ts +1 -1
- package/lib/compiler/uiBuilder.js +3 -3
- package/lib/entities/Modi.d.ts +11 -11
- package/lib/entities/Modi.js +46 -46
- package/lib/entities/ModiEntity.d.ts +8 -8
- package/lib/entities/ModiEntity.js +15 -15
- package/lib/entities/Oper.d.ts +10 -10
- package/lib/entities/Oper.js +17 -17
- package/lib/entities/OperEntity.d.ts +8 -8
- package/lib/entities/OperEntity.js +15 -15
- package/lib/entities/User.d.ts +7 -7
- package/lib/entities/User.js +12 -12
- package/lib/store/AsyncRowStore.d.ts +45 -45
- package/lib/store/AsyncRowStore.js +180 -180
- package/lib/store/CascadeStore.d.ts +89 -89
- package/lib/store/CascadeStore.js +1515 -1511
- package/lib/store/SyncRowStore.d.ts +26 -26
- package/lib/store/SyncRowStore.js +45 -45
- package/lib/store/TriggerExecutor.d.ts +32 -32
- package/lib/store/TriggerExecutor.js +470 -470
- package/lib/store/actionDef.d.ts +9 -9
- package/lib/store/actionDef.js +135 -135
- package/lib/store/checker.d.ts +6 -6
- package/lib/store/checker.js +218 -165
- package/lib/store/filter.d.ts +99 -99
- package/lib/store/filter.js +855 -855
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +172 -172
- package/lib/store/relation.d.ts +13 -13
- package/lib/store/relation.js +64 -64
- package/lib/store/selection.d.ts +7 -7
- package/lib/store/selection.js +228 -228
- package/lib/triggers/index.d.ts +6 -6
- package/lib/triggers/index.js +11 -11
- package/lib/triggers/modi.d.ts +5 -5
- package/lib/triggers/modi.js +72 -72
- package/lib/types/Action.d.ts +14 -14
- package/lib/types/Action.js +2 -2
- package/lib/types/AppLoader.d.ts +11 -11
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Aspect.d.ts +12 -12
- package/lib/types/Aspect.js +4 -4
- package/lib/types/Auth.d.ts +57 -31
- package/lib/types/Auth.js +2 -2
- package/lib/types/Connector.d.ts +26 -26
- package/lib/types/Connector.js +9 -9
- package/lib/types/Context.d.ts +6 -6
- package/lib/types/Context.js +3 -3
- package/lib/types/DataType.d.ts +18 -18
- package/lib/types/DataType.js +5 -5
- package/lib/types/Demand.d.ts +77 -77
- package/lib/types/Demand.js +9 -9
- package/lib/types/Entity.d.ts +159 -159
- package/lib/types/Entity.js +15 -15
- package/lib/types/Exception.d.ts +83 -83
- package/lib/types/Exception.js +252 -252
- package/lib/types/Expression.d.ts +141 -141
- package/lib/types/Expression.js +387 -387
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Geo.js +2 -2
- package/lib/types/Locale.d.ts +24 -24
- package/lib/types/Locale.js +2 -2
- package/lib/types/Logger.d.ts +5 -5
- package/lib/types/Logger.js +3 -3
- package/lib/types/Polyfill.d.ts +23 -23
- package/lib/types/Polyfill.js +2 -2
- package/lib/types/RowStore.d.ts +12 -12
- package/lib/types/RowStore.js +34 -34
- package/lib/types/Storage.d.ts +55 -55
- package/lib/types/Storage.js +2 -2
- package/lib/types/Trigger.d.ts +88 -89
- package/lib/types/Trigger.js +39 -39
- package/lib/types/Txn.d.ts +2 -2
- package/lib/types/Txn.js +3 -3
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/Watcher.js +4 -4
- package/lib/types/index.d.ts +18 -18
- package/lib/types/index.js +21 -21
- package/lib/types/schema/DataTypes.d.ts +32 -32
- package/lib/types/schema/DataTypes.js +3 -3
- package/lib/utils/SimpleConnector.d.ts +30 -30
- package/lib/utils/SimpleConnector.js +102 -102
- 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 +89 -89
- package/lib/utils/geo.d.ts +4 -4
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +5 -5
- package/lib/utils/lodash.js +38 -38
- package/lib/utils/random/random.d.ts +1 -1
- package/lib/utils/random/random.js +24 -24
- package/lib/utils/random/random.mp.d.ts +1 -1
- package/lib/utils/random/random.mp.js +25 -25
- package/lib/utils/random/random.web.d.ts +1 -1
- package/lib/utils/random/random.web.js +17 -17
- package/lib/utils/string.d.ts +22 -22
- package/lib/utils/string.js +70 -70
- package/lib/utils/uuid.d.ts +12 -12
- package/lib/utils/uuid.js +182 -182
- package/lib/utils/validator.d.ts +23 -23
- package/lib/utils/validator.js +123 -123
- package/package.json +47 -47
- package/src/entities/Modi.ts +68 -68
- package/src/entities/ModiEntity.ts +24 -24
- package/src/entities/Oper.ts +28 -28
- package/src/entities/OperEntity.ts +24 -24
- package/src/entities/User.ts +19 -19
package/lib/types/Geo.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export declare type Point = [number, number];
|
|
2
|
-
export declare type Path = Array<Point>;
|
|
3
|
-
export declare type Polygon = Array<Path>;
|
|
4
|
-
export declare type Circle = [Point, number];
|
|
5
|
-
export declare type SingleGeo = {
|
|
6
|
-
type: 'point';
|
|
7
|
-
coordinate: Point;
|
|
8
|
-
} | {
|
|
9
|
-
type: 'path';
|
|
10
|
-
coordinate: Path;
|
|
11
|
-
} | {
|
|
12
|
-
type: 'polygon';
|
|
13
|
-
coordinate: Polygon;
|
|
14
|
-
} | {
|
|
15
|
-
type: 'circle';
|
|
16
|
-
coordinate: Circle;
|
|
17
|
-
};
|
|
18
|
-
export declare type Geo = SingleGeo | SingleGeo[];
|
|
1
|
+
export declare type Point = [number, number];
|
|
2
|
+
export declare type Path = Array<Point>;
|
|
3
|
+
export declare type Polygon = Array<Path>;
|
|
4
|
+
export declare type Circle = [Point, number];
|
|
5
|
+
export declare type SingleGeo = {
|
|
6
|
+
type: 'point';
|
|
7
|
+
coordinate: Point;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'path';
|
|
10
|
+
coordinate: Path;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'polygon';
|
|
13
|
+
coordinate: Polygon;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'circle';
|
|
16
|
+
coordinate: Circle;
|
|
17
|
+
};
|
|
18
|
+
export declare type Geo = SingleGeo | SingleGeo[];
|
package/lib/types/Geo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { EntityShape } from "./Entity";
|
|
2
|
-
declare type Language = 'zh_CN' | 'en_US';
|
|
3
|
-
declare type LocaleOfSchema<S extends Record<string, any>> = {
|
|
4
|
-
[A in keyof Required<Omit<S, keyof EntityShape>>]: string;
|
|
5
|
-
};
|
|
6
|
-
declare type LocaleOfStringEnum<A extends string> = {
|
|
7
|
-
[K in A]: string;
|
|
8
|
-
};
|
|
9
|
-
declare type LocaleOfValue<V extends Record<string, string>> = {
|
|
10
|
-
[K in keyof V]: {
|
|
11
|
-
[K2 in V[K]]: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export declare type LocaleDef<Sc extends Record<string, any>, Ac extends string, R extends string, V extends Record<string, string>> = {
|
|
15
|
-
[L in Language]?: {
|
|
16
|
-
attr: LocaleOfSchema<Sc> & {
|
|
17
|
-
[A in keyof V]: string;
|
|
18
|
-
};
|
|
19
|
-
action?: LocaleOfStringEnum<Ac>;
|
|
20
|
-
r?: LocaleOfStringEnum<R>;
|
|
21
|
-
v?: LocaleOfValue<V>;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
export {};
|
|
1
|
+
import { EntityShape } from "./Entity";
|
|
2
|
+
declare type Language = 'zh_CN' | 'en_US';
|
|
3
|
+
declare type LocaleOfSchema<S extends Record<string, any>> = {
|
|
4
|
+
[A in keyof Required<Omit<S, keyof EntityShape>>]: string;
|
|
5
|
+
};
|
|
6
|
+
declare type LocaleOfStringEnum<A extends string> = {
|
|
7
|
+
[K in A]: string;
|
|
8
|
+
};
|
|
9
|
+
declare type LocaleOfValue<V extends Record<string, string>> = {
|
|
10
|
+
[K in keyof V]: {
|
|
11
|
+
[K2 in V[K]]: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare type LocaleDef<Sc extends Record<string, any>, Ac extends string, R extends string, V extends Record<string, string>> = {
|
|
15
|
+
[L in Language]?: {
|
|
16
|
+
attr: LocaleOfSchema<Sc> & {
|
|
17
|
+
[A in keyof V]: string;
|
|
18
|
+
};
|
|
19
|
+
action?: LocaleOfStringEnum<Ac>;
|
|
20
|
+
r?: LocaleOfStringEnum<R>;
|
|
21
|
+
v?: LocaleOfValue<V>;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export {};
|
package/lib/types/Locale.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/lib/types/Logger.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface Logger {
|
|
2
|
-
error(...data: any[]): void;
|
|
3
|
-
info(...data: any[]): void;
|
|
4
|
-
log(...data: any[]): void;
|
|
5
|
-
}
|
|
1
|
+
export interface Logger {
|
|
2
|
+
error(...data: any[]): void;
|
|
3
|
+
info(...data: any[]): void;
|
|
4
|
+
log(...data: any[]): void;
|
|
5
|
+
}
|
package/lib/types/Logger.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
;
|
package/lib/types/Polyfill.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export declare type OmitInferKey<T, R> = {
|
|
2
|
-
[K in keyof T as T extends R ? never : K]: T[K];
|
|
3
|
-
};
|
|
4
|
-
export declare type OmitInferValue<T, R> = {
|
|
5
|
-
[K in keyof T as T extends R ? never : K]: T[K];
|
|
6
|
-
};
|
|
7
|
-
export declare type ValueOf<Obj> = Obj[keyof Obj];
|
|
8
|
-
export declare type OneOnly<Obj, Key extends keyof Obj> = {
|
|
9
|
-
[key in Exclude<keyof Obj, Key>]?: undefined;
|
|
10
|
-
} & Pick<Obj, Key>;
|
|
11
|
-
export declare type OneOfByKey<Obj> = {
|
|
12
|
-
[key in keyof Obj]: OneOnly<Obj, key>;
|
|
13
|
-
};
|
|
14
|
-
export declare type OneOf<Obj> = ValueOf<OneOfByKey<Obj>>;
|
|
15
|
-
declare type IsOptional<T, K extends keyof T> = {
|
|
16
|
-
[K1 in Exclude<keyof T, K>]: T[K1];
|
|
17
|
-
} & {
|
|
18
|
-
K?: T[K];
|
|
19
|
-
} extends T ? K : never;
|
|
20
|
-
export declare type OptionalKeys<T> = {
|
|
21
|
-
[K in keyof T]: IsOptional<T, K>;
|
|
22
|
-
}[keyof T];
|
|
23
|
-
export {};
|
|
1
|
+
export declare type OmitInferKey<T, R> = {
|
|
2
|
+
[K in keyof T as T extends R ? never : K]: T[K];
|
|
3
|
+
};
|
|
4
|
+
export declare type OmitInferValue<T, R> = {
|
|
5
|
+
[K in keyof T as T extends R ? never : K]: T[K];
|
|
6
|
+
};
|
|
7
|
+
export declare type ValueOf<Obj> = Obj[keyof Obj];
|
|
8
|
+
export declare type OneOnly<Obj, Key extends keyof Obj> = {
|
|
9
|
+
[key in Exclude<keyof Obj, Key>]?: undefined;
|
|
10
|
+
} & Pick<Obj, Key>;
|
|
11
|
+
export declare type OneOfByKey<Obj> = {
|
|
12
|
+
[key in keyof Obj]: OneOnly<Obj, key>;
|
|
13
|
+
};
|
|
14
|
+
export declare type OneOf<Obj> = ValueOf<OneOfByKey<Obj>>;
|
|
15
|
+
declare type IsOptional<T, K extends keyof T> = {
|
|
16
|
+
[K1 in Exclude<keyof T, K>]: T[K1];
|
|
17
|
+
} & {
|
|
18
|
+
K?: T[K];
|
|
19
|
+
} extends T ? K : never;
|
|
20
|
+
export declare type OptionalKeys<T> = {
|
|
21
|
+
[K in keyof T]: IsOptional<T, K>;
|
|
22
|
+
}[keyof T];
|
|
23
|
+
export {};
|
package/lib/types/Polyfill.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/lib/types/RowStore.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { OperationResult, EntityDict } from './Entity';
|
|
2
|
-
import { StorageSchema } from './Storage';
|
|
3
|
-
export declare type TxnOption = {
|
|
4
|
-
isolationLevel: 'repeatable read' | 'serializable';
|
|
5
|
-
};
|
|
6
|
-
export declare abstract class RowStore<ED extends EntityDict> {
|
|
7
|
-
protected storageSchema: StorageSchema<ED>;
|
|
8
|
-
constructor(storageSchema: StorageSchema<ED>);
|
|
9
|
-
getSchema(): StorageSchema<ED>;
|
|
10
|
-
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): void;
|
|
11
|
-
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
12
|
-
}
|
|
1
|
+
import { OperationResult, EntityDict } from './Entity';
|
|
2
|
+
import { StorageSchema } from './Storage';
|
|
3
|
+
export declare type TxnOption = {
|
|
4
|
+
isolationLevel: 'repeatable read' | 'serializable';
|
|
5
|
+
};
|
|
6
|
+
export declare abstract class RowStore<ED extends EntityDict> {
|
|
7
|
+
protected storageSchema: StorageSchema<ED>;
|
|
8
|
+
constructor(storageSchema: StorageSchema<ED>);
|
|
9
|
+
getSchema(): StorageSchema<ED>;
|
|
10
|
+
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): void;
|
|
11
|
+
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
12
|
+
}
|
package/lib/types/RowStore.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RowStore = void 0;
|
|
4
|
-
var lodash_1 = require("../utils/lodash");
|
|
5
|
-
var RowStore = /** @class */ (function () {
|
|
6
|
-
function RowStore(storageSchema) {
|
|
7
|
-
this.storageSchema = storageSchema;
|
|
8
|
-
}
|
|
9
|
-
RowStore.prototype.getSchema = function () {
|
|
10
|
-
return this.storageSchema;
|
|
11
|
-
};
|
|
12
|
-
RowStore.prototype.mergeOperationResult = function (result, toBeMerged) {
|
|
13
|
-
for (var entity in toBeMerged) {
|
|
14
|
-
for (var action in toBeMerged[entity]) {
|
|
15
|
-
var value = (0, lodash_1.get)(result, "".concat(entity, ".").concat(action));
|
|
16
|
-
if (typeof value === 'number') {
|
|
17
|
-
(0, lodash_1.set)(result, "".concat(entity, ".").concat(action), value + toBeMerged[entity][action]);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
(0, lodash_1.set)(result, "".concat(entity, ".").concat(action), toBeMerged[entity][action]);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
RowStore.prototype.mergeMultipleResults = function (toBeMerged) {
|
|
26
|
-
var _this = this;
|
|
27
|
-
var result = {};
|
|
28
|
-
toBeMerged.forEach(function (ele) { return _this.mergeOperationResult(result, ele); });
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
return RowStore;
|
|
32
|
-
}());
|
|
33
|
-
exports.RowStore = RowStore;
|
|
34
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RowStore = void 0;
|
|
4
|
+
var lodash_1 = require("../utils/lodash");
|
|
5
|
+
var RowStore = /** @class */ (function () {
|
|
6
|
+
function RowStore(storageSchema) {
|
|
7
|
+
this.storageSchema = storageSchema;
|
|
8
|
+
}
|
|
9
|
+
RowStore.prototype.getSchema = function () {
|
|
10
|
+
return this.storageSchema;
|
|
11
|
+
};
|
|
12
|
+
RowStore.prototype.mergeOperationResult = function (result, toBeMerged) {
|
|
13
|
+
for (var entity in toBeMerged) {
|
|
14
|
+
for (var action in toBeMerged[entity]) {
|
|
15
|
+
var value = (0, lodash_1.get)(result, "".concat(entity, ".").concat(action));
|
|
16
|
+
if (typeof value === 'number') {
|
|
17
|
+
(0, lodash_1.set)(result, "".concat(entity, ".").concat(action), value + toBeMerged[entity][action]);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
(0, lodash_1.set)(result, "".concat(entity, ".").concat(action), toBeMerged[entity][action]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
RowStore.prototype.mergeMultipleResults = function (toBeMerged) {
|
|
26
|
+
var _this = this;
|
|
27
|
+
var result = {};
|
|
28
|
+
toBeMerged.forEach(function (ele) { return _this.mergeOperationResult(result, ele); });
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
return RowStore;
|
|
32
|
+
}());
|
|
33
|
+
exports.RowStore = RowStore;
|
|
34
|
+
;
|
package/lib/types/Storage.d.ts
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { ActionType } from '.';
|
|
2
|
-
import { EntityDict, EntityShape, InstinctiveAttributes } from './Entity';
|
|
3
|
-
import { DataType, DataTypeParams } from './schema/DataTypes';
|
|
4
|
-
export declare type Ref = 'ref';
|
|
5
|
-
export interface Column<SH extends EntityShape> {
|
|
6
|
-
name: keyof SH | `${string}State`;
|
|
7
|
-
size?: number;
|
|
8
|
-
direction?: 'ASC' | 'DESC';
|
|
9
|
-
}
|
|
10
|
-
export interface IndexConfig {
|
|
11
|
-
unique?: boolean;
|
|
12
|
-
type?: 'fulltext' | 'btree' | 'hash' | 'spatial';
|
|
13
|
-
parser?: 'ngram';
|
|
14
|
-
}
|
|
15
|
-
export interface Index<SH extends EntityShape> {
|
|
16
|
-
name: string;
|
|
17
|
-
attributes: Column<SH>[];
|
|
18
|
-
config?: IndexConfig;
|
|
19
|
-
}
|
|
20
|
-
export interface Attribute {
|
|
21
|
-
type: DataType | Ref;
|
|
22
|
-
params?: DataTypeParams;
|
|
23
|
-
ref?: string;
|
|
24
|
-
onRefDelete?: 'delete' | 'setNull' | 'ignore';
|
|
25
|
-
default?: string | number | boolean;
|
|
26
|
-
notNull?: boolean;
|
|
27
|
-
unique?: boolean;
|
|
28
|
-
sequenceStart?: number;
|
|
29
|
-
}
|
|
30
|
-
export declare type Attributes<SH extends EntityShape> = Omit<{
|
|
31
|
-
[attrName in keyof SH]: Attribute;
|
|
32
|
-
}, InstinctiveAttributes>;
|
|
33
|
-
export interface EntityConfig {
|
|
34
|
-
}
|
|
35
|
-
export declare type UniqConstraint<SH extends EntityShape> = {
|
|
36
|
-
attributes: Array<keyof SH>;
|
|
37
|
-
type?: string;
|
|
38
|
-
};
|
|
39
|
-
export interface StorageDesc<SH extends EntityShape> {
|
|
40
|
-
storageName?: string;
|
|
41
|
-
comment?: string;
|
|
42
|
-
attributes: Attributes<SH>;
|
|
43
|
-
uniqueConstraints?: UniqConstraint<SH>[];
|
|
44
|
-
indexes?: Index<SH>[];
|
|
45
|
-
config?: EntityConfig;
|
|
46
|
-
toModi?: true;
|
|
47
|
-
inModi?: true;
|
|
48
|
-
static?: true;
|
|
49
|
-
actions: string[];
|
|
50
|
-
actionType: ActionType;
|
|
51
|
-
view?: true;
|
|
52
|
-
}
|
|
53
|
-
export declare type StorageSchema<ED extends EntityDict> = {
|
|
54
|
-
[K in keyof ED]: StorageDesc<ED[K]['OpSchema']>;
|
|
55
|
-
};
|
|
1
|
+
import { ActionType } from '.';
|
|
2
|
+
import { EntityDict, EntityShape, InstinctiveAttributes } from './Entity';
|
|
3
|
+
import { DataType, DataTypeParams } from './schema/DataTypes';
|
|
4
|
+
export declare type Ref = 'ref';
|
|
5
|
+
export interface Column<SH extends EntityShape> {
|
|
6
|
+
name: keyof SH | `${string}State`;
|
|
7
|
+
size?: number;
|
|
8
|
+
direction?: 'ASC' | 'DESC';
|
|
9
|
+
}
|
|
10
|
+
export interface IndexConfig {
|
|
11
|
+
unique?: boolean;
|
|
12
|
+
type?: 'fulltext' | 'btree' | 'hash' | 'spatial';
|
|
13
|
+
parser?: 'ngram';
|
|
14
|
+
}
|
|
15
|
+
export interface Index<SH extends EntityShape> {
|
|
16
|
+
name: string;
|
|
17
|
+
attributes: Column<SH>[];
|
|
18
|
+
config?: IndexConfig;
|
|
19
|
+
}
|
|
20
|
+
export interface Attribute {
|
|
21
|
+
type: DataType | Ref;
|
|
22
|
+
params?: DataTypeParams;
|
|
23
|
+
ref?: string;
|
|
24
|
+
onRefDelete?: 'delete' | 'setNull' | 'ignore';
|
|
25
|
+
default?: string | number | boolean;
|
|
26
|
+
notNull?: boolean;
|
|
27
|
+
unique?: boolean;
|
|
28
|
+
sequenceStart?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare type Attributes<SH extends EntityShape> = Omit<{
|
|
31
|
+
[attrName in keyof SH]: Attribute;
|
|
32
|
+
}, InstinctiveAttributes>;
|
|
33
|
+
export interface EntityConfig {
|
|
34
|
+
}
|
|
35
|
+
export declare type UniqConstraint<SH extends EntityShape> = {
|
|
36
|
+
attributes: Array<keyof SH>;
|
|
37
|
+
type?: string;
|
|
38
|
+
};
|
|
39
|
+
export interface StorageDesc<SH extends EntityShape> {
|
|
40
|
+
storageName?: string;
|
|
41
|
+
comment?: string;
|
|
42
|
+
attributes: Attributes<SH>;
|
|
43
|
+
uniqueConstraints?: UniqConstraint<SH>[];
|
|
44
|
+
indexes?: Index<SH>[];
|
|
45
|
+
config?: EntityConfig;
|
|
46
|
+
toModi?: true;
|
|
47
|
+
inModi?: true;
|
|
48
|
+
static?: true;
|
|
49
|
+
actions: string[];
|
|
50
|
+
actionType: ActionType;
|
|
51
|
+
view?: true;
|
|
52
|
+
}
|
|
53
|
+
export declare type StorageSchema<ED extends EntityDict> = {
|
|
54
|
+
[K in keyof ED]: StorageDesc<ED[K]['OpSchema']>;
|
|
55
|
+
};
|
package/lib/types/Storage.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/lib/types/Trigger.d.ts
CHANGED
|
@@ -1,89 +1,88 @@
|
|
|
1
|
-
import { SelectOption } from ".";
|
|
2
|
-
import { GenericAction } from "../actions/action";
|
|
3
|
-
import { AsyncContext } from "../store/AsyncRowStore";
|
|
4
|
-
import { SyncContext } from "../store/SyncRowStore";
|
|
5
|
-
import { EntityDict, OperateOption } from "../types/Entity";
|
|
6
|
-
import { EntityShape } from "../types/Entity";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
export declare type
|
|
81
|
-
export
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
export {};
|
|
1
|
+
import { SelectOption, CheckerType } from ".";
|
|
2
|
+
import { GenericAction } from "../actions/action";
|
|
3
|
+
import { AsyncContext } from "../store/AsyncRowStore";
|
|
4
|
+
import { SyncContext } from "../store/SyncRowStore";
|
|
5
|
+
import { EntityDict, OperateOption } from "../types/Entity";
|
|
6
|
+
import { EntityShape } from "../types/Entity";
|
|
7
|
+
interface TriggerBase<ED extends EntityDict, T extends keyof ED> {
|
|
8
|
+
checkerType?: CheckerType;
|
|
9
|
+
entity: T;
|
|
10
|
+
name: string;
|
|
11
|
+
priority?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface CreateTriggerBase<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends TriggerBase<ED, T> {
|
|
14
|
+
action: 'create';
|
|
15
|
+
check?: (operation: ED[T]['Create']) => boolean;
|
|
16
|
+
fn: (event: {
|
|
17
|
+
operation: ED[T]['Create'];
|
|
18
|
+
}, context: Cxt, option: OperateOption) => Promise<number> | number;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateTriggerInTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends CreateTriggerBase<ED, T, Cxt> {
|
|
21
|
+
when: 'before' | 'after';
|
|
22
|
+
}
|
|
23
|
+
export interface CreateTriggerCrossTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends CreateTriggerBase<ED, T, Cxt> {
|
|
24
|
+
when: 'commit';
|
|
25
|
+
strict?: 'takeEasy' | 'makeSure';
|
|
26
|
+
}
|
|
27
|
+
export declare type CreateTrigger<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = CreateTriggerInTxn<ED, T, Cxt> | CreateTriggerCrossTxn<ED, T, Cxt>;
|
|
28
|
+
export interface UpdateTriggerBase<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends TriggerBase<ED, T> {
|
|
29
|
+
action: Exclude<ED[T]['Action'], GenericAction> | 'update' | Array<Exclude<ED[T]['Action'], GenericAction> | 'update'>;
|
|
30
|
+
attributes?: keyof ED[T]['OpSchema'] | Array<keyof ED[T]['OpSchema']>;
|
|
31
|
+
check?: (operation: ED[T]['Update']) => boolean;
|
|
32
|
+
fn: (event: {
|
|
33
|
+
operation: ED[T]['Update'];
|
|
34
|
+
}, context: Cxt, option: OperateOption) => Promise<number> | number;
|
|
35
|
+
}
|
|
36
|
+
export interface UpdateTriggerInTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends UpdateTriggerBase<ED, T, Cxt> {
|
|
37
|
+
when: 'before' | 'after';
|
|
38
|
+
}
|
|
39
|
+
export interface UpdateTriggerCrossTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends UpdateTriggerBase<ED, T, Cxt> {
|
|
40
|
+
when: 'commit';
|
|
41
|
+
strict?: 'takeEasy' | 'makeSure';
|
|
42
|
+
}
|
|
43
|
+
export declare type UpdateTrigger<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = UpdateTriggerInTxn<ED, T, Cxt> | UpdateTriggerCrossTxn<ED, T, Cxt>;
|
|
44
|
+
export interface RemoveTriggerBase<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends TriggerBase<ED, T> {
|
|
45
|
+
action: 'remove';
|
|
46
|
+
check?: (operation: ED[T]['Remove']) => boolean;
|
|
47
|
+
fn: (event: {
|
|
48
|
+
operation: ED[T]['Remove'];
|
|
49
|
+
}, context: Cxt, option: OperateOption) => Promise<number> | number;
|
|
50
|
+
}
|
|
51
|
+
export interface RemoveTriggerInTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends RemoveTriggerBase<ED, T, Cxt> {
|
|
52
|
+
when: 'before' | 'after';
|
|
53
|
+
}
|
|
54
|
+
export interface RemoveTriggerCrossTxn<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends RemoveTriggerBase<ED, T, Cxt> {
|
|
55
|
+
when: 'commit';
|
|
56
|
+
strict?: 'takeEasy' | 'makeSure';
|
|
57
|
+
}
|
|
58
|
+
export declare type RemoveTrigger<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = RemoveTriggerInTxn<ED, T, Cxt> | RemoveTriggerCrossTxn<ED, T, Cxt>;
|
|
59
|
+
export interface SelectTriggerBase<ED extends EntityDict, T extends keyof ED> extends TriggerBase<ED, T> {
|
|
60
|
+
action: 'select';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* selection似乎不需要支持跨事务?没想清楚
|
|
64
|
+
* todo by Xc
|
|
65
|
+
*/
|
|
66
|
+
export interface SelectTriggerBefore<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends SelectTriggerBase<ED, T> {
|
|
67
|
+
when: 'before';
|
|
68
|
+
fn: (event: {
|
|
69
|
+
operation: ED[T]['Selection'];
|
|
70
|
+
}, context: Cxt, params?: SelectOption) => Promise<number> | number;
|
|
71
|
+
}
|
|
72
|
+
export interface SelectTriggerAfter<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> extends SelectTriggerBase<ED, T> {
|
|
73
|
+
when: 'after';
|
|
74
|
+
fn: (event: {
|
|
75
|
+
operation: ED[T]['Selection'];
|
|
76
|
+
result: Partial<ED[T]['Schema']>[];
|
|
77
|
+
}, context: Cxt, params?: SelectOption) => Promise<number> | number;
|
|
78
|
+
}
|
|
79
|
+
export declare type SelectTrigger<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = SelectTriggerBefore<ED, T, Cxt> | SelectTriggerAfter<ED, T, Cxt>;
|
|
80
|
+
export declare type Trigger<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = CreateTrigger<ED, T, Cxt> | UpdateTrigger<ED, T, Cxt> | RemoveTrigger<ED, T, Cxt> | SelectTrigger<ED, T, Cxt>;
|
|
81
|
+
export interface TriggerEntityShape extends EntityShape {
|
|
82
|
+
$$triggerData$$?: {
|
|
83
|
+
name: string;
|
|
84
|
+
operation: object;
|
|
85
|
+
};
|
|
86
|
+
$$triggerTimestamp$$?: number;
|
|
87
|
+
}
|
|
88
|
+
export {};
|