@proteinjs/db 1.0.2
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/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/dist/generated/index.d.ts +11 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +59 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/src/Columns.d.ts +100 -0
- package/dist/src/Columns.d.ts.map +1 -0
- package/dist/src/Columns.js +381 -0
- package/dist/src/Columns.js.map +1 -0
- package/dist/src/Db.d.ts +46 -0
- package/dist/src/Db.d.ts.map +1 -0
- package/dist/src/Db.js +393 -0
- package/dist/src/Db.js.map +1 -0
- package/dist/src/MigrationRunner.d.ts +10 -0
- package/dist/src/MigrationRunner.d.ts.map +1 -0
- package/dist/src/MigrationRunner.js +124 -0
- package/dist/src/MigrationRunner.js.map +1 -0
- package/dist/src/QueryBuilderFactory.d.ts +8 -0
- package/dist/src/QueryBuilderFactory.d.ts.map +1 -0
- package/dist/src/QueryBuilderFactory.js +21 -0
- package/dist/src/QueryBuilderFactory.js.map +1 -0
- package/dist/src/Record.d.ts +38 -0
- package/dist/src/Record.d.ts.map +1 -0
- package/dist/src/Record.js +209 -0
- package/dist/src/Record.js.map +1 -0
- package/dist/src/RecordIterator.d.ts +13 -0
- package/dist/src/RecordIterator.d.ts.map +1 -0
- package/dist/src/RecordIterator.js +98 -0
- package/dist/src/RecordIterator.js.map +1 -0
- package/dist/src/StatementConfigFactory.d.ts +11 -0
- package/dist/src/StatementConfigFactory.d.ts.map +1 -0
- package/dist/src/StatementConfigFactory.js +31 -0
- package/dist/src/StatementConfigFactory.js.map +1 -0
- package/dist/src/Table.d.ts +98 -0
- package/dist/src/Table.d.ts.map +1 -0
- package/dist/src/Table.js +56 -0
- package/dist/src/Table.js.map +1 -0
- package/dist/src/auth/TableAuth.d.ts +29 -0
- package/dist/src/auth/TableAuth.d.ts.map +1 -0
- package/dist/src/auth/TableAuth.js +45 -0
- package/dist/src/auth/TableAuth.js.map +1 -0
- package/dist/src/auth/TableServiceAuth.d.ts +5 -0
- package/dist/src/auth/TableServiceAuth.d.ts.map +1 -0
- package/dist/src/auth/TableServiceAuth.js +37 -0
- package/dist/src/auth/TableServiceAuth.js.map +1 -0
- package/dist/src/opt/moment.d.ts +4 -0
- package/dist/src/opt/moment.d.ts.map +1 -0
- package/dist/src/opt/moment.js +9 -0
- package/dist/src/opt/moment.js.map +1 -0
- package/dist/src/reference/Reference.d.ts +26 -0
- package/dist/src/reference/Reference.d.ts.map +1 -0
- package/dist/src/reference/Reference.js +90 -0
- package/dist/src/reference/Reference.js.map +1 -0
- package/dist/src/reference/ReferenceArray.d.ts +29 -0
- package/dist/src/reference/ReferenceArray.d.ts.map +1 -0
- package/dist/src/reference/ReferenceArray.js +101 -0
- package/dist/src/reference/ReferenceArray.js.map +1 -0
- package/dist/src/schema/SchemaMetadata.d.ts +27 -0
- package/dist/src/schema/SchemaMetadata.d.ts.map +1 -0
- package/dist/src/schema/SchemaMetadata.js +227 -0
- package/dist/src/schema/SchemaMetadata.js.map +1 -0
- package/dist/src/schema/SchemaOperations.d.ts +40 -0
- package/dist/src/schema/SchemaOperations.d.ts.map +1 -0
- package/dist/src/schema/SchemaOperations.js +3 -0
- package/dist/src/schema/SchemaOperations.js.map +1 -0
- package/dist/src/schema/TableManager.d.ts +21 -0
- package/dist/src/schema/TableManager.d.ts.map +1 -0
- package/dist/src/schema/TableManager.js +254 -0
- package/dist/src/schema/TableManager.js.map +1 -0
- package/dist/src/serializers/GraphSerializer.d.ts +13 -0
- package/dist/src/serializers/GraphSerializer.d.ts.map +1 -0
- package/dist/src/serializers/GraphSerializer.js +21 -0
- package/dist/src/serializers/GraphSerializer.js.map +1 -0
- package/dist/src/serializers/QueryBuilderSerializer.d.ts +19 -0
- package/dist/src/serializers/QueryBuilderSerializer.d.ts.map +1 -0
- package/dist/src/serializers/QueryBuilderSerializer.js +32 -0
- package/dist/src/serializers/QueryBuilderSerializer.js.map +1 -0
- package/dist/src/serializers/ReferenceArraySerializer.d.ts +15 -0
- package/dist/src/serializers/ReferenceArraySerializer.d.ts.map +1 -0
- package/dist/src/serializers/ReferenceArraySerializer.js +23 -0
- package/dist/src/serializers/ReferenceArraySerializer.js.map +1 -0
- package/dist/src/serializers/ReferenceSerializer.d.ts +15 -0
- package/dist/src/serializers/ReferenceSerializer.d.ts.map +1 -0
- package/dist/src/serializers/ReferenceSerializer.js +23 -0
- package/dist/src/serializers/ReferenceSerializer.js.map +1 -0
- package/dist/src/serializers/TableSerializer.d.ts +13 -0
- package/dist/src/serializers/TableSerializer.d.ts.map +1 -0
- package/dist/src/serializers/TableSerializer.js +19 -0
- package/dist/src/serializers/TableSerializer.js.map +1 -0
- package/dist/src/services/DbService.d.ts +19 -0
- package/dist/src/services/DbService.d.ts.map +1 -0
- package/dist/src/services/DbService.js +6 -0
- package/dist/src/services/DbService.js.map +1 -0
- package/dist/src/services/MigrationRunnerService.d.ts +6 -0
- package/dist/src/services/MigrationRunnerService.d.ts.map +1 -0
- package/dist/src/services/MigrationRunnerService.js +6 -0
- package/dist/src/services/MigrationRunnerService.js.map +1 -0
- package/dist/src/source/SourceRecord.d.ts +44 -0
- package/dist/src/source/SourceRecord.d.ts.map +1 -0
- package/dist/src/source/SourceRecord.js +49 -0
- package/dist/src/source/SourceRecord.js.map +1 -0
- package/dist/src/source/SourceRecordLoader.d.ts +6 -0
- package/dist/src/source/SourceRecordLoader.d.ts.map +1 -0
- package/dist/src/source/SourceRecordLoader.js +156 -0
- package/dist/src/source/SourceRecordLoader.js.map +1 -0
- package/dist/src/source/SourceRecordRepo.d.ts +8 -0
- package/dist/src/source/SourceRecordRepo.d.ts.map +1 -0
- package/dist/src/source/SourceRecordRepo.js +20 -0
- package/dist/src/source/SourceRecordRepo.js.map +1 -0
- package/dist/src/tables/MigrationTable.d.ts +41 -0
- package/dist/src/tables/MigrationTable.d.ts.map +1 -0
- package/dist/src/tables/MigrationTable.js +86 -0
- package/dist/src/tables/MigrationTable.js.map +1 -0
- package/dist/src/tables/tables.d.ts +6 -0
- package/dist/src/tables/tables.d.ts.map +1 -0
- package/dist/src/tables/tables.js +8 -0
- package/dist/src/tables/tables.js.map +1 -0
- package/dist/test/CrudTests.d.ts +20 -0
- package/dist/test/CrudTests.d.ts.map +1 -0
- package/dist/test/CrudTests.js +251 -0
- package/dist/test/CrudTests.js.map +1 -0
- package/dist/test/TableManagerTests.d.ts +8 -0
- package/dist/test/TableManagerTests.d.ts.map +1 -0
- package/dist/test/TableManagerTests.js +687 -0
- package/dist/test/TableManagerTests.js.map +1 -0
- package/generated/index.ts +55 -0
- package/index.ts +25 -0
- package/jest.config.js +18 -0
- package/package.json +45 -0
- package/src/Columns.ts +257 -0
- package/src/Db.ts +195 -0
- package/src/MigrationRunner.ts +62 -0
- package/src/QueryBuilderFactory.ts +18 -0
- package/src/Record.ts +113 -0
- package/src/RecordIterator.ts +44 -0
- package/src/StatementConfigFactory.ts +36 -0
- package/src/Table.ts +124 -0
- package/src/auth/TableAuth.ts +60 -0
- package/src/auth/TableServiceAuth.ts +32 -0
- package/src/opt/moment.ts +4 -0
- package/src/reference/Reference.ts +45 -0
- package/src/reference/ReferenceArray.ts +56 -0
- package/src/schema/SchemaMetadata.ts +115 -0
- package/src/schema/SchemaOperations.ts +44 -0
- package/src/schema/TableManager.ts +198 -0
- package/src/serializers/GraphSerializer.ts +22 -0
- package/src/serializers/QueryBuilderSerializer.ts +39 -0
- package/src/serializers/ReferenceArraySerializer.ts +26 -0
- package/src/serializers/ReferenceSerializer.ts +26 -0
- package/src/serializers/TableSerializer.ts +20 -0
- package/src/services/DbService.ts +19 -0
- package/src/services/MigrationRunnerService.ts +7 -0
- package/src/source/SourceRecord.ts +75 -0
- package/src/source/SourceRecordLoader.ts +68 -0
- package/src/source/SourceRecordRepo.ts +17 -0
- package/src/tables/MigrationTable.ts +36 -0
- package/src/tables/tables.ts +6 -0
- package/test/CrudTests.ts +110 -0
- package/test/TableManagerTests.ts +382 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDbService = void 0;
|
|
4
|
+
var service_1 = require("@proteinjs/service");
|
|
5
|
+
exports.getDbService = (0, service_1.serviceFactory)('@proteinjs/db/DbService');
|
|
6
|
+
//# sourceMappingURL=DbService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DbService.js","sourceRoot":"","sources":["../../../src/services/DbService.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAKhD,QAAA,YAAY,GAAG,IAAA,wBAAc,EAAY,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Service } from '@proteinjs/service';
|
|
2
|
+
export declare const getMigrationRunnerService: () => MigrationRunnerService;
|
|
3
|
+
export interface MigrationRunnerService extends Service {
|
|
4
|
+
runMigration(id: string): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=MigrationRunnerService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunnerService.d.ts","sourceRoot":"","sources":["../../../src/services/MigrationRunnerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,yBAAyB,8BAAiF,CAAC;AAExH,MAAM,WAAW,sBAAuB,SAAQ,OAAO;IACrD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMigrationRunnerService = void 0;
|
|
4
|
+
var service_1 = require("@proteinjs/service");
|
|
5
|
+
exports.getMigrationRunnerService = (0, service_1.serviceFactory)('@proteinjs/db/MigrationRunnerService');
|
|
6
|
+
//# sourceMappingURL=MigrationRunnerService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunnerService.js","sourceRoot":"","sources":["../../../src/services/MigrationRunnerService.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAEhD,QAAA,yBAAyB,GAAG,IAAA,wBAAc,EAAyB,sCAAsC,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Loadable } from '@proteinjs/reflection';
|
|
2
|
+
import { Columns, Table } from '../Table';
|
|
3
|
+
import { Record as DbRecord } from '../Record';
|
|
4
|
+
export declare const getSourceRecordLoaders: <T extends SourceRecord = SourceRecord>() => SourceRecordLoader<T>[];
|
|
5
|
+
export declare function getSourceRecordTables(): Table<any>[];
|
|
6
|
+
export declare function isSourceRecordTable(table: Table<any>): boolean;
|
|
7
|
+
export interface SourceRecord extends DbRecord {
|
|
8
|
+
isLoadedFromSource?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Wrapper function to add default Record and SourceRecord columns to your table's columns.
|
|
12
|
+
*
|
|
13
|
+
* Note: using this requires an explicit dependency on moment@2.29.4 in your package (since transient dependencies are brittle by typescript's standards)
|
|
14
|
+
*
|
|
15
|
+
* @param columns your columns
|
|
16
|
+
* @param hideFromUi if true, source record columns are hidden from RecordTable and RecordForm
|
|
17
|
+
* @returns recordColumns & sourceRecordColumns & your columns
|
|
18
|
+
*/
|
|
19
|
+
export declare function withSourceRecordColumns<T extends SourceRecord>(columns: Columns<Omit<T, keyof SourceRecord>>, hideFromUi?: boolean): Columns<SourceRecord> & Columns<Omit<T, keyof SourceRecord>>;
|
|
20
|
+
type InferRecordFromTable<T> = T extends Table<infer R> ? R : never;
|
|
21
|
+
type InferRecordWithoutTimestamps<T> = Omit<InferRecordFromTable<T>, 'created' | 'updated'>;
|
|
22
|
+
type RequiredProperties<T> = Pick<T, {
|
|
23
|
+
[K in keyof T]: T extends Record<K, T[K]> ? K : never;
|
|
24
|
+
}[keyof T]>;
|
|
25
|
+
type OptionalProperties<T> = Pick<T, {
|
|
26
|
+
[K in keyof T]: T extends Record<K, T[K]> ? never : K;
|
|
27
|
+
}[keyof T]>;
|
|
28
|
+
/**
|
|
29
|
+
* Use this to load a record from source into the db.
|
|
30
|
+
*
|
|
31
|
+
* On Db.init, the record will be inserted if it doesn't exist, and updated if it does exist to mirror what is in source.
|
|
32
|
+
*
|
|
33
|
+
* If the SourceRecordLoader is deleted from source, the record will be deleted from the db on server startup. This will also be the behavior if id is changed - the record with the old id will be deleted.
|
|
34
|
+
*/
|
|
35
|
+
export interface SourceRecordLoader<T extends SourceRecord> extends Loadable {
|
|
36
|
+
table: Table<T>;
|
|
37
|
+
record: {
|
|
38
|
+
[P in keyof RequiredProperties<InferRecordWithoutTimestamps<Table<T>>>]: RequiredProperties<InferRecordWithoutTimestamps<Table<T>>>[P];
|
|
39
|
+
} & {
|
|
40
|
+
[P in keyof OptionalProperties<InferRecordWithoutTimestamps<Table<T>>>]?: OptionalProperties<InferRecordWithoutTimestamps<Table<T>>>[P];
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=SourceRecord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecord.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAqB,MAAM,WAAW,CAAC;AAGlE,eAAO,MAAM,sBAAsB,sEAAyI,CAAC;AAE7K,wBAAgB,qBAAqB,iBASpC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAQpD;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,CAEjM;AAED,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpE,KAAK,4BAA4B,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAC,SAAS,CAAC,CAAC;AAC1F,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACZ,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACtD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ;IAC1E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE;SACL,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvI,GAAG;SACD,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACxI,CAAA;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withSourceRecordColumns = exports.isSourceRecordTable = exports.getSourceRecordTables = exports.getSourceRecordLoaders = void 0;
|
|
4
|
+
var reflection_1 = require("@proteinjs/reflection");
|
|
5
|
+
var Table_1 = require("../Table");
|
|
6
|
+
var Record_1 = require("../Record");
|
|
7
|
+
var Columns_1 = require("../Columns");
|
|
8
|
+
var getSourceRecordLoaders = function () { return reflection_1.SourceRepository.get().objects('@proteinjs/db/SourceRecordLoader'); };
|
|
9
|
+
exports.getSourceRecordLoaders = getSourceRecordLoaders;
|
|
10
|
+
function getSourceRecordTables() {
|
|
11
|
+
var tables = (0, Table_1.getTables)();
|
|
12
|
+
var sourceRecordTables = [];
|
|
13
|
+
for (var _i = 0, tables_1 = tables; _i < tables_1.length; _i++) {
|
|
14
|
+
var table = tables_1[_i];
|
|
15
|
+
if (isSourceRecordTable(table))
|
|
16
|
+
sourceRecordTables.push(table);
|
|
17
|
+
}
|
|
18
|
+
return sourceRecordTables;
|
|
19
|
+
}
|
|
20
|
+
exports.getSourceRecordTables = getSourceRecordTables;
|
|
21
|
+
function isSourceRecordTable(table) {
|
|
22
|
+
for (var columnPropertyName in table.columns) {
|
|
23
|
+
var column = table.columns[columnPropertyName];
|
|
24
|
+
if (column.name == getSourceRecordColumns().isLoadedFromSource.name)
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
exports.isSourceRecordTable = isSourceRecordTable;
|
|
30
|
+
var getSourceRecordColumns = function (hideFromUi) {
|
|
31
|
+
if (hideFromUi === void 0) { hideFromUi = true; }
|
|
32
|
+
return {
|
|
33
|
+
isLoadedFromSource: new Columns_1.BooleanColumn('is_loaded_from_source', { ui: { hidden: hideFromUi } }),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Wrapper function to add default Record and SourceRecord columns to your table's columns.
|
|
38
|
+
*
|
|
39
|
+
* Note: using this requires an explicit dependency on moment@2.29.4 in your package (since transient dependencies are brittle by typescript's standards)
|
|
40
|
+
*
|
|
41
|
+
* @param columns your columns
|
|
42
|
+
* @param hideFromUi if true, source record columns are hidden from RecordTable and RecordForm
|
|
43
|
+
* @returns recordColumns & sourceRecordColumns & your columns
|
|
44
|
+
*/
|
|
45
|
+
function withSourceRecordColumns(columns, hideFromUi) {
|
|
46
|
+
return Object.assign(Object.assign({}, getSourceRecordColumns(hideFromUi)), (0, Record_1.withRecordColumns)(columns));
|
|
47
|
+
}
|
|
48
|
+
exports.withSourceRecordColumns = withSourceRecordColumns;
|
|
49
|
+
//# sourceMappingURL=SourceRecord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecord.js","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,kCAAqD;AACrD,oCAAkE;AAClE,sCAA2C;AAEpC,IAAM,sBAAsB,GAAG,cAA6C,OAAA,6BAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAwB,kCAAkC,CAAC,EAAzF,CAAyF,CAAC;AAAhK,QAAA,sBAAsB,0BAA0I;AAE7K,SAAgB,qBAAqB;IACnC,IAAM,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IAC3B,IAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAArB,IAAI,KAAK,eAAA;QACZ,IAAI,mBAAmB,CAAC,KAAK,CAAC;YAC5B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AATD,sDASC;AAED,SAAgB,mBAAmB,CAAC,KAAiB;IACnD,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;QAC5C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,IAAI,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,IAAI;YACjE,OAAO,IAAI,CAAC;KACf;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,kDAQC;AAMD,IAAM,sBAAsB,GAAG,UAAC,UAAiB;IAAjB,2BAAA,EAAA,iBAAiB;IAC/C,OAAO;QACL,kBAAkB,EAAE,IAAI,uBAAa,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CAAyB,OAA6C,EAAE,UAAoB;IACjI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAAE,IAAA,0BAAiB,EAAW,OAAO,CAAQ,CAAC,CAAC;AAC3H,CAAC;AAFD,0DAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AASA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqC;IAE7C,IAAI;YAoCI,mBAAmB;CAmBlC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.SourceRecordLoader = void 0;
|
|
51
|
+
var util_1 = require("@proteinjs/util");
|
|
52
|
+
var db_query_1 = require("@proteinjs/db-query");
|
|
53
|
+
var SourceRecord_1 = require("./SourceRecord");
|
|
54
|
+
var Db_1 = require("../Db");
|
|
55
|
+
var SourceRecordRepo_1 = require("./SourceRecordRepo");
|
|
56
|
+
var SourceRecordLoader = /** @class */ (function () {
|
|
57
|
+
function SourceRecordLoader() {
|
|
58
|
+
this.logger = new util_1.Logger(this.constructor.name);
|
|
59
|
+
}
|
|
60
|
+
SourceRecordLoader.prototype.load = function () {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
+
var sourceRecordsMap, db, _a, _b, _c, _i, tableName, insertCount, updateCount, deleteCount, table, sourceRecordIds, qb, sourceRecords, _d, sourceRecords_1, sourceRecord, count, dbSourceRecord;
|
|
63
|
+
return __generator(this, function (_e) {
|
|
64
|
+
switch (_e.label) {
|
|
65
|
+
case 0: return [4 /*yield*/, this.getSourceRecordsMap()];
|
|
66
|
+
case 1:
|
|
67
|
+
sourceRecordsMap = _e.sent();
|
|
68
|
+
db = (0, Db_1.getSystemDb)();
|
|
69
|
+
_a = sourceRecordsMap;
|
|
70
|
+
_b = [];
|
|
71
|
+
for (_c in _a)
|
|
72
|
+
_b.push(_c);
|
|
73
|
+
_i = 0;
|
|
74
|
+
_e.label = 2;
|
|
75
|
+
case 2:
|
|
76
|
+
if (!(_i < _b.length)) return [3 /*break*/, 13];
|
|
77
|
+
_c = _b[_i];
|
|
78
|
+
if (!(_c in _a)) return [3 /*break*/, 12];
|
|
79
|
+
tableName = _c;
|
|
80
|
+
insertCount = 0;
|
|
81
|
+
updateCount = 0;
|
|
82
|
+
deleteCount = 0;
|
|
83
|
+
table = sourceRecordsMap[tableName].table;
|
|
84
|
+
sourceRecordIds = sourceRecordsMap[tableName].recordIds;
|
|
85
|
+
if (!!table.sourceRecordOptions.doNotDeleteSourceRecordsFromDb) return [3 /*break*/, 4];
|
|
86
|
+
qb = db_query_1.QueryBuilder.fromObject({ isLoadedFromSource: true }, table.name);
|
|
87
|
+
if (sourceRecordIds.length > 0)
|
|
88
|
+
qb.condition({ field: 'id', operator: 'NOT IN', value: sourceRecordIds });
|
|
89
|
+
return [4 /*yield*/, db.delete(table, qb)];
|
|
90
|
+
case 3:
|
|
91
|
+
deleteCount = _e.sent();
|
|
92
|
+
_e.label = 4;
|
|
93
|
+
case 4:
|
|
94
|
+
sourceRecords = sourceRecordsMap[tableName].records;
|
|
95
|
+
_d = 0, sourceRecords_1 = sourceRecords;
|
|
96
|
+
_e.label = 5;
|
|
97
|
+
case 5:
|
|
98
|
+
if (!(_d < sourceRecords_1.length)) return [3 /*break*/, 11];
|
|
99
|
+
sourceRecord = sourceRecords_1[_d];
|
|
100
|
+
sourceRecord.isLoadedFromSource = true;
|
|
101
|
+
return [4 /*yield*/, db.update(table, sourceRecord)];
|
|
102
|
+
case 6:
|
|
103
|
+
count = _e.sent();
|
|
104
|
+
if (!(count > 0)) return [3 /*break*/, 7];
|
|
105
|
+
updateCount += count;
|
|
106
|
+
return [3 /*break*/, 9];
|
|
107
|
+
case 7: return [4 /*yield*/, db.insert(table, sourceRecord)];
|
|
108
|
+
case 8:
|
|
109
|
+
dbSourceRecord = _e.sent();
|
|
110
|
+
sourceRecord = __assign(__assign({}, sourceRecord), dbSourceRecord);
|
|
111
|
+
insertCount += 1;
|
|
112
|
+
_e.label = 9;
|
|
113
|
+
case 9:
|
|
114
|
+
new SourceRecordRepo_1.SourceRecordRepo().loadSourceRecord(table.name, sourceRecord);
|
|
115
|
+
_e.label = 10;
|
|
116
|
+
case 10:
|
|
117
|
+
_d++;
|
|
118
|
+
return [3 /*break*/, 5];
|
|
119
|
+
case 11:
|
|
120
|
+
this.logger.info("(".concat(table.name, ") Loaded ").concat(sourceRecords.length, " ").concat(sourceRecords.length == 1 ? 'record' : 'records', " from source (inserts: ").concat(insertCount, ", updates: ").concat(updateCount, ", deletes: ").concat(deleteCount, ")"));
|
|
121
|
+
_e.label = 12;
|
|
122
|
+
case 12:
|
|
123
|
+
_i++;
|
|
124
|
+
return [3 /*break*/, 2];
|
|
125
|
+
case 13: return [2 /*return*/];
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
SourceRecordLoader.prototype.getSourceRecordsMap = function () {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
+
var sourceRecordsMap, sourceRecordTables, _i, sourceRecordTables_1, sourceRecordTable, sourceRecordLoaders, _a, sourceRecordLoaders_1, sourceRecordLoader;
|
|
133
|
+
return __generator(this, function (_b) {
|
|
134
|
+
sourceRecordsMap = {};
|
|
135
|
+
sourceRecordTables = (0, SourceRecord_1.getSourceRecordTables)();
|
|
136
|
+
for (_i = 0, sourceRecordTables_1 = sourceRecordTables; _i < sourceRecordTables_1.length; _i++) {
|
|
137
|
+
sourceRecordTable = sourceRecordTables_1[_i];
|
|
138
|
+
if (!sourceRecordsMap[sourceRecordTable.name])
|
|
139
|
+
sourceRecordsMap[sourceRecordTable.name] = { table: sourceRecordTable, records: [], recordIds: [] };
|
|
140
|
+
}
|
|
141
|
+
sourceRecordLoaders = (0, SourceRecord_1.getSourceRecordLoaders)();
|
|
142
|
+
for (_a = 0, sourceRecordLoaders_1 = sourceRecordLoaders; _a < sourceRecordLoaders_1.length; _a++) {
|
|
143
|
+
sourceRecordLoader = sourceRecordLoaders_1[_a];
|
|
144
|
+
if (!sourceRecordsMap[sourceRecordLoader.table.name])
|
|
145
|
+
sourceRecordsMap[sourceRecordLoader.table.name] = { table: sourceRecordLoader.table, records: [], recordIds: [] };
|
|
146
|
+
sourceRecordsMap[sourceRecordLoader.table.name].records.push(sourceRecordLoader.record);
|
|
147
|
+
sourceRecordsMap[sourceRecordLoader.table.name].recordIds.push(sourceRecordLoader.record.id);
|
|
148
|
+
}
|
|
149
|
+
return [2 /*return*/, sourceRecordsMap];
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
return SourceRecordLoader;
|
|
154
|
+
}());
|
|
155
|
+
exports.SourceRecordLoader = SourceRecordLoader;
|
|
156
|
+
//# sourceMappingURL=SourceRecordLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecordLoader.js","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SourceRecord } from './SourceRecord';
|
|
2
|
+
export declare class SourceRecordRepo {
|
|
3
|
+
private static SOURCE_RECORD_MAP;
|
|
4
|
+
private getKey;
|
|
5
|
+
loadSourceRecord(tableName: string, sourceRecord: SourceRecord): void;
|
|
6
|
+
getSourceRecord<T extends SourceRecord = SourceRecord>(tableName: string, sourceRecordId: string): T | undefined;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SourceRecordRepo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecordRepo.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAqC;IAErE,OAAO,CAAC,MAAM;IAId,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAIrE,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,GAAC,SAAS;CAG/G"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourceRecordRepo = void 0;
|
|
4
|
+
var SourceRecordRepo = /** @class */ (function () {
|
|
5
|
+
function SourceRecordRepo() {
|
|
6
|
+
}
|
|
7
|
+
SourceRecordRepo.prototype.getKey = function (tableName, recordId) {
|
|
8
|
+
return "".concat(tableName, ":").concat(recordId);
|
|
9
|
+
};
|
|
10
|
+
SourceRecordRepo.prototype.loadSourceRecord = function (tableName, sourceRecord) {
|
|
11
|
+
SourceRecordRepo.SOURCE_RECORD_MAP[this.getKey(tableName, sourceRecord.id)] = sourceRecord;
|
|
12
|
+
};
|
|
13
|
+
SourceRecordRepo.prototype.getSourceRecord = function (tableName, sourceRecordId) {
|
|
14
|
+
return SourceRecordRepo.SOURCE_RECORD_MAP[this.getKey(tableName, sourceRecordId)];
|
|
15
|
+
};
|
|
16
|
+
SourceRecordRepo.SOURCE_RECORD_MAP = {};
|
|
17
|
+
return SourceRecordRepo;
|
|
18
|
+
}());
|
|
19
|
+
exports.SourceRecordRepo = SourceRecordRepo;
|
|
20
|
+
//# sourceMappingURL=SourceRecordRepo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecordRepo.js","sourceRoot":"","sources":["../../../src/source/SourceRecordRepo.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAcA,CAAC;IAXS,iCAAM,GAAd,UAAe,SAAiB,EAAE,QAAgB;QAChD,OAAO,UAAG,SAAS,cAAI,QAAQ,CAAE,CAAC;IACpC,CAAC;IAED,2CAAgB,GAAhB,UAAiB,SAAiB,EAAE,YAA0B;QAC5D,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC;IAC7F,CAAC;IAED,0CAAe,GAAf,UAAuD,SAAiB,EAAE,cAAsB;QAC9F,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAM,CAAC;IACzF,CAAC;IAZc,kCAAiB,GAAkC,EAAE,CAAC;IAavE,uBAAC;CAAA,AAdD,IAcC;AAdY,4CAAgB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Moment } from '../opt/moment';
|
|
2
|
+
import { Table } from '../Table';
|
|
3
|
+
import { SourceRecord } from '../source/SourceRecord';
|
|
4
|
+
export interface Migration extends SourceRecord {
|
|
5
|
+
description: string;
|
|
6
|
+
status?: 'proposed' | 'running' | 'success' | 'failure';
|
|
7
|
+
failureMessage?: string;
|
|
8
|
+
failureStack?: string;
|
|
9
|
+
startTime?: Moment;
|
|
10
|
+
endTime?: Moment;
|
|
11
|
+
duration?: string;
|
|
12
|
+
output?: any;
|
|
13
|
+
run: () => Promise<any | void>;
|
|
14
|
+
}
|
|
15
|
+
export declare class MigrationTable extends Table<Migration> {
|
|
16
|
+
name: string;
|
|
17
|
+
columns: {
|
|
18
|
+
id: import("../Table").Column<string, any>;
|
|
19
|
+
created: import("../Table").Column<Moment, any>;
|
|
20
|
+
updated: import("../Table").Column<Moment, any>;
|
|
21
|
+
isLoadedFromSource: import("../Table").Column<boolean | undefined, any>;
|
|
22
|
+
} & {} & {
|
|
23
|
+
description: import("../Table").Column<string, any>;
|
|
24
|
+
status: import("../Table").Column<"proposed" | "running" | "success" | "failure" | undefined, any>;
|
|
25
|
+
failureMessage: import("../Table").Column<string | undefined, any>;
|
|
26
|
+
failureStack: import("../Table").Column<string | undefined, any>;
|
|
27
|
+
startTime: import("../Table").Column<Moment | undefined, any>;
|
|
28
|
+
endTime: import("../Table").Column<Moment | undefined, any>;
|
|
29
|
+
duration: import("../Table").Column<string | undefined, any>;
|
|
30
|
+
output: import("../Table").Column<any, any>;
|
|
31
|
+
} & {
|
|
32
|
+
output?: import("../Table").Column<any, any> | undefined;
|
|
33
|
+
};
|
|
34
|
+
sourceRecordOptions: {
|
|
35
|
+
doNotDeleteSourceRecordsFromDb: boolean;
|
|
36
|
+
ui: {
|
|
37
|
+
hideColumns: boolean;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=MigrationTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationTable.d.ts","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,YAAY,EAA2B,MAAM,wBAAwB,CAAC;AAE/E,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,GAAC,SAAS,GAAC,SAAS,GAAC,SAAS,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC3C,IAAI,SAAe;IACpB,OAAO;;;;;;;;;;;;;;;;MASX;IACK,mBAAmB;;;;;MAKxB;CACH"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.MigrationTable = void 0;
|
|
55
|
+
var Columns_1 = require("../Columns");
|
|
56
|
+
var Table_1 = require("../Table");
|
|
57
|
+
var SourceRecord_1 = require("../source/SourceRecord");
|
|
58
|
+
var MigrationTable = /** @class */ (function (_super) {
|
|
59
|
+
__extends(MigrationTable, _super);
|
|
60
|
+
function MigrationTable() {
|
|
61
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
62
|
+
_this.name = 'migration';
|
|
63
|
+
_this.columns = (0, SourceRecord_1.withSourceRecordColumns)({
|
|
64
|
+
description: new Columns_1.StringColumn('description', {}, 4000),
|
|
65
|
+
status: new Columns_1.StringColumn('status', { defaultValue: function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
66
|
+
return [2 /*return*/, 'proposed'];
|
|
67
|
+
}); }); } }),
|
|
68
|
+
failureMessage: new Columns_1.StringColumn('failure_message', {}, 4000),
|
|
69
|
+
failureStack: new Columns_1.StringColumn('failure_stack', {}, 'MAX'),
|
|
70
|
+
startTime: new Columns_1.DateTimeColumn('start_time'),
|
|
71
|
+
endTime: new Columns_1.DateTimeColumn('end_time'),
|
|
72
|
+
duration: new Columns_1.StringColumn('duration'),
|
|
73
|
+
output: new Columns_1.ObjectColumn('output'),
|
|
74
|
+
});
|
|
75
|
+
_this.sourceRecordOptions = {
|
|
76
|
+
doNotDeleteSourceRecordsFromDb: true,
|
|
77
|
+
ui: {
|
|
78
|
+
hideColumns: true,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
return _this;
|
|
82
|
+
}
|
|
83
|
+
return MigrationTable;
|
|
84
|
+
}(Table_1.Table));
|
|
85
|
+
exports.MigrationTable = MigrationTable;
|
|
86
|
+
//# sourceMappingURL=MigrationTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationTable.js","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sCAAwE;AACxE,kCAAiC;AACjC,uDAA+E;AAc/E;IAAoC,kCAAgB;IAApD;QAAA,qEAkBC;QAjBQ,UAAI,GAAG,WAAW,CAAC;QACpB,aAAO,GAAG,IAAA,sCAAuB,EAAY;YACjD,WAAW,EAAE,IAAI,sBAAY,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC;YACtD,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE;oBAAY,sBAAA,UAAU,EAAA;yBAAA,EAAE,CAAC;YAC5E,cAAc,EAAE,IAAI,sBAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC;YAC7D,YAAY,EAAE,IAAI,sBAAY,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC;YAC1D,SAAS,EAAE,IAAI,wBAAc,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,IAAI,wBAAc,CAAC,UAAU,CAAC;YACvC,QAAQ,EAAE,IAAI,sBAAY,CAAC,UAAU,CAAC;YACtC,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAC;QACK,yBAAmB,GAAG;YAC3B,8BAA8B,EAAE,IAAI;YACpC,EAAE,EAAE;gBACF,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;;IACJ,CAAC;IAAD,qBAAC;AAAD,CAAC,AAlBD,CAAoC,aAAK,GAkBxC;AAlBY,wCAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/tables/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAE7D,eAAO,MAAM,MAAM;;CAElB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tables = void 0;
|
|
4
|
+
var MigrationTable_1 = require("./MigrationTable");
|
|
5
|
+
exports.tables = {
|
|
6
|
+
Migration: new MigrationTable_1.MigrationTable(),
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/tables/tables.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAEhD,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,IAAI,+BAAc,EAAsB;CACpD,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DbDriver } from '../src/Db';
|
|
2
|
+
import { Record } from '../src/Record';
|
|
3
|
+
import { Table } from '../src/Table';
|
|
4
|
+
export interface Employee extends Record {
|
|
5
|
+
name: string;
|
|
6
|
+
department?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class EmployeeTable extends Table<Employee> {
|
|
9
|
+
name: string;
|
|
10
|
+
columns: {
|
|
11
|
+
id: import("../src/Table").Column<string, any>;
|
|
12
|
+
created: import("../src/Table").Column<import("moment").Moment, any>;
|
|
13
|
+
updated: import("../src/Table").Column<import("moment").Moment, any>;
|
|
14
|
+
} & {} & {
|
|
15
|
+
name: import("../src/Table").Column<string, any>;
|
|
16
|
+
department: import("../src/Table").Column<string | undefined, any>;
|
|
17
|
+
} & {};
|
|
18
|
+
}
|
|
19
|
+
export declare const crudTests: (driver: DbDriver, dropTable: (table: Table<any>) => Promise<void>) => () => void;
|
|
20
|
+
//# sourceMappingURL=CrudTests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAM,MAAM,WAAW,CAAC;AACzC,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,WAAW,QAAS,SAAQ,MAAM;IACvC,IAAI,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,QAAQ,CAAC;IACjD,IAAI,SAAsB;IAC1B,OAAO;;;;;;;WAGJ;CACH;AAED,eAAO,MAAM,SAAS,WACZ,QAAQ,qBACG,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eAwFhD,CAAA"}
|