@belopash/typeorm-store 1.5.0 → 1.6.0-rc.10
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/database.d.ts +66 -9
- package/lib/database.d.ts.map +1 -1
- package/lib/database.js +214 -27
- package/lib/database.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -18
- package/lib/index.js.map +1 -1
- package/lib/store.d.ts +127 -72
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +240 -415
- package/lib/store.js.map +1 -1
- package/lib/utils/cacheMap.d.ts +9 -12
- package/lib/utils/cacheMap.d.ts.map +1 -1
- package/lib/utils/cacheMap.js +16 -18
- package/lib/utils/cacheMap.js.map +1 -1
- package/lib/utils/commitOrder.d.ts +7 -0
- package/lib/utils/commitOrder.d.ts.map +1 -0
- package/lib/utils/commitOrder.js +61 -0
- package/lib/utils/commitOrder.js.map +1 -0
- package/lib/utils/deferList.d.ts +2 -5
- package/lib/utils/deferList.d.ts.map +1 -1
- package/lib/utils/deferList.js +5 -6
- package/lib/utils/deferList.js.map +1 -1
- package/lib/utils/misc.d.ts +7 -3
- package/lib/utils/misc.d.ts.map +1 -1
- package/lib/utils/misc.js +25 -54
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/stateManager.d.ts +54 -0
- package/lib/utils/stateManager.d.ts.map +1 -0
- package/lib/utils/stateManager.js +261 -0
- package/lib/utils/stateManager.js.map +1 -0
- package/package.json +8 -7
- package/src/database.ts +335 -37
- package/src/index.ts +10 -2
- package/src/store.ts +339 -549
- package/src/utils/cacheMap.ts +21 -25
- package/src/utils/{relationGraph.ts → commitOrder.ts} +25 -20
- package/src/utils/deferList.ts +5 -7
- package/src/utils/misc.ts +32 -50
- package/src/utils/stateManager.ts +311 -0
- package/lib/test/lib/model.d.ts +0 -25
- package/lib/test/lib/model.d.ts.map +0 -1
- package/lib/test/lib/model.js +0 -107
- package/lib/test/lib/model.js.map +0 -1
- package/lib/test/store.test.d.ts +0 -6
- package/lib/test/store.test.d.ts.map +0 -1
- package/lib/test/store.test.js +0 -167
- package/lib/test/store.test.js.map +0 -1
- package/lib/test/util.d.ts +0 -13
- package/lib/test/util.d.ts.map +0 -1
- package/lib/test/util.js +0 -57
- package/lib/test/util.js.map +0 -1
- package/lib/utils/relationGraph.d.ts +0 -3
- package/lib/utils/relationGraph.d.ts.map +0 -1
- package/lib/utils/relationGraph.js +0 -61
- package/lib/utils/relationGraph.js.map +0 -1
package/lib/database.d.ts
CHANGED
|
@@ -1,12 +1,69 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { TypeormDatabaseOptions as TypeormDatabaseOptions_, IsolationLevel } from '@subsquid/typeorm-store';
|
|
2
|
+
import { DatabaseState, FinalTxInfo, HashAndHeight, HotTxInfo } from '@subsquid/typeorm-store/lib/interfaces';
|
|
3
|
+
import { DataSource } from 'typeorm';
|
|
4
|
+
import { Store } from './store';
|
|
5
|
+
import { StateManager } from './utils/stateManager';
|
|
6
|
+
export { IsolationLevel };
|
|
7
|
+
export interface TypeormDatabaseOptions extends TypeormDatabaseOptions_ {
|
|
8
|
+
/**
|
|
9
|
+
* If true, will batch write operations
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
batchWriteOperations?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* If true, will cache entities on request
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
cacheEntities?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* If true, will sync entities on request
|
|
20
|
+
* @default true
|
|
21
|
+
*/
|
|
22
|
+
syncEntities?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* If true, will reset the state on commit
|
|
25
|
+
* @default true
|
|
26
|
+
*/
|
|
27
|
+
resetOnCommit?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Batch size for database operations
|
|
30
|
+
* @default 1000
|
|
31
|
+
*/
|
|
32
|
+
batchSize?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Enable relation processing optimizations
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
optimizeRelations?: boolean;
|
|
38
|
+
}
|
|
39
|
+
declare const StateManagerSymbol: unique symbol;
|
|
40
|
+
export declare class TypeormDatabase {
|
|
41
|
+
protected statusSchema: string;
|
|
42
|
+
protected isolationLevel: IsolationLevel;
|
|
43
|
+
protected batchWriteOperations: boolean;
|
|
44
|
+
protected cacheEntities: boolean;
|
|
45
|
+
protected syncEntities: boolean;
|
|
46
|
+
protected resetOnCommit: boolean;
|
|
47
|
+
protected con?: DataSource & {
|
|
48
|
+
[StateManagerSymbol]?: StateManager;
|
|
49
|
+
};
|
|
50
|
+
protected projectDir: string;
|
|
51
|
+
readonly supportsHotBlocks: boolean;
|
|
52
|
+
constructor(options?: TypeormDatabaseOptions);
|
|
53
|
+
connect(): Promise<DatabaseState>;
|
|
54
|
+
disconnect(): Promise<void>;
|
|
55
|
+
private initTransaction;
|
|
56
|
+
private getState;
|
|
57
|
+
transact(info: FinalTxInfo, cb: (store: Store) => Promise<void>): Promise<void>;
|
|
58
|
+
transactHot(info: HotTxInfo, cb: (store: Store, block: HashAndHeight) => Promise<void>): Promise<void>;
|
|
59
|
+
transactHot2(info: HotTxInfo, cb: (store: Store, sliceBeg: number, sliceEnd: number) => Promise<void>): Promise<void>;
|
|
60
|
+
private deleteHotBlocks;
|
|
61
|
+
private insertHotBlock;
|
|
62
|
+
private updateStatus;
|
|
9
63
|
private performUpdates;
|
|
10
|
-
private
|
|
64
|
+
private submit;
|
|
65
|
+
private escapedSchema;
|
|
66
|
+
private getLogger;
|
|
67
|
+
private getStateManager;
|
|
11
68
|
}
|
|
12
69
|
//# sourceMappingURL=database.d.ts.map
|
package/lib/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,sBAAsB,IAAI,uBAAuB,EACjD,cAAc,EACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,wCAAwC,CAAA;AAG3G,OAAO,EAAC,UAAU,EAAgB,MAAM,SAAS,CAAA;AACjD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAC,cAAc,EAAC,CAAA;AAEvB,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACnE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,QAAA,MAAM,kBAAkB,eAAyB,CAAA;AAEjD,qBAAa,eAAe;IACxB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,cAAc,EAAE,cAAc,CAAA;IACxC,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACvC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAA;IAC/B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG;QACzB,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAA;KACtC,CAAA;IACD,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAE5B,SAAgB,iBAAiB,EAAE,OAAO,CAAA;gBAE9B,OAAO,CAAC,EAAE,sBAAsB;IAWtC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAiBjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAKnB,eAAe;YA2Cf,QAAQ;IActB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/E,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtG,YAAY,CACR,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACxE,OAAO,CAAC,IAAI,CAAC;IAmDhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;YAOR,YAAY;YAeZ,cAAc;YA4Bd,MAAM;IAiBpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;CAa1B"}
|
package/lib/database.js
CHANGED
|
@@ -12,52 +12,239 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
16
|
-
const
|
|
15
|
+
exports.TypeormDatabase = void 0;
|
|
16
|
+
const logger_1 = require("@subsquid/logger");
|
|
17
|
+
const hot_1 = require("@subsquid/typeorm-store/lib/hot");
|
|
18
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
17
19
|
const assert_1 = __importDefault(require("assert"));
|
|
20
|
+
const typeorm_1 = require("typeorm");
|
|
18
21
|
const store_1 = require("./store");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
class
|
|
23
|
-
|
|
22
|
+
const stateManager_1 = require("./utils/stateManager");
|
|
23
|
+
const typeorm_config_1 = require("@subsquid/typeorm-config");
|
|
24
|
+
const StateManagerSymbol = Symbol('StateManager');
|
|
25
|
+
class TypeormDatabase {
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.statusSchema = options?.stateSchema || 'squid_processor';
|
|
28
|
+
this.isolationLevel = options?.isolationLevel || 'SERIALIZABLE';
|
|
29
|
+
this.batchWriteOperations = options?.batchWriteOperations ?? true;
|
|
30
|
+
this.cacheEntities = options?.cacheEntities ?? true;
|
|
31
|
+
this.syncEntities = options?.syncEntities ?? true;
|
|
32
|
+
this.resetOnCommit = options?.resetOnCommit ?? true;
|
|
33
|
+
this.supportsHotBlocks = options?.supportHotBlocks ?? true;
|
|
34
|
+
this.projectDir = options?.projectDir || process.cwd();
|
|
35
|
+
}
|
|
36
|
+
async connect() {
|
|
37
|
+
(0, assert_1.default)(this.con == null, 'already connected');
|
|
38
|
+
let cfg = (0, typeorm_config_1.createOrmConfig)({ projectDir: this.projectDir });
|
|
39
|
+
this.con = new typeorm_1.DataSource(cfg);
|
|
40
|
+
await this.con.initialize();
|
|
41
|
+
try {
|
|
42
|
+
return await this.con.transaction('SERIALIZABLE', (em) => this.initTransaction(em));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
await this.con.destroy().catch(() => { }); // ignore error
|
|
46
|
+
this.con = undefined;
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async disconnect() {
|
|
51
|
+
await this.con?.destroy().catch(() => { }); // ignore error
|
|
52
|
+
this.con = undefined;
|
|
53
|
+
}
|
|
54
|
+
async initTransaction(em) {
|
|
55
|
+
let schema = this.escapedSchema();
|
|
56
|
+
await em.query(`CREATE SCHEMA IF NOT EXISTS ${schema}`);
|
|
57
|
+
await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.status (` +
|
|
58
|
+
`id int4 primary key, ` +
|
|
59
|
+
`height int4 not null, ` +
|
|
60
|
+
`hash text DEFAULT '0x', ` +
|
|
61
|
+
`nonce int4 DEFAULT 0` +
|
|
62
|
+
`)`);
|
|
63
|
+
await em.query(
|
|
64
|
+
// for databases created by prev version of typeorm store
|
|
65
|
+
`ALTER TABLE ${schema}.status ADD COLUMN IF NOT EXISTS hash text DEFAULT '0x'`);
|
|
66
|
+
await em.query(
|
|
67
|
+
// for databases created by prev version of typeorm store
|
|
68
|
+
`ALTER TABLE ${schema}.status ADD COLUMN IF NOT EXISTS nonce int DEFAULT 0`);
|
|
69
|
+
await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.hot_block (height int4 primary key, hash text not null)`);
|
|
70
|
+
await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.hot_change_log (` +
|
|
71
|
+
`block_height int4 not null references ${schema}.hot_block on delete cascade, ` +
|
|
72
|
+
`index int4 not null, ` +
|
|
73
|
+
`change jsonb not null, ` +
|
|
74
|
+
`PRIMARY KEY (block_height, index)` +
|
|
75
|
+
`)`);
|
|
76
|
+
let status = await em.query(`SELECT height, hash, nonce FROM ${schema}.status WHERE id = 0`);
|
|
77
|
+
if (status.length == 0) {
|
|
78
|
+
await em.query(`INSERT INTO ${schema}.status (id, height, hash) VALUES (0, -1, '0x')`);
|
|
79
|
+
status.push({ height: -1, hash: '0x', nonce: 0 });
|
|
80
|
+
}
|
|
81
|
+
let top = await em.query(`SELECT height, hash FROM ${schema}.hot_block ORDER BY height`);
|
|
82
|
+
return assertStateInvariants({ ...status[0], top });
|
|
83
|
+
}
|
|
84
|
+
async getState(em) {
|
|
85
|
+
let schema = this.escapedSchema();
|
|
86
|
+
let status = await em.query(`SELECT height, hash, nonce FROM ${schema}.status WHERE id = 0`);
|
|
87
|
+
(0, assert_1.default)(status.length == 1);
|
|
88
|
+
let top = await em.query(`SELECT hash, height FROM ${schema}.hot_block ORDER BY height`);
|
|
89
|
+
return assertStateInvariants({ ...status[0], top });
|
|
90
|
+
}
|
|
24
91
|
transact(info, cb) {
|
|
25
|
-
return
|
|
92
|
+
return this.submit(async (em) => {
|
|
93
|
+
let state = await this.getState(em);
|
|
94
|
+
let { prevHead: prev, nextHead: next } = info;
|
|
95
|
+
(0, assert_1.default)(state.hash === info.prevHead.hash, RACE_MSG);
|
|
96
|
+
(0, assert_1.default)(state.height === prev.height);
|
|
97
|
+
(0, assert_1.default)(prev.height < next.height);
|
|
98
|
+
(0, assert_1.default)(prev.hash != next.hash);
|
|
99
|
+
for (let i = state.top.length - 1; i >= 0; i--) {
|
|
100
|
+
let block = state.top[i];
|
|
101
|
+
await (0, hot_1.rollbackBlock)(this.statusSchema, em, block.height);
|
|
102
|
+
}
|
|
103
|
+
await this.performUpdates(cb, em);
|
|
104
|
+
await this.updateStatus(em, state.nonce, next);
|
|
105
|
+
});
|
|
26
106
|
}
|
|
27
|
-
// @ts-ignore
|
|
28
107
|
transactHot(info, cb) {
|
|
29
|
-
return
|
|
108
|
+
return this.transactHot2(info, async (store, sliceBeg, sliceEnd) => {
|
|
109
|
+
for (let i = sliceBeg; i < sliceEnd; i++) {
|
|
110
|
+
await cb(store, info.newBlocks[i]);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
30
113
|
}
|
|
31
|
-
// @ts-ignore
|
|
32
114
|
transactHot2(info, cb) {
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
(0, assert_1.default)(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
115
|
+
return this.submit(async (em) => {
|
|
116
|
+
let state = await this.getState(em);
|
|
117
|
+
let chain = [state, ...state.top];
|
|
118
|
+
assertChainContinuity(info.baseHead, info.newBlocks);
|
|
119
|
+
(0, assert_1.default)(info.finalizedHead.height <= ((0, util_internal_1.maybeLast)(info.newBlocks) ?? info.baseHead).height);
|
|
120
|
+
(0, assert_1.default)(chain.find((b) => b.hash === info.baseHead.hash), RACE_MSG);
|
|
121
|
+
if (info.newBlocks.length == 0) {
|
|
122
|
+
(0, assert_1.default)((0, util_internal_1.last)(chain).hash === info.baseHead.hash, RACE_MSG);
|
|
123
|
+
}
|
|
124
|
+
(0, assert_1.default)(chain[0].height <= info.finalizedHead.height, RACE_MSG);
|
|
125
|
+
let rollbackPos = info.baseHead.height + 1 - chain[0].height;
|
|
126
|
+
for (let i = chain.length - 1; i >= rollbackPos; i--) {
|
|
127
|
+
await (0, hot_1.rollbackBlock)(this.statusSchema, em, chain[i].height);
|
|
128
|
+
}
|
|
129
|
+
if (info.newBlocks.length) {
|
|
130
|
+
let finalizedEnd = info.finalizedHead.height - info.newBlocks[0].height + 1;
|
|
131
|
+
if (finalizedEnd > 0) {
|
|
132
|
+
await this.performUpdates((store) => cb(store, 0, finalizedEnd), em);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
finalizedEnd = 0;
|
|
136
|
+
}
|
|
137
|
+
for (let i = finalizedEnd; i < info.newBlocks.length; i++) {
|
|
138
|
+
let b = info.newBlocks[i];
|
|
139
|
+
await this.insertHotBlock(em, b);
|
|
140
|
+
await this.performUpdates((store) => cb(store, i, i + 1), em, new hot_1.ChangeTracker(em, this.statusSchema, b.height));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
chain = chain.slice(0, rollbackPos).concat(info.newBlocks);
|
|
144
|
+
let finalizedHeadPos = info.finalizedHead.height - chain[0].height;
|
|
145
|
+
(0, assert_1.default)(chain[finalizedHeadPos].hash === info.finalizedHead.hash);
|
|
146
|
+
await this.deleteHotBlocks(em, info.finalizedHead.height);
|
|
147
|
+
await this.updateStatus(em, state.nonce, info.finalizedHead);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
deleteHotBlocks(em, finalizedHeight) {
|
|
151
|
+
return em.query(`DELETE FROM ${this.escapedSchema()}.hot_block WHERE height <= $1`, [finalizedHeight]);
|
|
152
|
+
}
|
|
153
|
+
insertHotBlock(em, block) {
|
|
154
|
+
return em.query(`INSERT INTO ${this.escapedSchema()}.hot_block (height, hash) VALUES ($1, $2)`, [
|
|
155
|
+
block.height,
|
|
156
|
+
block.hash,
|
|
157
|
+
]);
|
|
158
|
+
}
|
|
159
|
+
async updateStatus(em, nonce, next) {
|
|
160
|
+
let schema = this.escapedSchema();
|
|
161
|
+
let result = await em.query(`UPDATE ${schema}.status SET height = $1, hash = $2, nonce = nonce + 1 WHERE id = 0 AND nonce = $3`, [next.height, next.hash, nonce]);
|
|
162
|
+
let rowsChanged = result[1];
|
|
163
|
+
// Will never happen if isolation level is SERIALIZABLE or REPEATABLE_READ,
|
|
164
|
+
// but occasionally people use multiprocessor setups and READ_COMMITTED.
|
|
165
|
+
assert_1.default.strictEqual(rowsChanged, 1, RACE_MSG);
|
|
166
|
+
}
|
|
167
|
+
async performUpdates(cb, em, changeWriter) {
|
|
168
|
+
let store = new store_1.Store({
|
|
169
|
+
em,
|
|
170
|
+
state: this.getStateManager(),
|
|
171
|
+
logger: this.getLogger().child('store'),
|
|
172
|
+
changes: changeWriter,
|
|
173
|
+
batchWriteOperations: this.batchWriteOperations,
|
|
174
|
+
cacheEntities: this.cacheEntities,
|
|
175
|
+
syncEntities: this.syncEntities,
|
|
43
176
|
});
|
|
44
177
|
try {
|
|
45
178
|
await cb(store);
|
|
46
|
-
|
|
179
|
+
if (this.resetOnCommit) {
|
|
180
|
+
await store.flush();
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
await store.sync();
|
|
184
|
+
}
|
|
47
185
|
}
|
|
48
186
|
finally {
|
|
49
|
-
|
|
187
|
+
store['isClosed'] = true;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async submit(tx) {
|
|
191
|
+
let retries = 3;
|
|
192
|
+
while (true) {
|
|
193
|
+
try {
|
|
194
|
+
let con = this.con;
|
|
195
|
+
(0, assert_1.default)(con != null, 'not connected');
|
|
196
|
+
return await con.transaction(this.isolationLevel, tx);
|
|
197
|
+
}
|
|
198
|
+
catch (e) {
|
|
199
|
+
if (e.code == '40001' && retries) {
|
|
200
|
+
retries -= 1;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
throw e;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
50
206
|
}
|
|
51
207
|
}
|
|
52
|
-
|
|
53
|
-
|
|
208
|
+
escapedSchema() {
|
|
209
|
+
let con = (0, util_internal_1.assertNotNull)(this.con);
|
|
210
|
+
return con.driver.escape(this.statusSchema);
|
|
211
|
+
}
|
|
212
|
+
getLogger() {
|
|
213
|
+
return (0, logger_1.createLogger)('sqd:db');
|
|
214
|
+
}
|
|
215
|
+
getStateManager() {
|
|
216
|
+
let connection = (0, util_internal_1.assertNotNull)(this.con);
|
|
217
|
+
let stateManager = connection[StateManagerSymbol];
|
|
218
|
+
if (stateManager == null) {
|
|
219
|
+
stateManager = new stateManager_1.StateManager({
|
|
220
|
+
connection,
|
|
221
|
+
logger: this.getLogger().child('state'),
|
|
222
|
+
});
|
|
223
|
+
connection[StateManagerSymbol] = stateManager;
|
|
224
|
+
}
|
|
225
|
+
return stateManager;
|
|
54
226
|
}
|
|
55
227
|
}
|
|
56
|
-
exports.
|
|
228
|
+
exports.TypeormDatabase = TypeormDatabase;
|
|
57
229
|
__decorate([
|
|
58
230
|
util_internal_1.def,
|
|
59
231
|
__metadata("design:type", Function),
|
|
60
232
|
__metadata("design:paramtypes", []),
|
|
61
233
|
__metadata("design:returntype", void 0)
|
|
62
|
-
],
|
|
234
|
+
], TypeormDatabase.prototype, "getLogger", null);
|
|
235
|
+
const RACE_MSG = 'status table was updated by foreign process, make sure no other processor is running';
|
|
236
|
+
function assertStateInvariants(state) {
|
|
237
|
+
let height = state.height;
|
|
238
|
+
// Sanity check. Who knows what driver will return?
|
|
239
|
+
(0, assert_1.default)(Number.isSafeInteger(height));
|
|
240
|
+
assertChainContinuity(state, state.top);
|
|
241
|
+
return state;
|
|
242
|
+
}
|
|
243
|
+
function assertChainContinuity(base, chain) {
|
|
244
|
+
let prev = base;
|
|
245
|
+
for (let b of chain) {
|
|
246
|
+
(0, assert_1.default)(b.height === prev.height + 1, 'blocks must form a continues chain');
|
|
247
|
+
prev = b;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
63
250
|
//# sourceMappingURL=database.js.map
|
package/lib/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA6C;AAM7C,yDAA4E;AAE5E,2DAA2E;AAC3E,oDAA2B;AAC3B,qCAAiD;AACjD,mCAA6B;AAC7B,uDAAiD;AACjD,6DAAwD;AA0CxD,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAEjD,MAAa,eAAe;IAcxB,YAAY,OAAgC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,WAAW,IAAI,iBAAiB,CAAA;QAC7D,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,cAAc,CAAA;QAC/D,IAAI,CAAC,oBAAoB,GAAG,OAAO,EAAE,oBAAoB,IAAI,IAAI,CAAA;QACjE,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAA;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAA;QACjD,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAA;QACnD,IAAI,CAAC,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAA;QAC1D,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAA,gBAAM,EAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,mBAAmB,CAAC,CAAA;QAE7C,IAAI,GAAG,GAAG,IAAA,gCAAe,EAAC,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,IAAI,oBAAU,CAAC,GAAG,CAAC,CAAA;QAE9B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QAE3B,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;QACvF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA,CAAC,eAAe;YACxD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;YACpB,MAAM,CAAC,CAAA;QACX,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA,CAAC,eAAe;QACzD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,EAAiB;QAC3C,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEjC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAA;QACvD,MAAM,EAAE,CAAC,KAAK,CACV,8BAA8B,MAAM,WAAW;YAC3C,uBAAuB;YACvB,wBAAwB;YACxB,0BAA0B;YAC1B,sBAAsB;YACtB,GAAG,CACV,CAAA;QACD,MAAM,EAAE,CAAC,KAAK;QACV,yDAAyD;QACzD,eAAe,MAAM,yDAAyD,CACjF,CAAA;QACD,MAAM,EAAE,CAAC,KAAK;QACV,yDAAyD;QACzD,eAAe,MAAM,sDAAsD,CAC9E,CAAA;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,8BAA8B,MAAM,0DAA0D,CAAC,CAAA;QAC9G,MAAM,EAAE,CAAC,KAAK,CACV,8BAA8B,MAAM,mBAAmB;YACnD,yCAAyC,MAAM,gCAAgC;YAC/E,uBAAuB;YACvB,yBAAyB;YACzB,mCAAmC;YACnC,GAAG,CACV,CAAA;QAED,IAAI,MAAM,GAAwC,MAAM,EAAE,CAAC,KAAK,CAC5D,mCAAmC,MAAM,sBAAsB,CAClE,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,MAAM,iDAAiD,CAAC,CAAA;YACtF,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,GAAG,GAAoB,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,MAAM,4BAA4B,CAAC,CAAA;QAEzG,OAAO,qBAAqB,CAAC,EAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC,CAAC,CAAA;IACrD,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,EAAiB;QACpC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEjC,IAAI,MAAM,GAAwC,MAAM,EAAE,CAAC,KAAK,CAC5D,mCAAmC,MAAM,sBAAsB,CAClE,CAAA;QAED,IAAA,gBAAM,EAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;QAE1B,IAAI,GAAG,GAAoB,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,MAAM,4BAA4B,CAAC,CAAA;QAEzG,OAAO,qBAAqB,CAAC,EAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC,CAAC,CAAA;IACrD,CAAC;IAED,QAAQ,CAAC,IAAiB,EAAE,EAAmC;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC5B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACnC,IAAI,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,CAAA;YAE3C,IAAA,gBAAM,EAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACnD,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;YACpC,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;YACjC,IAAA,gBAAM,EAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;YAE9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxB,MAAM,IAAA,mBAAa,EAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5D,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAEjC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,WAAW,CAAC,IAAe,EAAE,EAAyD;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC/D,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,YAAY,CACR,IAAe,EACf,EAAuE;QAEvE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC5B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACnC,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YAEjC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YACpD,IAAA,gBAAM,EAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;YAExF,IAAA,gBAAM,EACF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAChD,QAAQ,CACX,CAAA;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAA,gBAAM,EAAC,IAAA,oBAAI,EAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC7D,CAAC;YACD,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAE9D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAE5D,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,IAAA,mBAAa,EAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAC/D,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACxB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;gBAC3E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;gBACxE,CAAC;qBAAM,CAAC;oBACJ,YAAY,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;oBACzB,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;oBAChC,MAAM,IAAI,CAAC,cAAc,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAC9B,EAAE,EACF,IAAI,mBAAa,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CACrD,CAAA;gBACL,CAAC;YACL,CAAC;YAED,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAE1D,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAClE,IAAA,gBAAM,EAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAEzD,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,eAAe,CAAC,EAAiB,EAAE,eAAuB;QAC9D,OAAO,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,+BAA+B,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IAC1G,CAAC;IAEO,cAAc,CAAC,EAAiB,EAAE,KAAoB;QAC1D,OAAO,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,2CAA2C,EAAE;YAC5F,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,IAAI;SACb,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAiB,EAAE,KAAa,EAAE,IAAmB;QAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEjC,IAAI,MAAM,GAAuC,MAAM,EAAE,CAAC,KAAK,CAC3D,UAAU,MAAM,mFAAmF,EACnG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAClC,CAAA;QAED,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAE3B,2EAA2E;QAC3E,wEAAwE;QACxE,gBAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAAmC,EACnC,EAAiB,EACjB,YAA4B;QAE5B,IAAI,KAAK,GAAG,IAAI,aAAK,CAAC;YAClB,EAAE;YACF,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,OAAO,EAAE,YAAY;YACrB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAA;QAEF,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YAEf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;QAC5B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,EAAwC;QACzD,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,CAAC;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;gBAClB,IAAA,gBAAM,EAAC,GAAG,IAAI,IAAI,EAAE,eAAe,CAAC,CAAA;gBACpC,OAAO,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;YACzD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,CAAA;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAA;gBACX,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,aAAa;QACjB,IAAI,GAAG,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC/C,CAAC;IAGO,SAAS;QACb,OAAO,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAEO,eAAe;QACnB,IAAI,UAAU,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;QACjD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACvB,YAAY,GAAG,IAAI,2BAAY,CAAC;gBAC5B,UAAU;gBACV,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1C,CAAC,CAAA;YACF,UAAU,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAA;QACjD,CAAC;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;CACJ;AAzRD,0CAyRC;AAjBW;IADP,mBAAG;;;;gDAGH;AAiBL,MAAM,QAAQ,GAAG,sFAAsF,CAAA;AAEvG,SAAS,qBAAqB,CAAC,KAAoB;IAC/C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAEzB,mDAAmD;IACnD,IAAA,gBAAM,EAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAEpC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAmB,EAAE,KAAsB;IACtE,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAClB,IAAA,gBAAM,EAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAA;QAC1E,IAAI,GAAG,CAAC,CAAA;IACZ,CAAC;AACL,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
1
|
+
export { TypeormDatabase, TypeormDatabase as TypeormDatabaseWithCache, TypeormDatabaseOptions } from './database';
|
|
2
|
+
export { EntityTarget, EntityLiteral, EntityLiteral as Entity, FindManyOptions, FindOneOptions, Store, Store as StoreWithCache, } from './store';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,eAAe,IAAI,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAA;AAC/G,OAAO,EACH,YAAY,EACZ,aAAa,EACb,aAAa,IAAI,MAAM,EACvB,eAAe,EACf,cAAc,EACd,KAAK,EACL,KAAK,IAAI,cAAc,GAC1B,MAAM,SAAS,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.StoreWithCache = exports.
|
|
18
|
-
|
|
3
|
+
exports.StoreWithCache = exports.Store = exports.TypeormDatabaseWithCache = exports.TypeormDatabase = void 0;
|
|
4
|
+
var database_1 = require("./database");
|
|
5
|
+
Object.defineProperty(exports, "TypeormDatabase", { enumerable: true, get: function () { return database_1.TypeormDatabase; } });
|
|
6
|
+
Object.defineProperty(exports, "TypeormDatabaseWithCache", { enumerable: true, get: function () { return database_1.TypeormDatabase; } });
|
|
19
7
|
var store_1 = require("./store");
|
|
20
|
-
Object.defineProperty(exports, "
|
|
21
|
-
Object.defineProperty(exports, "StoreWithCache", { enumerable: true, get: function () { return store_1.
|
|
8
|
+
Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return store_1.Store; } });
|
|
9
|
+
Object.defineProperty(exports, "StoreWithCache", { enumerable: true, get: function () { return store_1.Store; } });
|
|
22
10
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA+G;AAAvG,2GAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAA4B;AACpE,iCAQgB;AAFZ,8FAAA,KAAK,OAAA;AACL,uGAAA,KAAK,OAAkB"}
|