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/Trigger.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
;
|
|
4
|
-
;
|
|
5
|
-
;
|
|
6
|
-
;
|
|
7
|
-
;
|
|
8
|
-
;
|
|
9
|
-
;
|
|
10
|
-
;
|
|
11
|
-
;
|
|
12
|
-
;
|
|
13
|
-
;
|
|
14
|
-
;
|
|
15
|
-
;
|
|
16
|
-
;
|
|
17
|
-
/* export abstract class Executor<ED extends EntityDict, Cxt extends AsyncContext<ED>> {
|
|
18
|
-
static dataAttr: TriggerDataAttribute = '$$triggerData$$';
|
|
19
|
-
static timestampAttr: TriggerTimestampAttribute = '$$triggerTimestamp$$';
|
|
20
|
-
|
|
21
|
-
abstract registerTrigger<T extends keyof ED>(trigger: Trigger<ED, T>): void;
|
|
22
|
-
|
|
23
|
-
abstract preOperation<T extends keyof ED>(
|
|
24
|
-
entity: T,
|
|
25
|
-
operation: ED[T]['Operation'] | ED[T]['Selection'] & { action: 'select' },
|
|
26
|
-
context: Cxt,
|
|
27
|
-
option: OperateOption | SelectOption
|
|
28
|
-
): Promise<void>;
|
|
29
|
-
|
|
30
|
-
abstract postOperation<T extends keyof ED>(
|
|
31
|
-
entity: T,
|
|
32
|
-
operation: ED[T]['Operation'] | ED[T]['Selection'] & { action: 'select' },
|
|
33
|
-
context: Cxt,
|
|
34
|
-
option: OperateOption | SelectOption,
|
|
35
|
-
result?: SelectRowShape<ED[T]['Schema'], ED[T]['Selection']['data']>[]
|
|
36
|
-
): Promise<void>;
|
|
37
|
-
|
|
38
|
-
abstract checkpoint(context: Cxt, timestamp: number): Promise<number>; // 将所有在timestamp之前存在不一致的数据进行恢复
|
|
39
|
-
} */
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
;
|
|
4
|
+
;
|
|
5
|
+
;
|
|
6
|
+
;
|
|
7
|
+
;
|
|
8
|
+
;
|
|
9
|
+
;
|
|
10
|
+
;
|
|
11
|
+
;
|
|
12
|
+
;
|
|
13
|
+
;
|
|
14
|
+
;
|
|
15
|
+
;
|
|
16
|
+
;
|
|
17
|
+
/* export abstract class Executor<ED extends EntityDict, Cxt extends AsyncContext<ED>> {
|
|
18
|
+
static dataAttr: TriggerDataAttribute = '$$triggerData$$';
|
|
19
|
+
static timestampAttr: TriggerTimestampAttribute = '$$triggerTimestamp$$';
|
|
20
|
+
|
|
21
|
+
abstract registerTrigger<T extends keyof ED>(trigger: Trigger<ED, T>): void;
|
|
22
|
+
|
|
23
|
+
abstract preOperation<T extends keyof ED>(
|
|
24
|
+
entity: T,
|
|
25
|
+
operation: ED[T]['Operation'] | ED[T]['Selection'] & { action: 'select' },
|
|
26
|
+
context: Cxt,
|
|
27
|
+
option: OperateOption | SelectOption
|
|
28
|
+
): Promise<void>;
|
|
29
|
+
|
|
30
|
+
abstract postOperation<T extends keyof ED>(
|
|
31
|
+
entity: T,
|
|
32
|
+
operation: ED[T]['Operation'] | ED[T]['Selection'] & { action: 'select' },
|
|
33
|
+
context: Cxt,
|
|
34
|
+
option: OperateOption | SelectOption,
|
|
35
|
+
result?: SelectRowShape<ED[T]['Schema'], ED[T]['Selection']['data']>[]
|
|
36
|
+
): Promise<void>;
|
|
37
|
+
|
|
38
|
+
abstract checkpoint(context: Cxt, timestamp: number): Promise<number>; // 将所有在timestamp之前存在不一致的数据进行恢复
|
|
39
|
+
} */
|
package/lib/types/Txn.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export interface Txn {
|
|
2
|
-
}
|
|
1
|
+
export interface Txn {
|
|
2
|
+
}
|
package/lib/types/Txn.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/Watcher.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { AsyncContext } from "../store/AsyncRowStore";
|
|
2
|
-
import { EntityDict, OperationResult } from "./Entity";
|
|
3
|
-
declare type ActionData<ED extends EntityDict, T extends keyof ED> = ED[T]['Update']['data'] | ED[T]['Remove']['data'];
|
|
4
|
-
export interface BBWatcher<ED extends EntityDict, T extends keyof ED> {
|
|
5
|
-
name: string;
|
|
6
|
-
entity: T;
|
|
7
|
-
filter: ED[T]['Selection']['filter'] | (() => ED[T]['Selection']['filter']);
|
|
8
|
-
action: ED[T]['Operation']['action'];
|
|
9
|
-
actionData: ActionData<ED, T> | (() => ActionData<ED, T>);
|
|
10
|
-
}
|
|
11
|
-
export interface WBWatcher<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>> {
|
|
12
|
-
name: string;
|
|
13
|
-
entity: T;
|
|
14
|
-
filter: ED[T]['Selection']['filter'] | (() => Promise<ED[T]['Selection']['filter']>);
|
|
15
|
-
projection: ED[T]['Selection']['data'] | (() => Promise<ED[T]['Selection']['data']>);
|
|
16
|
-
fn: (context: Cxt, data: Partial<ED[T]['Schema']>[]) => Promise<OperationResult<ED>>;
|
|
17
|
-
}
|
|
18
|
-
export declare type Watcher<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>> = BBWatcher<ED, T> | WBWatcher<ED, T, Cxt>;
|
|
19
|
-
export {};
|
|
1
|
+
import { AsyncContext } from "../store/AsyncRowStore";
|
|
2
|
+
import { EntityDict, OperationResult } from "./Entity";
|
|
3
|
+
declare type ActionData<ED extends EntityDict, T extends keyof ED> = ED[T]['Update']['data'] | ED[T]['Remove']['data'];
|
|
4
|
+
export interface BBWatcher<ED extends EntityDict, T extends keyof ED> {
|
|
5
|
+
name: string;
|
|
6
|
+
entity: T;
|
|
7
|
+
filter: ED[T]['Selection']['filter'] | (() => ED[T]['Selection']['filter']);
|
|
8
|
+
action: ED[T]['Operation']['action'];
|
|
9
|
+
actionData: ActionData<ED, T> | (() => ActionData<ED, T>);
|
|
10
|
+
}
|
|
11
|
+
export interface WBWatcher<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>> {
|
|
12
|
+
name: string;
|
|
13
|
+
entity: T;
|
|
14
|
+
filter: ED[T]['Selection']['filter'] | (() => Promise<ED[T]['Selection']['filter']>);
|
|
15
|
+
projection: ED[T]['Selection']['data'] | (() => Promise<ED[T]['Selection']['data']>);
|
|
16
|
+
fn: (context: Cxt, data: Partial<ED[T]['Schema']>[]) => Promise<OperationResult<ED>>;
|
|
17
|
+
}
|
|
18
|
+
export declare type Watcher<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>> = BBWatcher<ED, T> | WBWatcher<ED, T, Cxt>;
|
|
19
|
+
export {};
|
package/lib/types/Watcher.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
;
|
|
4
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
;
|
|
4
|
+
;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export * from './Action';
|
|
2
|
-
export * from './Aspect';
|
|
3
|
-
export * from './Auth';
|
|
4
|
-
export * from './Context';
|
|
5
|
-
export * from './DataType';
|
|
6
|
-
export * from './Demand';
|
|
7
|
-
export * from './Entity';
|
|
8
|
-
export * from './Expression';
|
|
9
|
-
export * from './Geo';
|
|
10
|
-
export * from './Logger';
|
|
11
|
-
export * from './Polyfill';
|
|
12
|
-
export * from './RowStore';
|
|
13
|
-
export * from './Storage';
|
|
14
|
-
export * from './Trigger';
|
|
15
|
-
export * from './Exception';
|
|
16
|
-
export * from './Watcher';
|
|
17
|
-
export * from './AppLoader';
|
|
18
|
-
export * from './Connector';
|
|
1
|
+
export * from './Action';
|
|
2
|
+
export * from './Aspect';
|
|
3
|
+
export * from './Auth';
|
|
4
|
+
export * from './Context';
|
|
5
|
+
export * from './DataType';
|
|
6
|
+
export * from './Demand';
|
|
7
|
+
export * from './Entity';
|
|
8
|
+
export * from './Expression';
|
|
9
|
+
export * from './Geo';
|
|
10
|
+
export * from './Logger';
|
|
11
|
+
export * from './Polyfill';
|
|
12
|
+
export * from './RowStore';
|
|
13
|
+
export * from './Storage';
|
|
14
|
+
export * from './Trigger';
|
|
15
|
+
export * from './Exception';
|
|
16
|
+
export * from './Watcher';
|
|
17
|
+
export * from './AppLoader';
|
|
18
|
+
export * from './Connector';
|
package/lib/types/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./Action"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./Aspect"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./Auth"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./Context"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./DataType"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./Demand"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./Entity"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./Expression"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./Geo"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./Logger"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./Polyfill"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./RowStore"), exports);
|
|
16
|
-
tslib_1.__exportStar(require("./Storage"), exports);
|
|
17
|
-
tslib_1.__exportStar(require("./Trigger"), exports);
|
|
18
|
-
tslib_1.__exportStar(require("./Exception"), exports);
|
|
19
|
-
tslib_1.__exportStar(require("./Watcher"), exports);
|
|
20
|
-
tslib_1.__exportStar(require("./AppLoader"), exports);
|
|
21
|
-
tslib_1.__exportStar(require("./Connector"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./Action"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./Aspect"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./Auth"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./Context"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./DataType"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./Demand"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./Entity"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./Expression"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./Geo"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./Logger"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./Polyfill"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./RowStore"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./Storage"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./Trigger"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./Exception"), exports);
|
|
19
|
+
tslib_1.__exportStar(require("./Watcher"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./AppLoader"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./Connector"), exports);
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Column types used for @PrimaryGeneratedColumn() decorator.
|
|
3
|
-
*/
|
|
4
|
-
export declare type PrimaryGeneratedColumnType = "int" | "int2" | "int4" | "int8" | "integer" | "tinyint" | "smallint" | "mediumint" | "bigint" | "dec" | "decimal" | "smalldecimal" | "fixed" | "numeric" | "number";
|
|
5
|
-
/**
|
|
6
|
-
* Column types where spatial properties are used.
|
|
7
|
-
*/
|
|
8
|
-
export declare type SpatialColumnType = "geometry" | "geography" | "st_geometry" | "st_point";
|
|
9
|
-
/**
|
|
10
|
-
* Column types where precision and scale properties are used.
|
|
11
|
-
*/
|
|
12
|
-
export declare type WithPrecisionColumnType = "float" | "double" | "dec" | "decimal" | "smalldecimal" | "fixed" | "numeric" | "real" | "double precision" | "number" | "datetime" | "datetime2" | "datetimeoffset" | "time" | "time with time zone" | "time without time zone" | "timestamp" | "timestamp without time zone" | "timestamp with time zone" | "timestamp with local time zone";
|
|
13
|
-
/**
|
|
14
|
-
* Column types where column length is used.
|
|
15
|
-
*/
|
|
16
|
-
export declare type WithLengthColumnType = "character varying" | "varying character" | "char varying" | "nvarchar" | "national varchar" | "character" | "native character" | "varchar" | "char" | "nchar" | "national char" | "varchar2" | "nvarchar2" | "alphanum" | "shorttext" | "raw" | "binary" | "varbinary" | "string";
|
|
17
|
-
export declare type WithWidthColumnType = "tinyint" | "smallint" | "mediumint" | "int" | "bigint";
|
|
18
|
-
/**
|
|
19
|
-
* All other regular column types.
|
|
20
|
-
*/
|
|
21
|
-
export declare type SimpleColumnType = "simple-array" | "simple-json" | "simple-enum" | "int2" | "integer" | "int4" | "int8" | "int64" | "unsigned big int" | "float" | "float4" | "float8" | "smallmoney" | "money" | "boolean" | "bool" | "tinyblob" | "tinytext" | "mediumblob" | "mediumtext" | "blob" | "text" | "ntext" | "citext" | "hstore" | "longblob" | "longtext" | "alphanum" | "shorttext" | "bytes" | "bytea" | "long" | "raw" | "long raw" | "bfile" | "clob" | "nclob" | "image" | "timetz" | "timestamptz" | "timestamp with local time zone" | "smalldatetime" | "date" | "interval year to month" | "interval day to second" | "interval" | "year" | "seconddate" | "point" | "line" | "lseg" | "box" | "circle" | "path" | "polygon" | "geography" | "geometry" | "linestring" | "multipoint" | "multilinestring" | "multipolygon" | "geometrycollection" | "st_geometry" | "st_point" | "int4range" | "int8range" | "numrange" | "tsrange" | "tstzrange" | "daterange" | "enum" | "set" | "cidr" | "inet" | "macaddr" | "bit" | "bit varying" | "varbit" | "tsvector" | "tsquery" | "uuid" | "xml" | "json" | "jsonb" | "varbinary" | "hierarchyid" | "sql_variant" | "rowid" | "urowid" | "uniqueidentifier" | "rowversion" | "array" | "cube" | "ltree" | "object" | "array" | "function" | "sequence";
|
|
22
|
-
/**
|
|
23
|
-
* Any column type column can be.
|
|
24
|
-
*/
|
|
25
|
-
export declare type DataType = WithPrecisionColumnType | WithLengthColumnType | WithWidthColumnType | SpatialColumnType | SimpleColumnType;
|
|
26
|
-
export interface DataTypeParams {
|
|
27
|
-
length?: number;
|
|
28
|
-
width?: number;
|
|
29
|
-
precision?: number;
|
|
30
|
-
scale?: number;
|
|
31
|
-
signed?: boolean;
|
|
32
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Column types used for @PrimaryGeneratedColumn() decorator.
|
|
3
|
+
*/
|
|
4
|
+
export declare type PrimaryGeneratedColumnType = "int" | "int2" | "int4" | "int8" | "integer" | "tinyint" | "smallint" | "mediumint" | "bigint" | "dec" | "decimal" | "smalldecimal" | "fixed" | "numeric" | "number";
|
|
5
|
+
/**
|
|
6
|
+
* Column types where spatial properties are used.
|
|
7
|
+
*/
|
|
8
|
+
export declare type SpatialColumnType = "geometry" | "geography" | "st_geometry" | "st_point";
|
|
9
|
+
/**
|
|
10
|
+
* Column types where precision and scale properties are used.
|
|
11
|
+
*/
|
|
12
|
+
export declare type WithPrecisionColumnType = "float" | "double" | "dec" | "decimal" | "smalldecimal" | "fixed" | "numeric" | "real" | "double precision" | "number" | "datetime" | "datetime2" | "datetimeoffset" | "time" | "time with time zone" | "time without time zone" | "timestamp" | "timestamp without time zone" | "timestamp with time zone" | "timestamp with local time zone";
|
|
13
|
+
/**
|
|
14
|
+
* Column types where column length is used.
|
|
15
|
+
*/
|
|
16
|
+
export declare type WithLengthColumnType = "character varying" | "varying character" | "char varying" | "nvarchar" | "national varchar" | "character" | "native character" | "varchar" | "char" | "nchar" | "national char" | "varchar2" | "nvarchar2" | "alphanum" | "shorttext" | "raw" | "binary" | "varbinary" | "string";
|
|
17
|
+
export declare type WithWidthColumnType = "tinyint" | "smallint" | "mediumint" | "int" | "bigint";
|
|
18
|
+
/**
|
|
19
|
+
* All other regular column types.
|
|
20
|
+
*/
|
|
21
|
+
export declare type SimpleColumnType = "simple-array" | "simple-json" | "simple-enum" | "int2" | "integer" | "int4" | "int8" | "int64" | "unsigned big int" | "float" | "float4" | "float8" | "smallmoney" | "money" | "boolean" | "bool" | "tinyblob" | "tinytext" | "mediumblob" | "mediumtext" | "blob" | "text" | "ntext" | "citext" | "hstore" | "longblob" | "longtext" | "alphanum" | "shorttext" | "bytes" | "bytea" | "long" | "raw" | "long raw" | "bfile" | "clob" | "nclob" | "image" | "timetz" | "timestamptz" | "timestamp with local time zone" | "smalldatetime" | "date" | "interval year to month" | "interval day to second" | "interval" | "year" | "seconddate" | "point" | "line" | "lseg" | "box" | "circle" | "path" | "polygon" | "geography" | "geometry" | "linestring" | "multipoint" | "multilinestring" | "multipolygon" | "geometrycollection" | "st_geometry" | "st_point" | "int4range" | "int8range" | "numrange" | "tsrange" | "tstzrange" | "daterange" | "enum" | "set" | "cidr" | "inet" | "macaddr" | "bit" | "bit varying" | "varbit" | "tsvector" | "tsquery" | "uuid" | "xml" | "json" | "jsonb" | "varbinary" | "hierarchyid" | "sql_variant" | "rowid" | "urowid" | "uniqueidentifier" | "rowversion" | "array" | "cube" | "ltree" | "object" | "array" | "function" | "sequence";
|
|
22
|
+
/**
|
|
23
|
+
* Any column type column can be.
|
|
24
|
+
*/
|
|
25
|
+
export declare type DataType = WithPrecisionColumnType | WithLengthColumnType | WithWidthColumnType | SpatialColumnType | SimpleColumnType;
|
|
26
|
+
export interface DataTypeParams {
|
|
27
|
+
length?: number;
|
|
28
|
+
width?: number;
|
|
29
|
+
precision?: number;
|
|
30
|
+
scale?: number;
|
|
31
|
+
signed?: boolean;
|
|
32
|
+
}
|
|
@@ -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
|
+
;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { IncomingHttpHeaders } from "http";
|
|
3
|
-
import { AsyncContext, AsyncRowStore } from '../store/AsyncRowStore';
|
|
4
|
-
import { SyncContext } from '../store/SyncRowStore';
|
|
5
|
-
import { Connector, EntityDict, OakException, OpRecord } from "../types";
|
|
6
|
-
export declare class SimpleConnector<ED extends EntityDict, BackCxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> extends Connector<ED, BackCxt, FrontCxt> {
|
|
7
|
-
static ROUTER: string;
|
|
8
|
-
private serverUrl;
|
|
9
|
-
private makeException;
|
|
10
|
-
private contextBuilder;
|
|
11
|
-
constructor(serverUrl: string, makeException: (exceptionData: any) => OakException, contextBuilder: (str: string | undefined) => (store: AsyncRowStore<ED, BackCxt>) => Promise<BackCxt>);
|
|
12
|
-
callAspect(name: string, params: any, context: FrontCxt): Promise<{
|
|
13
|
-
result: any;
|
|
14
|
-
opRecords: OpRecord<ED>[];
|
|
15
|
-
}>;
|
|
16
|
-
getRouter(): string;
|
|
17
|
-
parseRequest(headers: IncomingHttpHeaders, body: any, store: AsyncRowStore<ED, BackCxt>): Promise<{
|
|
18
|
-
name: string;
|
|
19
|
-
params: any;
|
|
20
|
-
context: BackCxt;
|
|
21
|
-
}>;
|
|
22
|
-
serializeResult(result: any, context: BackCxt, headers: IncomingHttpHeaders, body: any): {
|
|
23
|
-
body: any;
|
|
24
|
-
headers?: Record<string, any> | undefined;
|
|
25
|
-
};
|
|
26
|
-
serializeException(exception: OakException, headers: IncomingHttpHeaders, body: any): {
|
|
27
|
-
body: any;
|
|
28
|
-
headers?: Record<string, any> | undefined;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingHttpHeaders } from "http";
|
|
3
|
+
import { AsyncContext, AsyncRowStore } from '../store/AsyncRowStore';
|
|
4
|
+
import { SyncContext } from '../store/SyncRowStore';
|
|
5
|
+
import { Connector, EntityDict, OakException, OpRecord } from "../types";
|
|
6
|
+
export declare class SimpleConnector<ED extends EntityDict, BackCxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> extends Connector<ED, BackCxt, FrontCxt> {
|
|
7
|
+
static ROUTER: string;
|
|
8
|
+
private serverUrl;
|
|
9
|
+
private makeException;
|
|
10
|
+
private contextBuilder;
|
|
11
|
+
constructor(serverUrl: string, makeException: (exceptionData: any) => OakException, contextBuilder: (str: string | undefined) => (store: AsyncRowStore<ED, BackCxt>) => Promise<BackCxt>);
|
|
12
|
+
callAspect(name: string, params: any, context: FrontCxt): Promise<{
|
|
13
|
+
result: any;
|
|
14
|
+
opRecords: OpRecord<ED>[];
|
|
15
|
+
}>;
|
|
16
|
+
getRouter(): string;
|
|
17
|
+
parseRequest(headers: IncomingHttpHeaders, body: any, store: AsyncRowStore<ED, BackCxt>): Promise<{
|
|
18
|
+
name: string;
|
|
19
|
+
params: any;
|
|
20
|
+
context: BackCxt;
|
|
21
|
+
}>;
|
|
22
|
+
serializeResult(result: any, context: BackCxt, headers: IncomingHttpHeaders, body: any): {
|
|
23
|
+
body: any;
|
|
24
|
+
headers?: Record<string, any> | undefined;
|
|
25
|
+
};
|
|
26
|
+
serializeException(exception: OakException, headers: IncomingHttpHeaders, body: any): {
|
|
27
|
+
body: any;
|
|
28
|
+
headers?: Record<string, any> | undefined;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SimpleConnector = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
-
var types_1 = require("../types");
|
|
7
|
-
function makeContentTypeAndBody(data) {
|
|
8
|
-
return {
|
|
9
|
-
contentType: 'application/json',
|
|
10
|
-
body: JSON.stringify(data),
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
var SimpleConnector = /** @class */ (function (_super) {
|
|
14
|
-
tslib_1.__extends(SimpleConnector, _super);
|
|
15
|
-
function SimpleConnector(serverUrl, makeException, contextBuilder) {
|
|
16
|
-
var _this = _super.call(this) || this;
|
|
17
|
-
_this.serverUrl = "".concat(serverUrl).concat(SimpleConnector.ROUTER);
|
|
18
|
-
_this.makeException = makeException;
|
|
19
|
-
_this.contextBuilder = contextBuilder;
|
|
20
|
-
return _this;
|
|
21
|
-
}
|
|
22
|
-
SimpleConnector.prototype.callAspect = function (name, params, context) {
|
|
23
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
24
|
-
var cxtStr, _a, contentType, body, response, err, _b, exception, result, opRecords;
|
|
25
|
-
return tslib_1.__generator(this, function (_c) {
|
|
26
|
-
switch (_c.label) {
|
|
27
|
-
case 0:
|
|
28
|
-
cxtStr = context.toString();
|
|
29
|
-
_a = makeContentTypeAndBody(params), contentType = _a.contentType, body = _a.body;
|
|
30
|
-
return [4 /*yield*/, global.fetch(this.serverUrl, {
|
|
31
|
-
method: 'POST',
|
|
32
|
-
headers: {
|
|
33
|
-
'Content-Type': contentType,
|
|
34
|
-
'oak-cxt': cxtStr,
|
|
35
|
-
'oak-aspect': name,
|
|
36
|
-
},
|
|
37
|
-
body: body,
|
|
38
|
-
})];
|
|
39
|
-
case 1:
|
|
40
|
-
response = _c.sent();
|
|
41
|
-
if (response.status > 299) {
|
|
42
|
-
err = new types_1.OakExternalException("\u7F51\u7EDC\u8BF7\u6C42\u8FD4\u56DE\u5F02\u5E38\uFF0Cstatus\u662F".concat(response.status));
|
|
43
|
-
throw err;
|
|
44
|
-
}
|
|
45
|
-
return [4 /*yield*/, response.json()];
|
|
46
|
-
case 2:
|
|
47
|
-
_b = _c.sent(), exception = _b.exception, result = _b.result, opRecords = _b.opRecords;
|
|
48
|
-
if (exception) {
|
|
49
|
-
throw this.makeException(exception);
|
|
50
|
-
}
|
|
51
|
-
return [2 /*return*/, {
|
|
52
|
-
result: result,
|
|
53
|
-
opRecords: opRecords,
|
|
54
|
-
}];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
SimpleConnector.prototype.getRouter = function () {
|
|
60
|
-
return SimpleConnector.ROUTER;
|
|
61
|
-
};
|
|
62
|
-
SimpleConnector.prototype.parseRequest = function (headers, body, store) {
|
|
63
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
64
|
-
var oakCxtStr, aspectName, context;
|
|
65
|
-
return tslib_1.__generator(this, function (_a) {
|
|
66
|
-
switch (_a.label) {
|
|
67
|
-
case 0:
|
|
68
|
-
oakCxtStr = headers["oak-cxt"], aspectName = headers["oak-aspect"];
|
|
69
|
-
(0, assert_1.default)(typeof oakCxtStr === 'string' || oakCxtStr === undefined);
|
|
70
|
-
(0, assert_1.default)(typeof aspectName === 'string');
|
|
71
|
-
return [4 /*yield*/, this.contextBuilder(oakCxtStr)(store)];
|
|
72
|
-
case 1:
|
|
73
|
-
context = _a.sent();
|
|
74
|
-
context.setHeaders(headers);
|
|
75
|
-
return [2 /*return*/, {
|
|
76
|
-
name: aspectName,
|
|
77
|
-
params: body,
|
|
78
|
-
context: context,
|
|
79
|
-
}];
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
SimpleConnector.prototype.serializeResult = function (result, context, headers, body) {
|
|
85
|
-
return {
|
|
86
|
-
body: {
|
|
87
|
-
result: result,
|
|
88
|
-
opRecords: context.opRecords,
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
SimpleConnector.prototype.serializeException = function (exception, headers, body) {
|
|
93
|
-
return {
|
|
94
|
-
body: {
|
|
95
|
-
exception: exception.toString(),
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
SimpleConnector.ROUTER = '/aspect';
|
|
100
|
-
return SimpleConnector;
|
|
101
|
-
}(types_1.Connector));
|
|
102
|
-
exports.SimpleConnector = SimpleConnector;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleConnector = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
+
var types_1 = require("../types");
|
|
7
|
+
function makeContentTypeAndBody(data) {
|
|
8
|
+
return {
|
|
9
|
+
contentType: 'application/json',
|
|
10
|
+
body: JSON.stringify(data),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
var SimpleConnector = /** @class */ (function (_super) {
|
|
14
|
+
tslib_1.__extends(SimpleConnector, _super);
|
|
15
|
+
function SimpleConnector(serverUrl, makeException, contextBuilder) {
|
|
16
|
+
var _this = _super.call(this) || this;
|
|
17
|
+
_this.serverUrl = "".concat(serverUrl).concat(SimpleConnector.ROUTER);
|
|
18
|
+
_this.makeException = makeException;
|
|
19
|
+
_this.contextBuilder = contextBuilder;
|
|
20
|
+
return _this;
|
|
21
|
+
}
|
|
22
|
+
SimpleConnector.prototype.callAspect = function (name, params, context) {
|
|
23
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
24
|
+
var cxtStr, _a, contentType, body, response, err, _b, exception, result, opRecords;
|
|
25
|
+
return tslib_1.__generator(this, function (_c) {
|
|
26
|
+
switch (_c.label) {
|
|
27
|
+
case 0:
|
|
28
|
+
cxtStr = context.toString();
|
|
29
|
+
_a = makeContentTypeAndBody(params), contentType = _a.contentType, body = _a.body;
|
|
30
|
+
return [4 /*yield*/, global.fetch(this.serverUrl, {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': contentType,
|
|
34
|
+
'oak-cxt': cxtStr,
|
|
35
|
+
'oak-aspect': name,
|
|
36
|
+
},
|
|
37
|
+
body: body,
|
|
38
|
+
})];
|
|
39
|
+
case 1:
|
|
40
|
+
response = _c.sent();
|
|
41
|
+
if (response.status > 299) {
|
|
42
|
+
err = new types_1.OakExternalException("\u7F51\u7EDC\u8BF7\u6C42\u8FD4\u56DE\u5F02\u5E38\uFF0Cstatus\u662F".concat(response.status));
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
return [4 /*yield*/, response.json()];
|
|
46
|
+
case 2:
|
|
47
|
+
_b = _c.sent(), exception = _b.exception, result = _b.result, opRecords = _b.opRecords;
|
|
48
|
+
if (exception) {
|
|
49
|
+
throw this.makeException(exception);
|
|
50
|
+
}
|
|
51
|
+
return [2 /*return*/, {
|
|
52
|
+
result: result,
|
|
53
|
+
opRecords: opRecords,
|
|
54
|
+
}];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
SimpleConnector.prototype.getRouter = function () {
|
|
60
|
+
return SimpleConnector.ROUTER;
|
|
61
|
+
};
|
|
62
|
+
SimpleConnector.prototype.parseRequest = function (headers, body, store) {
|
|
63
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
64
|
+
var oakCxtStr, aspectName, context;
|
|
65
|
+
return tslib_1.__generator(this, function (_a) {
|
|
66
|
+
switch (_a.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
oakCxtStr = headers["oak-cxt"], aspectName = headers["oak-aspect"];
|
|
69
|
+
(0, assert_1.default)(typeof oakCxtStr === 'string' || oakCxtStr === undefined);
|
|
70
|
+
(0, assert_1.default)(typeof aspectName === 'string');
|
|
71
|
+
return [4 /*yield*/, this.contextBuilder(oakCxtStr)(store)];
|
|
72
|
+
case 1:
|
|
73
|
+
context = _a.sent();
|
|
74
|
+
context.setHeaders(headers);
|
|
75
|
+
return [2 /*return*/, {
|
|
76
|
+
name: aspectName,
|
|
77
|
+
params: body,
|
|
78
|
+
context: context,
|
|
79
|
+
}];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
SimpleConnector.prototype.serializeResult = function (result, context, headers, body) {
|
|
85
|
+
return {
|
|
86
|
+
body: {
|
|
87
|
+
result: result,
|
|
88
|
+
opRecords: context.opRecords,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
SimpleConnector.prototype.serializeException = function (exception, headers, body) {
|
|
93
|
+
return {
|
|
94
|
+
body: {
|
|
95
|
+
exception: exception.toString(),
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
SimpleConnector.ROUTER = '/aspect';
|
|
100
|
+
return SimpleConnector;
|
|
101
|
+
}(types_1.Connector));
|
|
102
|
+
exports.SimpleConnector = SimpleConnector;
|
package/lib/utils/assert.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 防止assert打包体积过大,从这里引用
|
|
3
|
-
*/
|
|
4
|
-
import assert from 'assert';
|
|
5
|
-
export { assert, };
|
|
1
|
+
/**
|
|
2
|
+
* 防止assert打包体积过大,从这里引用
|
|
3
|
+
*/
|
|
4
|
+
import assert from 'assert';
|
|
5
|
+
export { assert, };
|
package/lib/utils/assert.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assert = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
/**
|
|
6
|
-
* 防止assert打包体积过大,从这里引用
|
|
7
|
-
*/
|
|
8
|
-
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
9
|
-
exports.assert = assert_1.default;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assert = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
/**
|
|
6
|
+
* 防止assert打包体积过大,从这里引用
|
|
7
|
+
*/
|
|
8
|
+
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
9
|
+
exports.assert = assert_1.default;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
declare type Mode = 'S' | 'X';
|
|
2
|
-
/**
|
|
3
|
-
* 模拟一个读写锁,用于同步。
|
|
4
|
-
* 注意,千万不要发生自己等自己
|
|
5
|
-
*/
|
|
6
|
-
export declare class RWLock {
|
|
7
|
-
private readNumber;
|
|
8
|
-
private writeNumber;
|
|
9
|
-
private readWaiter;
|
|
10
|
-
private writeWaiter;
|
|
11
|
-
constructor();
|
|
12
|
-
acquire(mode: Mode): Promise<void>;
|
|
13
|
-
release(): void;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
1
|
+
declare type Mode = 'S' | 'X';
|
|
2
|
+
/**
|
|
3
|
+
* 模拟一个读写锁,用于同步。
|
|
4
|
+
* 注意,千万不要发生自己等自己
|
|
5
|
+
*/
|
|
6
|
+
export declare class RWLock {
|
|
7
|
+
private readNumber;
|
|
8
|
+
private writeNumber;
|
|
9
|
+
private readWaiter;
|
|
10
|
+
private writeWaiter;
|
|
11
|
+
constructor();
|
|
12
|
+
acquire(mode: Mode): Promise<void>;
|
|
13
|
+
release(): void;
|
|
14
|
+
}
|
|
15
|
+
export {};
|