interaqt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/ActivityCall.d.ts +68 -0
- package/dist/runtime/ActivityCall.d.ts.map +1 -0
- package/dist/runtime/ActivityCall.js +379 -0
- package/dist/runtime/ActivityCall.js.map +1 -0
- package/dist/runtime/Controller.d.ts +60 -0
- package/dist/runtime/Controller.d.ts.map +1 -0
- package/dist/runtime/Controller.js +225 -0
- package/dist/runtime/Controller.js.map +1 -0
- package/dist/runtime/InteractionCall.d.ts +102 -0
- package/dist/runtime/InteractionCall.d.ts.map +1 -0
- package/dist/runtime/InteractionCall.js +385 -0
- package/dist/runtime/InteractionCall.js.map +1 -0
- package/dist/runtime/MonoSystem.d.ts +26 -0
- package/dist/runtime/MonoSystem.d.ts.map +1 -0
- package/dist/runtime/MonoSystem.js +331 -0
- package/dist/runtime/MonoSystem.js.map +1 -0
- package/dist/runtime/Mysql.d.ts +35 -0
- package/dist/runtime/Mysql.d.ts.map +1 -0
- package/dist/runtime/Mysql.js +171 -0
- package/dist/runtime/Mysql.js.map +1 -0
- package/dist/runtime/PostgreSQL.d.ts +36 -0
- package/dist/runtime/PostgreSQL.d.ts.map +1 -0
- package/dist/runtime/PostgreSQL.js +172 -0
- package/dist/runtime/PostgreSQL.js.map +1 -0
- package/dist/runtime/SQLite.d.ts +34 -0
- package/dist/runtime/SQLite.d.ts.map +1 -0
- package/dist/runtime/SQLite.js +146 -0
- package/dist/runtime/SQLite.js.map +1 -0
- package/dist/runtime/Scheduler.d.ts +81 -0
- package/dist/runtime/Scheduler.d.ts.map +1 -0
- package/dist/runtime/Scheduler.js +457 -0
- package/dist/runtime/Scheduler.js.map +1 -0
- package/dist/runtime/System.d.ts +312 -0
- package/dist/runtime/System.d.ts.map +1 -0
- package/dist/runtime/System.js +90 -0
- package/dist/runtime/System.js.map +1 -0
- package/dist/runtime/asyncInteractionContext.d.ts +3 -0
- package/dist/runtime/asyncInteractionContext.d.ts.map +1 -0
- package/dist/runtime/asyncInteractionContext.js +3 -0
- package/dist/runtime/asyncInteractionContext.js.map +1 -0
- package/dist/runtime/boolExpression.d.ts +23 -0
- package/dist/runtime/boolExpression.d.ts.map +1 -0
- package/dist/runtime/boolExpression.js +43 -0
- package/dist/runtime/boolExpression.js.map +1 -0
- package/dist/runtime/computedDataHandles/Any.d.ts +52 -0
- package/dist/runtime/computedDataHandles/Any.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Any.js +152 -0
- package/dist/runtime/computedDataHandles/Any.js.map +1 -0
- package/dist/runtime/computedDataHandles/Computation.d.ts +108 -0
- package/dist/runtime/computedDataHandles/Computation.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Computation.js +49 -0
- package/dist/runtime/computedDataHandles/Computation.js.map +1 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts +42 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.js +4 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.js.map +1 -0
- package/dist/runtime/computedDataHandles/Count.d.ts +45 -0
- package/dist/runtime/computedDataHandles/Count.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Count.js +85 -0
- package/dist/runtime/computedDataHandles/Count.js.map +1 -0
- package/dist/runtime/computedDataHandles/Every.d.ts +56 -0
- package/dist/runtime/computedDataHandles/Every.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Every.js +178 -0
- package/dist/runtime/computedDataHandles/Every.js.map +1 -0
- package/dist/runtime/computedDataHandles/StateMachine.d.ts +74 -0
- package/dist/runtime/computedDataHandles/StateMachine.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/StateMachine.js +180 -0
- package/dist/runtime/computedDataHandles/StateMachine.js.map +1 -0
- package/dist/runtime/computedDataHandles/Transform.d.ts +26 -0
- package/dist/runtime/computedDataHandles/Transform.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Transform.js +106 -0
- package/dist/runtime/computedDataHandles/Transform.js.map +1 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.d.ts +57 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.js +40 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.js.map +1 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.d.ts +57 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.js +146 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.js.map +1 -0
- package/dist/runtime/computedDataHandles/index.d.ts +7 -0
- package/dist/runtime/computedDataHandles/index.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/index.js +7 -0
- package/dist/runtime/computedDataHandles/index.js.map +1 -0
- package/dist/runtime/index.d.ts +15 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +15 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/server.d.ts +35 -0
- package/dist/runtime/server.d.ts.map +1 -0
- package/dist/runtime/server.js +171 -0
- package/dist/runtime/server.js.map +1 -0
- package/dist/runtime/types/boolExpression.d.ts +22 -0
- package/dist/runtime/types/boolExpression.d.ts.map +1 -0
- package/dist/runtime/types/boolExpression.js +6 -0
- package/dist/runtime/types/boolExpression.js.map +1 -0
- package/dist/runtime/util.d.ts +10 -0
- package/dist/runtime/util.d.ts.map +1 -0
- package/dist/runtime/util.js +39 -0
- package/dist/runtime/util.js.map +1 -0
- package/dist/shared/BoolExp.d.ts +97 -0
- package/dist/shared/BoolExp.d.ts.map +1 -0
- package/dist/shared/BoolExp.js +252 -0
- package/dist/shared/BoolExp.js.map +1 -0
- package/dist/shared/activity/Activity.d.ts +465 -0
- package/dist/shared/activity/Activity.d.ts.map +1 -0
- package/dist/shared/activity/Activity.js +264 -0
- package/dist/shared/activity/Activity.js.map +1 -0
- package/dist/shared/activity/Condition.d.ts +75 -0
- package/dist/shared/activity/Condition.d.ts.map +1 -0
- package/dist/shared/activity/Condition.js +51 -0
- package/dist/shared/activity/Condition.js.map +1 -0
- package/dist/shared/activity/Data.d.ts +115 -0
- package/dist/shared/activity/Data.d.ts.map +1 -0
- package/dist/shared/activity/Data.js +89 -0
- package/dist/shared/activity/Data.js.map +1 -0
- package/dist/shared/attributive.d.ts +93 -0
- package/dist/shared/attributive.d.ts.map +1 -0
- package/dist/shared/attributive.js +59 -0
- package/dist/shared/attributive.js.map +1 -0
- package/dist/shared/computed.d.ts +607 -0
- package/dist/shared/computed.d.ts.map +1 -0
- package/dist/shared/computed.js +202 -0
- package/dist/shared/computed.js.map +1 -0
- package/dist/shared/createClass.d.ts +102 -0
- package/dist/shared/createClass.d.ts.map +1 -0
- package/dist/shared/createClass.js +276 -0
- package/dist/shared/createClass.js.map +1 -0
- package/dist/shared/dictionary/Dictionary.d.ts +40 -0
- package/dist/shared/dictionary/Dictionary.d.ts.map +1 -0
- package/dist/shared/dictionary/Dictionary.js +51 -0
- package/dist/shared/dictionary/Dictionary.js.map +1 -0
- package/dist/shared/entity/Entity.d.ts +149 -0
- package/dist/shared/entity/Entity.d.ts.map +1 -0
- package/dist/shared/entity/Entity.js +226 -0
- package/dist/shared/entity/Entity.js.map +1 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +11 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/user/User.d.ts +21 -0
- package/dist/shared/user/User.d.ts.map +1 -0
- package/dist/shared/user/User.js +11 -0
- package/dist/shared/user/User.js.map +1 -0
- package/dist/shared/utils.d.ts +11 -0
- package/dist/shared/utils.d.ts.map +1 -0
- package/dist/shared/utils.js +19 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/storage/erstorage/AttributeInfo.d.ts +40 -0
- package/dist/storage/erstorage/AttributeInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/AttributeInfo.js +147 -0
- package/dist/storage/erstorage/AttributeInfo.js.map +1 -0
- package/dist/storage/erstorage/AttributeQuery.d.ts +33 -0
- package/dist/storage/erstorage/AttributeQuery.d.ts.map +1 -0
- package/dist/storage/erstorage/AttributeQuery.js +190 -0
- package/dist/storage/erstorage/AttributeQuery.js.map +1 -0
- package/dist/storage/erstorage/EntityQueryHandle.d.ts +29 -0
- package/dist/storage/erstorage/EntityQueryHandle.d.ts.map +1 -0
- package/dist/storage/erstorage/EntityQueryHandle.js +78 -0
- package/dist/storage/erstorage/EntityQueryHandle.js.map +1 -0
- package/dist/storage/erstorage/EntityToTableMap.d.ts +85 -0
- package/dist/storage/erstorage/EntityToTableMap.d.ts.map +1 -0
- package/dist/storage/erstorage/EntityToTableMap.js +262 -0
- package/dist/storage/erstorage/EntityToTableMap.js.map +1 -0
- package/dist/storage/erstorage/LinkInfo.d.ts +35 -0
- package/dist/storage/erstorage/LinkInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/LinkInfo.js +89 -0
- package/dist/storage/erstorage/LinkInfo.js.map +1 -0
- package/dist/storage/erstorage/MatchExp.d.ts +37 -0
- package/dist/storage/erstorage/MatchExp.d.ts.map +1 -0
- package/dist/storage/erstorage/MatchExp.js +211 -0
- package/dist/storage/erstorage/MatchExp.js.map +1 -0
- package/dist/storage/erstorage/Modifier.d.ts +23 -0
- package/dist/storage/erstorage/Modifier.d.ts.map +1 -0
- package/dist/storage/erstorage/Modifier.js +24 -0
- package/dist/storage/erstorage/Modifier.js.map +1 -0
- package/dist/storage/erstorage/NewRecordData.d.ts +42 -0
- package/dist/storage/erstorage/NewRecordData.d.ts.map +1 -0
- package/dist/storage/erstorage/NewRecordData.js +178 -0
- package/dist/storage/erstorage/NewRecordData.js.map +1 -0
- package/dist/storage/erstorage/RecordInfo.d.ts +26 -0
- package/dist/storage/erstorage/RecordInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordInfo.js +111 -0
- package/dist/storage/erstorage/RecordInfo.js.map +1 -0
- package/dist/storage/erstorage/RecordQuery.d.ts +73 -0
- package/dist/storage/erstorage/RecordQuery.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordQuery.js +158 -0
- package/dist/storage/erstorage/RecordQuery.js.map +1 -0
- package/dist/storage/erstorage/RecordQueryAgent.d.ts +84 -0
- package/dist/storage/erstorage/RecordQueryAgent.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordQueryAgent.js +1130 -0
- package/dist/storage/erstorage/RecordQueryAgent.js.map +1 -0
- package/dist/storage/erstorage/Setup.d.ts +49 -0
- package/dist/storage/erstorage/Setup.d.ts.map +1 -0
- package/dist/storage/erstorage/Setup.js +400 -0
- package/dist/storage/erstorage/Setup.js.map +1 -0
- package/dist/storage/erstorage/util.d.ts +6 -0
- package/dist/storage/erstorage/util.d.ts.map +1 -0
- package/dist/storage/erstorage/util.js +25 -0
- package/dist/storage/erstorage/util.js.map +1 -0
- package/dist/storage/index.d.ts +13 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +13 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/utils.d.ts +10 -0
- package/dist/storage/utils.d.ts.map +1 -0
- package/dist/storage/utils.js +48 -0
- package/dist/storage/utils.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordQueryAgent.js","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQueryAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Entity, KlassInstance, Relation } from '@shared';
|
|
2
|
+
import { LinkMapItem, MapData, RecordMapItem } from "./EntityToTableMap.js";
|
|
3
|
+
import { Database } from "@runtime";
|
|
4
|
+
type ColumnData = {
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
fieldType?: string;
|
|
8
|
+
collection?: boolean;
|
|
9
|
+
notNull?: boolean;
|
|
10
|
+
defaultValue?: () => any;
|
|
11
|
+
};
|
|
12
|
+
export type TableData = {
|
|
13
|
+
[k: string]: {
|
|
14
|
+
columns: {
|
|
15
|
+
[k: string]: ColumnData;
|
|
16
|
+
};
|
|
17
|
+
hasId?: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export type MergeLinks = string[];
|
|
21
|
+
export declare class DBSetup {
|
|
22
|
+
entities: KlassInstance<typeof Entity>[];
|
|
23
|
+
relations: KlassInstance<typeof Relation>[];
|
|
24
|
+
database?: Database | undefined;
|
|
25
|
+
mergeLinks: MergeLinks;
|
|
26
|
+
recordToTableMap: Map<string, string>;
|
|
27
|
+
tableToRecordsMap: Map<string, Set<string>>;
|
|
28
|
+
mergeLog: any[];
|
|
29
|
+
tables: TableData;
|
|
30
|
+
map: MapData;
|
|
31
|
+
constructor(entities: KlassInstance<typeof Entity>[], relations: KlassInstance<typeof Relation>[], database?: Database | undefined, mergeLinks?: MergeLinks);
|
|
32
|
+
createRecordToTable(item: string, table: string): void;
|
|
33
|
+
joinTables(joinTargetRecord: string, record: string, link: string): string[] | undefined;
|
|
34
|
+
combineRecordTable(mergeTarget: string, toMerge: string, link: string): string[] | undefined;
|
|
35
|
+
renameTableWithJoinedEntities(originTableName: string): void;
|
|
36
|
+
createRecord(entity: KlassInstance<typeof Entity> | KlassInstance<typeof Relation>, isRelation?: boolean): RecordMapItem;
|
|
37
|
+
createLink(relationName: string, relation: KlassInstance<typeof Relation>): LinkMapItem;
|
|
38
|
+
getRecordName(rawRecord: KlassInstance<typeof Entity> | KlassInstance<typeof Relation>): string;
|
|
39
|
+
createLinkOfRelationAndEntity(relationEntityName: string, relationName: string, relation: KlassInstance<typeof Relation>, isSource: boolean): LinkMapItem;
|
|
40
|
+
getRelationNameOfRelationAndEntity(relationName: string, isSource: boolean): string;
|
|
41
|
+
buildMap(): void;
|
|
42
|
+
mergeRecords(): void;
|
|
43
|
+
assignTableAndField(): void;
|
|
44
|
+
buildTables(): void;
|
|
45
|
+
createTableSQL(): string[];
|
|
46
|
+
createTables(): Promise<any[]>;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=Setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Setup.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/Setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmB,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAG7G,OAAO,EAAuB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzD,KAAK,UAAU,GAAG;IACd,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,UAAU,CAAC,EAAC,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAK,GAAG,CAAA;CAC1B,CAAA;AAGD,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,CAAC,EAAC,MAAM,GAAG;QACR,OAAO,EAAE;YAAC,CAAC,CAAC,EAAC,MAAM,GAAG,UAAU,CAAA;SAAC,CAAC;QAClC,KAAK,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,EAAE,CAAA;AAGjC,qBAAa,OAAO;IAOL,QAAQ,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,EAAE;IACxC,SAAS,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE;IAC3C,QAAQ,CAAC,EAAE,QAAQ;IACnB,UAAU,EAAE,UAAU;IAT1B,gBAAgB,sBAA2B;IAC3C,iBAAiB,2BAAiC;IAClD,QAAQ,EAAE,GAAG,EAAE,CAAK;IACpB,MAAM,EAAC,SAAS,CAAK;IACrB,GAAG,EAAE,OAAO,CAA4B;gBAEpC,QAAQ,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,EAAE,EACxC,SAAS,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,EAC3C,QAAQ,CAAC,EAAE,QAAQ,YAAA,EACnB,UAAU,GAAE,UAAe;IAKtC,mBAAmB,CAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM;IAM7C,UAAU,CAAC,gBAAgB,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAE,SAAS;IAoCrF,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAUrE,6BAA6B,CAAC,eAAe,EAAE,MAAM;IAiBrD,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GA4B/F,aAAa;IAEtB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,GAYhE,WAAW;IAEpB,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,QAAQ,CAAC,GAAG,MAAM;IAU/F,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,GAalI,WAAW;IAEpB,kCAAkC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAI1E,QAAQ;IA6DR,YAAY;IAuHZ,mBAAmB;IAuDnB,WAAW;IA6BX,cAAc;IAUd,YAAY;CAKf"}
|
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import { assert } from "../utils.js";
|
|
2
|
+
import { isRelation } from "./util.js";
|
|
3
|
+
import { ID_ATTR, ROW_ID_ATTR } from "@runtime";
|
|
4
|
+
export class DBSetup {
|
|
5
|
+
constructor(entities, relations, database, mergeLinks = []) {
|
|
6
|
+
this.entities = entities;
|
|
7
|
+
this.relations = relations;
|
|
8
|
+
this.database = database;
|
|
9
|
+
this.mergeLinks = mergeLinks;
|
|
10
|
+
this.recordToTableMap = new Map();
|
|
11
|
+
this.tableToRecordsMap = new Map();
|
|
12
|
+
this.mergeLog = [];
|
|
13
|
+
this.tables = {};
|
|
14
|
+
this.map = { links: {}, records: {} };
|
|
15
|
+
this.buildMap();
|
|
16
|
+
this.buildTables();
|
|
17
|
+
}
|
|
18
|
+
createRecordToTable(item, table) {
|
|
19
|
+
this.recordToTableMap.set(item, table);
|
|
20
|
+
assert(!this.tableToRecordsMap.get(table), `create table for ${item} ${table} failed, ${table} already exist.`);
|
|
21
|
+
this.tableToRecordsMap.set(table, new Set([item]));
|
|
22
|
+
}
|
|
23
|
+
// CAUTION 把一个 item 拉过来,等于把它所有同表的 item 拉过来
|
|
24
|
+
joinTables(joinTargetRecord, record, link) {
|
|
25
|
+
assert(joinTargetRecord !== record, `join entity should not equal, ${record}`);
|
|
26
|
+
const moveTable = this.recordToTableMap.get(record);
|
|
27
|
+
const joinTargetTable = this.recordToTableMap.get(joinTargetRecord);
|
|
28
|
+
const joinTargetSameTableRecords = this.tableToRecordsMap.get(joinTargetTable);
|
|
29
|
+
assert(!!moveTable && !!joinTargetTable, `table not exists for ${record} ${moveTable} to join ${joinTargetRecord} ${joinTargetTable}`);
|
|
30
|
+
if (moveTable == joinTargetTable)
|
|
31
|
+
return;
|
|
32
|
+
const sameTableRecordsToMove = this.tableToRecordsMap.get(moveTable);
|
|
33
|
+
// 0 检测是否有环。CAUTION 就是检测 joinTargetTable 里面是否已经有了重复的。
|
|
34
|
+
const conflicts = [];
|
|
35
|
+
sameTableRecordsToMove.forEach(sameTableRecordToMove => {
|
|
36
|
+
// TODO 还要提供 merge 的关系信息?
|
|
37
|
+
if (joinTargetSameTableRecords.has(sameTableRecordToMove))
|
|
38
|
+
conflicts.push(sameTableRecordToMove);
|
|
39
|
+
});
|
|
40
|
+
if (conflicts.length) {
|
|
41
|
+
this.mergeLog.push({ joinTargetRecord, record, link, conflicts });
|
|
42
|
+
return conflicts;
|
|
43
|
+
}
|
|
44
|
+
// 1. 清空原来 table 里的 records
|
|
45
|
+
this.tableToRecordsMap.set(moveTable, new Set());
|
|
46
|
+
// 2. 移除的 record 对 table 的指针也都修改过来
|
|
47
|
+
sameTableRecordsToMove.forEach(sameTableRecord => this.recordToTableMap.set(sameTableRecord, joinTargetTable));
|
|
48
|
+
// 3. 新 table 合并数据
|
|
49
|
+
this.tableToRecordsMap.set(joinTargetTable, new Set(Array.from(joinTargetSameTableRecords).concat(Array.from(sameTableRecordsToMove))));
|
|
50
|
+
// 4. 记录 log
|
|
51
|
+
this.mergeLog.push({ joinTargetRecord, record, link });
|
|
52
|
+
}
|
|
53
|
+
combineRecordTable(mergeTarget, toMerge, link) {
|
|
54
|
+
let linkConflict;
|
|
55
|
+
// target/toMerge 一定是不同实体才能merge 所以这里可以用这个判断方向
|
|
56
|
+
const virtualLinkName = this.map.records[link].attributes.source.linkName;
|
|
57
|
+
linkConflict = this.joinTables(mergeTarget, link, virtualLinkName);
|
|
58
|
+
if (linkConflict)
|
|
59
|
+
return linkConflict;
|
|
60
|
+
return this.joinTables(mergeTarget, toMerge, link);
|
|
61
|
+
}
|
|
62
|
+
renameTableWithJoinedEntities(originTableName) {
|
|
63
|
+
const records = Array.from(this.tableToRecordsMap.get(originTableName));
|
|
64
|
+
if (!records.length)
|
|
65
|
+
return;
|
|
66
|
+
// CAUTION 有合并的情况的话,里面一定有 entity,只用 entity 的名字。除非TableName 始终只用其中 的 entity 名字
|
|
67
|
+
const entities = records.filter(recordName => !this.map.records[recordName].isRelation);
|
|
68
|
+
const newTableName = entities.length ? entities.join('_') : originTableName;
|
|
69
|
+
this.tableToRecordsMap.delete(originTableName);
|
|
70
|
+
this.tableToRecordsMap.set(newTableName, new Set(records));
|
|
71
|
+
records.forEach(record => {
|
|
72
|
+
this.recordToTableMap.set(record, newTableName);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
createRecord(entity, isRelation) {
|
|
76
|
+
const entityWithProps = entity;
|
|
77
|
+
const attributes = Object.fromEntries(entityWithProps.properties.map((property) => {
|
|
78
|
+
const prop = property;
|
|
79
|
+
return [
|
|
80
|
+
prop.name,
|
|
81
|
+
{
|
|
82
|
+
type: prop.type,
|
|
83
|
+
computed: prop.computed,
|
|
84
|
+
collection: prop.collection,
|
|
85
|
+
defaultValue: prop.defaultValue
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
}));
|
|
89
|
+
// 自动补充
|
|
90
|
+
attributes[ID_ATTR] = {
|
|
91
|
+
type: 'id'
|
|
92
|
+
};
|
|
93
|
+
if (isRelation) {
|
|
94
|
+
assert(!attributes.source && !attributes.target, 'source and target is reserved name for relation attributes');
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
table: entityWithProps.name,
|
|
98
|
+
attributes,
|
|
99
|
+
isRelation,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
createLink(relationName, relation) {
|
|
103
|
+
const relationWithProps = relation;
|
|
104
|
+
if (!relationWithProps.type)
|
|
105
|
+
debugger;
|
|
106
|
+
return {
|
|
107
|
+
table: relationName,
|
|
108
|
+
relType: relationWithProps.type.split(':'),
|
|
109
|
+
sourceRecord: this.getRecordName(relationWithProps.source),
|
|
110
|
+
sourceProperty: relationWithProps.sourceProperty,
|
|
111
|
+
targetRecord: this.getRecordName(relationWithProps.target),
|
|
112
|
+
targetProperty: relationWithProps.targetProperty,
|
|
113
|
+
recordName: relationName,
|
|
114
|
+
isTargetReliance: relationWithProps.isTargetReliance
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
getRecordName(rawRecord) {
|
|
118
|
+
if (isRelation(rawRecord)) {
|
|
119
|
+
const record = rawRecord;
|
|
120
|
+
return `${record.source.name}_${record.sourceProperty}_${record.targetProperty}_${record.target.name}`;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const record = rawRecord;
|
|
124
|
+
return record.name;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//虚拟 link
|
|
128
|
+
createLinkOfRelationAndEntity(relationEntityName, relationName, relation, isSource) {
|
|
129
|
+
const relationWithProps = relation;
|
|
130
|
+
const [sourceRelType, targetRelType] = relationWithProps.type.split(':');
|
|
131
|
+
return {
|
|
132
|
+
table: undefined, // 虚拟 link 没有表
|
|
133
|
+
sourceRecord: relationEntityName,
|
|
134
|
+
sourceProperty: isSource ? 'source' : 'target',
|
|
135
|
+
targetRecord: isSource ? this.getRecordName(relationWithProps.source) : this.getRecordName(relationWithProps.target),
|
|
136
|
+
// targetRecord: isSource ? relation.source.name: relation.target.name,
|
|
137
|
+
targetProperty: undefined, // 不能从 entity 来获取关系表
|
|
138
|
+
relType: [isSource ? targetRelType : sourceRelType, '1'],
|
|
139
|
+
isSourceRelation: true,
|
|
140
|
+
mergedTo: 'combined'
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
getRelationNameOfRelationAndEntity(relationName, isSource) {
|
|
144
|
+
return `${relationName}_${isSource ? 'source' : 'target'}`;
|
|
145
|
+
}
|
|
146
|
+
buildMap() {
|
|
147
|
+
// 1. 按照范式生成基础 entity record
|
|
148
|
+
this.entities.forEach(entity => {
|
|
149
|
+
const entityWithProps = entity;
|
|
150
|
+
assert(!this.map.records[entityWithProps.name], `entity name ${entityWithProps.name} is duplicated`);
|
|
151
|
+
this.map.records[entityWithProps.name] = this.createRecord(entity);
|
|
152
|
+
// 记录一下 entity 和 表的关系。后面用于合并的时候做计算。
|
|
153
|
+
this.createRecordToTable(entityWithProps.name, entityWithProps.name);
|
|
154
|
+
});
|
|
155
|
+
// 2. 生成 relation record 以及所有的 link
|
|
156
|
+
this.relations.forEach(relation => {
|
|
157
|
+
const sourceName = this.getRecordName(relation.source);
|
|
158
|
+
const targetName = this.getRecordName(relation.target);
|
|
159
|
+
const relationName = relation.name || `${sourceName}_${relation.sourceProperty}_${relation.targetProperty}_${targetName}`;
|
|
160
|
+
assert(!this.map.records[relationName], `relation name ${relationName} is duplicated`);
|
|
161
|
+
this.map.records[relationName] = this.createRecord(relation, true);
|
|
162
|
+
this.createRecordToTable(relationName, relationName);
|
|
163
|
+
// 记录 relation 里面的 Entity 和 Entity 的关系
|
|
164
|
+
this.map.links[relationName] = this.createLink(relationName, relation);
|
|
165
|
+
// 记录 relation 和实体之间的关系。这个关系是单向的,只能从 relation 发起。
|
|
166
|
+
const virtualSourceRelationName = this.getRelationNameOfRelationAndEntity(relationName, true);
|
|
167
|
+
this.map.links[virtualSourceRelationName] = this.createLinkOfRelationAndEntity(relationName, virtualSourceRelationName, relation, true);
|
|
168
|
+
const virtualTargetRelationName = this.getRelationNameOfRelationAndEntity(relationName, false);
|
|
169
|
+
this.map.links[virtualTargetRelationName] = this.createLinkOfRelationAndEntity(relationName, virtualTargetRelationName, relation, false);
|
|
170
|
+
});
|
|
171
|
+
// 3. 根据 Link 补充 record attribute 到 record 里面。方便之后的查询。
|
|
172
|
+
Object.entries(this.map.links).forEach(([relation, relationData]) => {
|
|
173
|
+
assert(!relationData.isSourceRelation || (relationData.sourceProperty === 'source' || relationData.sourceProperty === 'target'), 'virtual relation sourceProperty should only be source/target');
|
|
174
|
+
if (!this.map.records[relationData.sourceRecord])
|
|
175
|
+
debugger;
|
|
176
|
+
this.map.records[relationData.sourceRecord].attributes[relationData.sourceProperty] = {
|
|
177
|
+
type: 'id',
|
|
178
|
+
isRecord: true,
|
|
179
|
+
relType: relationData.relType,
|
|
180
|
+
recordName: relationData.targetRecord,
|
|
181
|
+
linkName: relation,
|
|
182
|
+
isSource: true,
|
|
183
|
+
// CAUTION 这里是表示这个 target 是 reliance
|
|
184
|
+
isReliance: relationData.isTargetReliance
|
|
185
|
+
};
|
|
186
|
+
// CAUTION 关联查询时,不可能出现从实体来获取一个关系的情况,语义不正确。
|
|
187
|
+
assert(!(relationData.isSourceRelation && relationData.targetProperty), 'virtual relation should not have targetProperty');
|
|
188
|
+
if (relationData.targetProperty) {
|
|
189
|
+
this.map.records[relationData.targetRecord].attributes[relationData.targetProperty] = {
|
|
190
|
+
type: 'id',
|
|
191
|
+
isRecord: true,
|
|
192
|
+
// CAUTION 这里翻转了!在 AttributeInfo 中方便判断。不能用 Array.reverse(),因为不会返回新数组。
|
|
193
|
+
relType: [relationData.relType[1], relationData.relType[0]],
|
|
194
|
+
recordName: relationData.sourceRecord,
|
|
195
|
+
linkName: relation,
|
|
196
|
+
isSource: false,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
this.mergeRecords();
|
|
201
|
+
this.assignTableAndField();
|
|
202
|
+
}
|
|
203
|
+
mergeRecords() {
|
|
204
|
+
// 基本合表策略:
|
|
205
|
+
// 1. 从用户指定的 mergeLinks 里面开始合并三表合一
|
|
206
|
+
// 2. reliance 三表合一。这里有一个不能有链的检测。
|
|
207
|
+
// 3. 剩余的 x:1 关系只合并关系表。
|
|
208
|
+
// 合并后要做的事:
|
|
209
|
+
// 1) 修改 links 里面的数据。以里面的 mergeTo 作为判断标准
|
|
210
|
+
// TODO 可能有 reliance 实体声明自己不合并。
|
|
211
|
+
// 0. 做好数据准备,先把 reliance 关系和 非 reliance 的 xToOne 找出来等待处理。CAUTION oneToOneReliance 肯定不是 symmetric ?
|
|
212
|
+
const oneToOneRelianceLinks = Object.fromEntries(Object.entries(this.map.links).filter(([, linkData]) => {
|
|
213
|
+
return !linkData.isSourceRelation && linkData.relType[0] === '1' && linkData.relType[1] === '1' && linkData.isTargetReliance;
|
|
214
|
+
}));
|
|
215
|
+
const xToOneNotRelianceLinks = Object.fromEntries(Object.entries(this.map.links).filter(([, linkData]) => {
|
|
216
|
+
// CAUTION 一定要过滤掉虚拟 link
|
|
217
|
+
return !linkData.isSourceRelation && !linkData.isTargetReliance &&
|
|
218
|
+
((linkData.relType[0] === '1' && linkData.relType[1] === '1') ||
|
|
219
|
+
(linkData.relType[0] === 'n' && linkData.relType[1] === '1') ||
|
|
220
|
+
(linkData.relType[0] === '1' && linkData.relType[1] === 'n'));
|
|
221
|
+
}));
|
|
222
|
+
const mergedLinks = [];
|
|
223
|
+
// 1. 遍历用户指定的 merge 路径。
|
|
224
|
+
this.mergeLinks.forEach(path => {
|
|
225
|
+
const [rootRecord, ...attributePath] = path.split('.');
|
|
226
|
+
let currentRecord = rootRecord;
|
|
227
|
+
for (let i = 0; i < attributePath.length; i++) {
|
|
228
|
+
const currentAttribute = attributePath[i];
|
|
229
|
+
const attributeData = this.map.records[currentRecord].attributes[currentAttribute];
|
|
230
|
+
const linkName = attributeData.linkName;
|
|
231
|
+
const linkData = this.map.links[linkName];
|
|
232
|
+
const { relType, sourceRecord, targetRecord } = linkData;
|
|
233
|
+
assert(relType[0] === '1' && relType[1] === '1' && sourceRecord !== targetRecord, `only 1:1 can merge: ${rootRecord}.${attributePath.slice(0, i + 1).join('.')}`);
|
|
234
|
+
const recordToMove = sourceRecord === currentRecord ? targetRecord : sourceRecord;
|
|
235
|
+
const conflicts = this.combineRecordTable(currentRecord, recordToMove, linkName);
|
|
236
|
+
if (conflicts) {
|
|
237
|
+
throw new Error(`conflict found when join ${linkName}, ${conflicts.join(',')} already merged with ${currentRecord}`);
|
|
238
|
+
}
|
|
239
|
+
// 成功要修改 map 的数据
|
|
240
|
+
linkData.mergedTo = 'combined';
|
|
241
|
+
mergedLinks.push(linkData);
|
|
242
|
+
// 路径下一个
|
|
243
|
+
currentRecord = attributeData.recordName;
|
|
244
|
+
// 处理完了 在上面的 links 里面删除这个 link
|
|
245
|
+
delete oneToOneRelianceLinks[linkName];
|
|
246
|
+
delete xToOneNotRelianceLinks[linkName];
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
// 2. reliance 三表合一。这里有一个不能有链的检测。
|
|
250
|
+
Object.values(oneToOneRelianceLinks).forEach(linkData => {
|
|
251
|
+
const { sourceRecord, targetRecord, recordName: linkRecord } = linkData;
|
|
252
|
+
// 只是尝试。有冲突就不会处理
|
|
253
|
+
const conflicts = this.combineRecordTable(sourceRecord, targetRecord, linkRecord);
|
|
254
|
+
if (!conflicts) {
|
|
255
|
+
linkData.mergedTo = 'combined';
|
|
256
|
+
mergedLinks.push(linkData);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
// 改为 尝试 merge link
|
|
260
|
+
const linkToRecordLinkName = this.map.records[linkRecord].attributes.source.linkName;
|
|
261
|
+
const linkConflicts = this.joinTables(sourceRecord, linkRecord, linkToRecordLinkName);
|
|
262
|
+
if (!linkConflicts) {
|
|
263
|
+
this.mergeLog.push(conflicts);
|
|
264
|
+
linkData.mergedTo = 'source';
|
|
265
|
+
mergedLinks.push(linkData);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
// CAUTION 这些关系里面没有虚拟关系。上面过滤掉了。
|
|
270
|
+
// FIXME 还要加上 reliance 不是 1:1 的?
|
|
271
|
+
// 3. 剩余的 x:1 关系只合并关系表。
|
|
272
|
+
Object.values(xToOneNotRelianceLinks).forEach(linkData => {
|
|
273
|
+
const { relType, sourceRecord, targetRecord, recordName: linkRecord } = linkData;
|
|
274
|
+
const mergeWithSource = relType[1] !== 'n';
|
|
275
|
+
const mergeTarget = mergeWithSource ? sourceRecord : targetRecord;
|
|
276
|
+
const linkToRecordLinkName = this.map.records[linkRecord].attributes[mergeWithSource ? 'source' : 'target'].linkName;
|
|
277
|
+
// 只是尝试。有冲突就不会处理
|
|
278
|
+
const linkConflicts = this.joinTables(mergeTarget, linkRecord, linkToRecordLinkName);
|
|
279
|
+
if (!linkConflicts) {
|
|
280
|
+
linkData.mergedTo = mergeWithSource ? 'source' : 'target';
|
|
281
|
+
mergedLinks.push(linkData);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
// 4. 先给所有的 virtualLink 赋予默认 的 mergeTo,下一步再按照实际情况修改该
|
|
285
|
+
Object.values(this.map.links).forEach(linkData => {
|
|
286
|
+
if (linkData.isSourceRelation) {
|
|
287
|
+
linkData.mergedTo = 'source';
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
// 4.1 给 virtualLink 也更新 map
|
|
291
|
+
mergedLinks.forEach(mergedLinkData => {
|
|
292
|
+
if (mergedLinkData.mergedTo === 'combined' || mergedLinkData.mergedTo === 'source') {
|
|
293
|
+
const sourceLinkName = this.map.records[mergedLinkData.recordName].attributes.source.linkName;
|
|
294
|
+
this.map.links[sourceLinkName].mergedTo = 'combined';
|
|
295
|
+
}
|
|
296
|
+
if (mergedLinkData.mergedTo === 'combined' || mergedLinkData.mergedTo === 'target') {
|
|
297
|
+
const sourceLinkName = this.map.records[mergedLinkData.recordName].attributes.target.linkName;
|
|
298
|
+
this.map.links[sourceLinkName].mergedTo = 'combined';
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
// TODO 独立字段的处理
|
|
302
|
+
}
|
|
303
|
+
assignTableAndField() {
|
|
304
|
+
// 1. 给所有的 record 分配表(表名重命名过了)
|
|
305
|
+
const originTableNames = Array.from(this.tableToRecordsMap.keys());
|
|
306
|
+
for (let originTableName of originTableNames) {
|
|
307
|
+
this.renameTableWithJoinedEntities(originTableName);
|
|
308
|
+
}
|
|
309
|
+
// 2. 给所有 record 分配 table,给 value 字段分配 field
|
|
310
|
+
Object.entries(this.map.records).forEach(([recordName, record]) => {
|
|
311
|
+
record.table = this.recordToTableMap.get(recordName);
|
|
312
|
+
Object.entries(record.attributes).forEach(([attributeName, attributeData]) => {
|
|
313
|
+
if (attributeData.isRecord)
|
|
314
|
+
return;
|
|
315
|
+
const valueAttributeData = attributeData;
|
|
316
|
+
valueAttributeData.field = `${recordName}_${attributeName}`;
|
|
317
|
+
valueAttributeData.fieldType = this.database.mapToDBFieldType(valueAttributeData.type, valueAttributeData.collection);
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
// 2.1 给所有 relation record 的 table 信息同步到 map.link 上
|
|
321
|
+
Object.entries(this.map.links).forEach(([linkName, link]) => {
|
|
322
|
+
if (link.isSourceRelation)
|
|
323
|
+
return;
|
|
324
|
+
link.table = this.recordToTableMap.get(linkName);
|
|
325
|
+
});
|
|
326
|
+
// 3. 开始决定合表后的 source/target 字段分配。这里只要处理作为 relation 的 record 的 source/target 字段
|
|
327
|
+
// CAUTION 因为后面无论是处理 join 还是其他的,都是从 record 上去找字段。不是从 link 中
|
|
328
|
+
Object.entries(this.map.records).forEach(([recordName, record]) => {
|
|
329
|
+
if (!record.isRelation)
|
|
330
|
+
return;
|
|
331
|
+
const link = this.map.links[recordName];
|
|
332
|
+
const sourceAttribute = record.attributes.source;
|
|
333
|
+
const targetAttribute = record.attributes.target;
|
|
334
|
+
if (!link.mergedTo) {
|
|
335
|
+
sourceAttribute.field = `${recordName}_source`;
|
|
336
|
+
sourceAttribute.fieldType = this.database.mapToDBFieldType(sourceAttribute.type, false);
|
|
337
|
+
targetAttribute.field = `${recordName}_target`;
|
|
338
|
+
targetAttribute.fieldType = this.database.mapToDBFieldType(targetAttribute.type, false);
|
|
339
|
+
}
|
|
340
|
+
else if (link.mergedTo === 'source') {
|
|
341
|
+
// field 名字以 sourceRecord 里面的称呼为主
|
|
342
|
+
targetAttribute.field = `${link.sourceRecord}_${link.sourceProperty}`;
|
|
343
|
+
targetAttribute.fieldType = this.database.mapToDBFieldType(targetAttribute.type, false);
|
|
344
|
+
}
|
|
345
|
+
else if (link.mergedTo === 'target') {
|
|
346
|
+
sourceAttribute.field = `${link.targetRecord}_${link.targetProperty}`;
|
|
347
|
+
sourceAttribute.fieldType = this.database.mapToDBFieldType(sourceAttribute.type, false);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// combined 情况
|
|
351
|
+
// const sourceRecord = this.map.records[link.sourceRecord]
|
|
352
|
+
// const targetRecord = this.map.records[link.targetRecord]
|
|
353
|
+
// record.attributes.source.field = sourceRecord.attributes[ID_ATTR].field
|
|
354
|
+
// record.attributes.target.field = targetRecord.attributes[ID_ATTR].field
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
buildTables() {
|
|
359
|
+
// 先添加 valueAttributes 的字段。
|
|
360
|
+
Object.entries(this.map.records).forEach(([recordName, record]) => {
|
|
361
|
+
if (!this.tables[record.table]) {
|
|
362
|
+
this.tables[record.table] = { columns: {
|
|
363
|
+
[ROW_ID_ATTR]: {
|
|
364
|
+
name: ROW_ID_ATTR,
|
|
365
|
+
type: 'pk',
|
|
366
|
+
fieldType: this.database.mapToDBFieldType('pk'),
|
|
367
|
+
}
|
|
368
|
+
} };
|
|
369
|
+
}
|
|
370
|
+
// 有分配 field 的都说明在这张表内
|
|
371
|
+
Object.entries(record.attributes).forEach(([attributeName, attribute]) => {
|
|
372
|
+
if (!attribute.field || this.tables[record.table].columns[attribute.field])
|
|
373
|
+
return;
|
|
374
|
+
if (!attribute.fieldType) {
|
|
375
|
+
throw new Error(`fieldType not found for ${attribute.field} ${attribute.type}`);
|
|
376
|
+
}
|
|
377
|
+
this.tables[record.table].columns[attribute.field] = {
|
|
378
|
+
name: attribute.field,
|
|
379
|
+
type: attribute.type,
|
|
380
|
+
fieldType: attribute.fieldType,
|
|
381
|
+
defaultValue: attribute.defaultValue
|
|
382
|
+
};
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
createTableSQL() {
|
|
387
|
+
return Object.keys(this.tables).map(tableName => (`
|
|
388
|
+
CREATE TABLE "${tableName}" (
|
|
389
|
+
${Object.values(this.tables[tableName].columns).map(column => (`
|
|
390
|
+
"${column.name}" ${column.fieldType} ${column.defaultValue ? `DEFAULT ${JSON.stringify(column.defaultValue())}` : ''}`)).join(',')}
|
|
391
|
+
)
|
|
392
|
+
`));
|
|
393
|
+
}
|
|
394
|
+
createTables() {
|
|
395
|
+
return Promise.all(this.createTableSQL().map(sql => {
|
|
396
|
+
return this.database.scheme(sql);
|
|
397
|
+
}));
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
//# sourceMappingURL=Setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../../src/storage/erstorage/Setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function flatten<T>(arr: (T | T[])[]): T[];
|
|
2
|
+
export declare function someAsync<T>(arr: T[], handle: (t: T) => Promise<boolean>): Promise<boolean>;
|
|
3
|
+
export declare function isRelation(relation: any): boolean;
|
|
4
|
+
export declare function indexBy(arr: any[], key: string): any;
|
|
5
|
+
export declare function assert(condition: any, message: string): void;
|
|
6
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/util.ts"],"names":[],"mappings":"AACA,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,OAIxC;AACD,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAQjG,wBAAgB,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAEjD;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,OAE9C;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAKrD"}
|