ormbridge 0.13.0 → 0.15.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 +23 -22
- package/dist/cliRunner.js +20 -2
- package/dist/cliRunner.js.map +1 -1
- package/dist/config.d.ts +6 -1
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -1
- package/dist/emitters/jpa.d.ts +17 -2
- package/dist/emitters/jpa.js +55 -7
- package/dist/emitters/jpa.js.map +1 -1
- package/dist/emitters/jpaKeyClass.d.ts +18 -0
- package/dist/emitters/jpaKeyClass.js +88 -0
- package/dist/emitters/jpaKeyClass.js.map +1 -0
- package/dist/emitters/jpaKeys.d.ts +1 -7
- package/dist/emitters/jpaKeys.js +0 -43
- package/dist/emitters/jpaKeys.js.map +1 -1
- package/dist/emitters/jpaRelations.d.ts +5 -1
- package/dist/emitters/jpaRelations.js +7 -1
- package/dist/emitters/jpaRelations.js.map +1 -1
- package/dist/emitters/jpaRender.d.ts +5 -1
- package/dist/emitters/jpaRender.js +11 -4
- package/dist/emitters/jpaRender.js.map +1 -1
- package/dist/emitters/jpaTypes.d.ts +9 -3
- package/dist/emitters/jpaTypes.js +8 -0
- package/dist/emitters/jpaTypes.js.map +1 -1
- package/dist/emitters/sequelize.d.ts +16 -3
- package/dist/emitters/sequelize.js +270 -45
- package/dist/emitters/sequelize.js.map +1 -1
- package/dist/emitters/sequelize7.d.ts +68 -0
- package/dist/emitters/sequelize7.js +199 -0
- package/dist/emitters/sequelize7.js.map +1 -0
- package/dist/emitters/sequelizeText.d.ts +12 -0
- package/dist/emitters/sequelizeText.js +37 -0
- package/dist/emitters/sequelizeText.js.map +1 -0
- package/dist/formats.d.ts +13 -2
- package/dist/formats.js +17 -6
- package/dist/formats.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/io.js +105 -26
- package/dist/io.js.map +1 -1
- package/dist/parsers/efcore.js +60 -3
- package/dist/parsers/efcore.js.map +1 -1
- package/dist/parsers/efcoreAnnotations.js +1 -1
- package/dist/parsers/efcoreAnnotations.js.map +1 -1
- package/dist/parsers/efcoreBuild.d.ts +1 -0
- package/dist/parsers/efcoreBuild.js +15 -4
- package/dist/parsers/efcoreBuild.js.map +1 -1
- package/dist/parsers/efcoreEntities.js +90 -22
- package/dist/parsers/efcoreEntities.js.map +1 -1
- package/dist/parsers/efcoreMigrationHistory.d.ts +17 -0
- package/dist/parsers/efcoreMigrationHistory.js +105 -0
- package/dist/parsers/efcoreMigrationHistory.js.map +1 -0
- package/dist/parsers/efcoreMigrationReplay.d.ts +25 -0
- package/dist/parsers/efcoreMigrationReplay.js +790 -0
- package/dist/parsers/efcoreMigrationReplay.js.map +1 -0
- package/dist/parsers/efcoreMigrationSchema.d.ts +14 -0
- package/dist/parsers/efcoreMigrationSchema.js +550 -0
- package/dist/parsers/efcoreMigrationSchema.js.map +1 -0
- package/dist/parsers/efcoreMigrationState.d.ts +82 -0
- package/dist/parsers/efcoreMigrationState.js +104 -0
- package/dist/parsers/efcoreMigrationState.js.map +1 -0
- package/dist/parsers/efcoreModel.d.ts +18 -2
- package/dist/parsers/efcoreOwned.d.ts +12 -0
- package/dist/parsers/efcoreOwned.js +139 -0
- package/dist/parsers/efcoreOwned.js.map +1 -0
- package/dist/parsers/efcoreSnapshot.d.ts +85 -0
- package/dist/parsers/efcoreSnapshot.js +791 -0
- package/dist/parsers/efcoreSnapshot.js.map +1 -0
- package/dist/parsers/efcoreSteps.js +28 -3
- package/dist/parsers/efcoreSteps.js.map +1 -1
- package/dist/parsers/jpaBuild.js +2 -1
- package/dist/parsers/jpaBuild.js.map +1 -1
- package/dist/parsers/jpaClasses.js +7 -1
- package/dist/parsers/jpaClasses.js.map +1 -1
- package/dist/parsers/jpaColumns.d.ts +4 -1
- package/dist/parsers/jpaColumns.js +8 -2
- package/dist/parsers/jpaColumns.js.map +1 -1
- package/dist/parsers/jpaEntities.js +15 -0
- package/dist/parsers/jpaEntities.js.map +1 -1
- package/dist/parsers/jpaModel.d.ts +6 -0
- package/dist/parsers/sequelize.js +37 -10
- package/dist/parsers/sequelize.js.map +1 -1
- package/dist/parsers/sequelizeAssociations.js +13 -2
- package/dist/parsers/sequelizeAssociations.js.map +1 -1
- package/dist/parsers/sequelizeCollect.d.ts +7 -2
- package/dist/parsers/sequelizeCollect.js +120 -9
- package/dist/parsers/sequelizeCollect.js.map +1 -1
- package/dist/parsers/sequelizeMigrationState.d.ts +75 -0
- package/dist/parsers/sequelizeMigrationState.js +330 -0
- package/dist/parsers/sequelizeMigrationState.js.map +1 -0
- package/dist/parsers/sequelizeMigrations.d.ts +14 -0
- package/dist/parsers/sequelizeMigrations.js +1123 -0
- package/dist/parsers/sequelizeMigrations.js.map +1 -0
- package/dist/parsers/sequelizeModel.d.ts +19 -2
- package/dist/parsers/sqlDdl.js +1306 -65
- package/dist/parsers/sqlDdl.js.map +1 -1
- package/dist/parsers/sqlMigrationOrder.d.ts +8 -0
- package/dist/parsers/sqlMigrationOrder.js +110 -0
- package/dist/parsers/sqlMigrationOrder.js.map +1 -0
- package/dist/parsers/sqlSyntax.d.ts +6 -0
- package/dist/parsers/sqlSyntax.js +15 -2
- package/dist/parsers/sqlSyntax.js.map +1 -1
- package/dist/parsers/zod.d.ts +11 -0
- package/dist/parsers/zod.js +796 -0
- package/dist/parsers/zod.js.map +1 -0
- package/dist/parsers/zodFields.d.ts +73 -0
- package/dist/parsers/zodFields.js +681 -0
- package/dist/parsers/zodFields.js.map +1 -0
- package/dist/parsers/zodSyntax.d.ts +72 -0
- package/dist/parsers/zodSyntax.js +347 -0
- package/dist/parsers/zodSyntax.js.map +1 -0
- package/dist/styles.d.ts +3 -3
- package/dist/styles.js +4 -4
- package/dist/styles.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"efcoreMigrationSchema.js","sourceRoot":"","sources":["../../src/parsers/efcoreMigrationSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { IrOnDelete } from '../ir.js';
|
|
2
|
+
import type { CsType, CsValue } from './csharpSyntax.js';
|
|
3
|
+
/**
|
|
4
|
+
* The schema as EF Core migrations leave it: what `migrationBuilder` calls build up (the `Up` methods replayed in
|
|
5
|
+
* order) and what a `*ModelSnapshot.cs` says the model is. Both readers fill the same state, so the two can be
|
|
6
|
+
* compared and either can be turned into the shared model.
|
|
7
|
+
*/
|
|
8
|
+
export interface MigrationColumn {
|
|
9
|
+
/** The database column name. */
|
|
10
|
+
name: string;
|
|
11
|
+
/** The type argument of `table.Column<T>()` / `AddColumn<T>()` / `Property<T>()`. */
|
|
12
|
+
clrType: CsType | undefined;
|
|
13
|
+
/** The database type as the provider wrote it (`nvarchar(450)`, `INTEGER`, `uuid`). */
|
|
14
|
+
storeType?: string;
|
|
15
|
+
isNullable: boolean;
|
|
16
|
+
maxLength?: number;
|
|
17
|
+
precision?: number;
|
|
18
|
+
scale?: number;
|
|
19
|
+
isUnicode?: boolean;
|
|
20
|
+
isRowVersion: boolean;
|
|
21
|
+
defaultValue?: CsValue;
|
|
22
|
+
defaultSql?: string;
|
|
23
|
+
computedSql?: string;
|
|
24
|
+
isStored?: boolean;
|
|
25
|
+
/** An identity, serial or autoincrement column. */
|
|
26
|
+
isIdentity: boolean;
|
|
27
|
+
/** The property name in the model snapshot (differs from the column name when the column is renamed). */
|
|
28
|
+
propertyName?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface MigrationKey {
|
|
31
|
+
name?: string;
|
|
32
|
+
columns: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface MigrationIndex extends MigrationKey {
|
|
35
|
+
name: string;
|
|
36
|
+
isUnique: boolean;
|
|
37
|
+
filter?: string;
|
|
38
|
+
includes: string[];
|
|
39
|
+
descending: boolean[];
|
|
40
|
+
method?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface MigrationForeignKey {
|
|
43
|
+
name: string;
|
|
44
|
+
columns: string[];
|
|
45
|
+
principalSchema?: string;
|
|
46
|
+
principalTable: string;
|
|
47
|
+
principalColumns: string[];
|
|
48
|
+
onDelete: IrOnDelete;
|
|
49
|
+
onUpdate: IrOnDelete;
|
|
50
|
+
/** The navigation property on the dependent entity (model snapshot only). */
|
|
51
|
+
navigation?: string;
|
|
52
|
+
/** The navigation property on the principal entity (model snapshot only). */
|
|
53
|
+
inverseNavigation?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface MigrationTable {
|
|
56
|
+
schema?: string;
|
|
57
|
+
name: string;
|
|
58
|
+
columns: MigrationColumn[];
|
|
59
|
+
primaryKey?: MigrationKey;
|
|
60
|
+
uniqueKeys: MigrationKey[];
|
|
61
|
+
indexes: MigrationIndex[];
|
|
62
|
+
foreignKeys: MigrationForeignKey[];
|
|
63
|
+
/** Names of the check constraints, which the shared model cannot hold. */
|
|
64
|
+
checkConstraints: string[];
|
|
65
|
+
/** The entity class name (model snapshot only). */
|
|
66
|
+
entityName?: string;
|
|
67
|
+
}
|
|
68
|
+
/** The tables of the schema, in creation order. */
|
|
69
|
+
export type MigrationSchema = Map<string, MigrationTable>;
|
|
70
|
+
/** The key of a table in the schema: `schema.name`, or the name alone. */
|
|
71
|
+
export declare function tableKey(schema: string | undefined, name: string): string;
|
|
72
|
+
export declare function findColumn(table: MigrationTable, name: string): MigrationColumn | undefined;
|
|
73
|
+
/** Maps a `ReferentialAction` member name to the action; undefined for a name EF Core does not have. */
|
|
74
|
+
export declare function referentialAction(name: string): IrOnDelete | undefined;
|
|
75
|
+
/** The name EF Core gives a primary key, a foreign key, an index or an alternate key unless told otherwise. */
|
|
76
|
+
export declare function conventionalName(kind: 'PK' | 'FK' | 'IX' | 'AK', table: string, columns: readonly string[], principal?: string): string;
|
|
77
|
+
/** Renames a column in the table and in every key, index and foreign key that names it. */
|
|
78
|
+
export declare function renameColumn(schema: MigrationSchema, table: MigrationTable, from: string, to: string): void;
|
|
79
|
+
/** Removes a column and the keys, indexes and foreign keys that used it. */
|
|
80
|
+
export declare function dropColumn(table: MigrationTable, name: string): void;
|
|
81
|
+
/** Renames a table and points the foreign keys of the other tables at the new name. */
|
|
82
|
+
export declare function renameTable(schema: MigrationSchema, table: MigrationTable, newSchema: string | undefined, newName: string): void;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/** The key of a table in the schema: `schema.name`, or the name alone. */
|
|
2
|
+
export function tableKey(schema, name) {
|
|
3
|
+
return schema === undefined || schema === '' ? name : `${schema}.${name}`;
|
|
4
|
+
}
|
|
5
|
+
export function findColumn(table, name) {
|
|
6
|
+
return table.columns.find((column) => column.name === name);
|
|
7
|
+
}
|
|
8
|
+
/** The referential actions `ReferentialAction` has. */
|
|
9
|
+
const ACTIONS = {
|
|
10
|
+
Cascade: 'cascade',
|
|
11
|
+
SetNull: 'setNull',
|
|
12
|
+
Restrict: 'restrict',
|
|
13
|
+
NoAction: 'noAction',
|
|
14
|
+
SetDefault: 'setDefault',
|
|
15
|
+
};
|
|
16
|
+
/** Maps a `ReferentialAction` member name to the action; undefined for a name EF Core does not have. */
|
|
17
|
+
export function referentialAction(name) {
|
|
18
|
+
return ACTIONS[name];
|
|
19
|
+
}
|
|
20
|
+
/** The name EF Core gives a primary key, a foreign key, an index or an alternate key unless told otherwise. */
|
|
21
|
+
export function conventionalName(kind, table, columns, principal) {
|
|
22
|
+
const parts = [kind, table];
|
|
23
|
+
if (principal !== undefined) {
|
|
24
|
+
parts.push(principal);
|
|
25
|
+
}
|
|
26
|
+
if (kind !== 'PK') {
|
|
27
|
+
parts.push(columns.join('_'));
|
|
28
|
+
}
|
|
29
|
+
return parts.join('_');
|
|
30
|
+
}
|
|
31
|
+
function replaceAll(names, from, to) {
|
|
32
|
+
for (let at = 0; at < names.length; at += 1) {
|
|
33
|
+
if (names[at] === from) {
|
|
34
|
+
names[at] = to;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Renames a column in the table and in every key, index and foreign key that names it. */
|
|
39
|
+
export function renameColumn(schema, table, from, to) {
|
|
40
|
+
const column = findColumn(table, from);
|
|
41
|
+
if (column !== undefined) {
|
|
42
|
+
column.name = to;
|
|
43
|
+
}
|
|
44
|
+
const lists = [
|
|
45
|
+
...(table.primaryKey === undefined ? [] : [table.primaryKey.columns]),
|
|
46
|
+
...table.uniqueKeys.map((key) => key.columns),
|
|
47
|
+
...table.indexes.map((index) => index.columns),
|
|
48
|
+
...table.indexes.map((index) => index.includes),
|
|
49
|
+
...table.foreignKeys.map((key) => key.columns),
|
|
50
|
+
];
|
|
51
|
+
for (const names of lists) {
|
|
52
|
+
replaceAll(names, from, to);
|
|
53
|
+
}
|
|
54
|
+
for (const other of schema.values()) {
|
|
55
|
+
for (const key of other.foreignKeys) {
|
|
56
|
+
if (key.principalTable === table.name &&
|
|
57
|
+
key.principalSchema === table.schema) {
|
|
58
|
+
replaceAll(key.principalColumns, from, to);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Removes a column and the keys, indexes and foreign keys that used it. */
|
|
64
|
+
export function dropColumn(table, name) {
|
|
65
|
+
table.columns = table.columns.filter((column) => column.name !== name);
|
|
66
|
+
if (table.primaryKey?.columns.includes(name) === true) {
|
|
67
|
+
delete table.primaryKey;
|
|
68
|
+
}
|
|
69
|
+
table.uniqueKeys = table.uniqueKeys.filter((key) => !key.columns.includes(name));
|
|
70
|
+
table.indexes = table.indexes.filter((index) => !index.columns.includes(name) && !index.includes.includes(name));
|
|
71
|
+
table.foreignKeys = table.foreignKeys.filter((key) => !key.columns.includes(name));
|
|
72
|
+
}
|
|
73
|
+
/** Renames a table and points the foreign keys of the other tables at the new name. */
|
|
74
|
+
export function renameTable(schema, table, newSchema, newName) {
|
|
75
|
+
const oldKey = tableKey(table.schema, table.name);
|
|
76
|
+
const oldName = table.name;
|
|
77
|
+
const oldSchema = table.schema;
|
|
78
|
+
const entries = [...schema.entries()];
|
|
79
|
+
schema.clear();
|
|
80
|
+
table.name = newName;
|
|
81
|
+
if (newSchema === undefined) {
|
|
82
|
+
delete table.schema;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
table.schema = newSchema;
|
|
86
|
+
}
|
|
87
|
+
for (const [key, value] of entries) {
|
|
88
|
+
schema.set(key === oldKey ? tableKey(table.schema, newName) : key, value);
|
|
89
|
+
}
|
|
90
|
+
for (const other of schema.values()) {
|
|
91
|
+
for (const key of other.foreignKeys) {
|
|
92
|
+
if (key.principalTable === oldName && key.principalSchema === oldSchema) {
|
|
93
|
+
key.principalTable = newName;
|
|
94
|
+
if (newSchema === undefined) {
|
|
95
|
+
delete key.principalSchema;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
key.principalSchema = newSchema;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=efcoreMigrationState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"efcoreMigrationState.js","sourceRoot":"","sources":["../../src/parsers/efcoreMigrationState.ts"],"names":[],"mappings":"AA6EA,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,MAA0B,EAAE,IAAY;IAC/D,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAqB,EACrB,IAAY;IAEZ,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,uDAAuD;AACvD,MAAM,OAAO,GAAyC;IACpD,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,gBAAgB,CAC9B,IAA+B,EAC/B,KAAa,EACb,OAA0B,EAC1B,SAAkB;IAElB,MAAM,KAAK,GAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,IAAY,EAAE,EAAU;IAC3D,KAAK,IAAI,EAAE,GAAW,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,YAAY,CAC1B,MAAuB,EACvB,KAAqB,EACrB,IAAY,EACZ,EAAU;IAEV,MAAM,MAAM,GAAgC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAe;QACxB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3D,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QAC9D,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/D,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;KACpE,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpC,IACE,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,IAAI;gBACjC,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,MAAM,EACpC,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,KAAqB,EAAE,IAAY;IAC5D,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAClC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAClD,CAAC;IACF,IAAI,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CACxC,CAAC,GAAiB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnD,CAAC;IACF,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAClC,CAAC,KAAqB,EAAE,EAAE,CACxB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAClE,CAAC;IACF,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC1C,CAAC,GAAwB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,WAAW,CACzB,MAAuB,EACvB,KAAqB,EACrB,SAA6B,EAC7B,OAAe;IAEf,MAAM,MAAM,GAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAW,KAAK,CAAC,IAAI,CAAC;IACnC,MAAM,SAAS,GAAuB,KAAK,CAAC,MAAM,CAAC;IACnD,MAAM,OAAO,GAA+B,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;IACrB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;IAC3B,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,cAAc,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACxE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC;gBAC7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,OAAO,GAAG,CAAC,eAAe,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -62,8 +62,11 @@ export interface OwnedConfig extends Scope {
|
|
|
62
62
|
many: boolean;
|
|
63
63
|
/** True for `ToJson()`: the owned type is stored in one JSON column. */
|
|
64
64
|
toJson: boolean;
|
|
65
|
-
/**
|
|
65
|
+
/** The table of `ToTable(...)` on an owned collection (the table of an owned type read as flattened is not used). */
|
|
66
66
|
table?: string;
|
|
67
|
+
schema?: string;
|
|
68
|
+
/** Indexes and alternate keys declared inside an `OwnsMany` lambda; they belong to the collection's table. */
|
|
69
|
+
indexes: ConfigIndex[];
|
|
67
70
|
}
|
|
68
71
|
/** A relationship from HasOne / HasMany and what follows. */
|
|
69
72
|
export interface FluentRelation {
|
|
@@ -191,7 +194,15 @@ export interface NavMember {
|
|
|
191
194
|
inverseAttr?: string;
|
|
192
195
|
requiredAttr: boolean;
|
|
193
196
|
}
|
|
194
|
-
|
|
197
|
+
/** An owned collection (`OwnsMany`, or an `[Owned]` type used in a collection): its own table, read as a child entity. */
|
|
198
|
+
export interface OwnedManyMember {
|
|
199
|
+
kind: 'ownedMany';
|
|
200
|
+
/** The collection property on the owner. */
|
|
201
|
+
name: string;
|
|
202
|
+
/** The child entity, which is also listed with the entities of the input. */
|
|
203
|
+
child: string;
|
|
204
|
+
}
|
|
205
|
+
export type Member = ScalarMember | NavMember | OwnedManyMember;
|
|
195
206
|
/** One entity with its mapped members, before relationships are resolved. */
|
|
196
207
|
export interface EntityInfo {
|
|
197
208
|
name: string;
|
|
@@ -206,4 +217,9 @@ export interface EntityInfo {
|
|
|
206
217
|
/** True when nullable reference types are in effect in the declaring file. */
|
|
207
218
|
nullableRefs: boolean;
|
|
208
219
|
order: number;
|
|
220
|
+
/** Set for the child entity of an owned collection: the entity that owns it and the collection property. */
|
|
221
|
+
ownedBy?: {
|
|
222
|
+
owner: string;
|
|
223
|
+
navigation: string;
|
|
224
|
+
};
|
|
209
225
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConfigStore } from './efcoreFluent.js';
|
|
2
|
+
import type { EntityInfo } from './efcoreModel.js';
|
|
3
|
+
import { type Link } from './efcoreRelations.js';
|
|
4
|
+
/**
|
|
5
|
+
* Gives the child entity of every owned collection (`OwnsMany`) the key and foreign key EF Core adds: a foreign key
|
|
6
|
+
* to the owner named after the owner and its key (`CustomerId`, for a composite key `OrderCustomerId` and
|
|
7
|
+
* `OrderId`), and a key made of those columns plus an `Id` (the property of that name, else a generated integer).
|
|
8
|
+
* The table is named after the owned class, or after the owner's table and the collection (`Customers_Lines`) when
|
|
9
|
+
* several owners own the same class. Returns the foreign keys as relationships; a collection whose owner has no
|
|
10
|
+
* key cannot be keyed and is removed from `entities` with a warning.
|
|
11
|
+
*/
|
|
12
|
+
export declare function completeOwnedCollections(entities: EntityInfo[], resolve: (name: string) => EntityInfo | undefined, store: ConfigStore, warn: (message: string) => void): Link[];
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { tableNameOf } from './efcoreBuild.js';
|
|
2
|
+
import { findScalar, keyOf } from './efcoreRelations.js';
|
|
3
|
+
const INTEGER_KEYS = new Set([
|
|
4
|
+
'int',
|
|
5
|
+
'Int32',
|
|
6
|
+
'long',
|
|
7
|
+
'Int64',
|
|
8
|
+
'short',
|
|
9
|
+
'Int16',
|
|
10
|
+
]);
|
|
11
|
+
/**
|
|
12
|
+
* Gives the child entity of every owned collection (`OwnsMany`) the key and foreign key EF Core adds: a foreign key
|
|
13
|
+
* to the owner named after the owner and its key (`CustomerId`, for a composite key `OrderCustomerId` and
|
|
14
|
+
* `OrderId`), and a key made of those columns plus an `Id` (the property of that name, else a generated integer).
|
|
15
|
+
* The table is named after the owned class, or after the owner's table and the collection (`Customers_Lines`) when
|
|
16
|
+
* several owners own the same class. Returns the foreign keys as relationships; a collection whose owner has no
|
|
17
|
+
* key cannot be keyed and is removed from `entities` with a warning.
|
|
18
|
+
*/
|
|
19
|
+
export function completeOwnedCollections(entities, resolve, store, warn) {
|
|
20
|
+
const links = [];
|
|
21
|
+
const children = entities.filter((info) => info.ownedBy !== undefined);
|
|
22
|
+
const owners = new Map();
|
|
23
|
+
for (const child of children) {
|
|
24
|
+
owners.set(child.cls.name, (owners.get(child.cls.name) ?? 0) + 1);
|
|
25
|
+
}
|
|
26
|
+
for (const child of children) {
|
|
27
|
+
const ownedBy = child.ownedBy;
|
|
28
|
+
const owner = ownedBy === undefined ? undefined : resolve(ownedBy.owner);
|
|
29
|
+
if (ownedBy === undefined || owner === undefined) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const place = `${owner.name}.${ownedBy.navigation}`;
|
|
33
|
+
const ownerKey = keyOf(owner);
|
|
34
|
+
if (ownerKey.length === 0) {
|
|
35
|
+
warn(`${place}: the owned collection of ${child.cls.name} needs ${owner.name} to have a primary key to reference; the collection was skipped.`);
|
|
36
|
+
entities.splice(entities.indexOf(child), 1);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const foreignKey = ownerKey.map((path) => {
|
|
40
|
+
const member = findScalar(owner, path);
|
|
41
|
+
const name = `${owner.cls.name}${path}`;
|
|
42
|
+
return {
|
|
43
|
+
kind: 'scalar',
|
|
44
|
+
path: name,
|
|
45
|
+
name,
|
|
46
|
+
type: {
|
|
47
|
+
name: member?.type.name ?? 'int',
|
|
48
|
+
text: member?.type.text ?? 'int',
|
|
49
|
+
args: member?.type.args ?? [],
|
|
50
|
+
nullable: false,
|
|
51
|
+
arrayDepth: member?.type.arrayDepth ?? 0,
|
|
52
|
+
},
|
|
53
|
+
config: { required: true },
|
|
54
|
+
declaredIn: child.name,
|
|
55
|
+
prefix: '',
|
|
56
|
+
forceNullable: false,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
const declared = findScalar(child, 'Id');
|
|
60
|
+
let id;
|
|
61
|
+
if (declared === undefined) {
|
|
62
|
+
id = {
|
|
63
|
+
kind: 'scalar',
|
|
64
|
+
path: 'Id',
|
|
65
|
+
name: 'Id',
|
|
66
|
+
type: {
|
|
67
|
+
name: 'int',
|
|
68
|
+
text: 'int',
|
|
69
|
+
args: [],
|
|
70
|
+
nullable: false,
|
|
71
|
+
arrayDepth: 0,
|
|
72
|
+
},
|
|
73
|
+
config: { generated: 'onAdd' },
|
|
74
|
+
declaredIn: child.name,
|
|
75
|
+
prefix: '',
|
|
76
|
+
forceNullable: false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
id = declared;
|
|
81
|
+
const settings = id.config;
|
|
82
|
+
if (settings.generated === undefined && INTEGER_KEYS.has(id.type.name)) {
|
|
83
|
+
settings.generated = 'onAdd';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
child.members = [
|
|
87
|
+
...foreignKey,
|
|
88
|
+
id,
|
|
89
|
+
...child.members.filter((member) => member !== declared),
|
|
90
|
+
];
|
|
91
|
+
const foreignNames = foreignKey.map((member) => member.name);
|
|
92
|
+
child.config.key = [...foreignNames, 'Id'];
|
|
93
|
+
if (child.config.table === undefined) {
|
|
94
|
+
child.config.table =
|
|
95
|
+
(owners.get(child.cls.name) ?? 0) > 1
|
|
96
|
+
? `${tableNameOf(owner, store)}_${ownedBy.navigation}`
|
|
97
|
+
: child.cls.name;
|
|
98
|
+
}
|
|
99
|
+
if (child.config.schema === undefined) {
|
|
100
|
+
const ownerSchema = owner.config.schema;
|
|
101
|
+
if (ownerSchema !== undefined) {
|
|
102
|
+
child.config.schema = ownerSchema;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const dependentNav = {
|
|
106
|
+
kind: 'nav',
|
|
107
|
+
name: owner.cls.name,
|
|
108
|
+
target: owner.name,
|
|
109
|
+
many: false,
|
|
110
|
+
nullable: false,
|
|
111
|
+
declaredIn: child.name,
|
|
112
|
+
requiredAttr: true,
|
|
113
|
+
};
|
|
114
|
+
const principalNav = {
|
|
115
|
+
kind: 'nav',
|
|
116
|
+
name: ownedBy.navigation,
|
|
117
|
+
target: child.name,
|
|
118
|
+
many: true,
|
|
119
|
+
nullable: false,
|
|
120
|
+
declaredIn: owner.name,
|
|
121
|
+
requiredAttr: false,
|
|
122
|
+
};
|
|
123
|
+
links.push({
|
|
124
|
+
dependent: child,
|
|
125
|
+
principal: owner,
|
|
126
|
+
dependentNav,
|
|
127
|
+
principalNav,
|
|
128
|
+
foreignKey: foreignNames,
|
|
129
|
+
isShadow: false,
|
|
130
|
+
principalKey: ownerKey,
|
|
131
|
+
isOneToOne: false,
|
|
132
|
+
required: true,
|
|
133
|
+
onDelete: 'Cascade',
|
|
134
|
+
constraintName: undefined,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return links;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=efcoreOwned.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"efcoreOwned.js","sourceRoot":"","sources":["../../src/parsers/efcoreOwned.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { IrOnDelete } from '../ir.js';
|
|
2
|
+
import { type CsClass, type CsType, type CsValue } from './csharpSyntax.js';
|
|
3
|
+
import { type MigrationSchema } from './efcoreMigrationState.js';
|
|
4
|
+
interface SnapProperty {
|
|
5
|
+
name: string;
|
|
6
|
+
clrType: CsType | undefined;
|
|
7
|
+
isRequired: boolean;
|
|
8
|
+
isIdentity: boolean;
|
|
9
|
+
generatedOnAdd: boolean;
|
|
10
|
+
isRowVersion: boolean;
|
|
11
|
+
column?: string;
|
|
12
|
+
storeType?: string;
|
|
13
|
+
maxLength?: number;
|
|
14
|
+
precision?: number;
|
|
15
|
+
scale?: number;
|
|
16
|
+
isUnicode?: boolean;
|
|
17
|
+
defaultValue?: CsValue;
|
|
18
|
+
defaultSql?: string;
|
|
19
|
+
computedSql?: string;
|
|
20
|
+
isStored?: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface SnapIndex {
|
|
23
|
+
properties: string[];
|
|
24
|
+
isUnique: boolean;
|
|
25
|
+
name?: string;
|
|
26
|
+
filter?: string;
|
|
27
|
+
descending: boolean[];
|
|
28
|
+
method?: string;
|
|
29
|
+
includes: string[];
|
|
30
|
+
}
|
|
31
|
+
interface SnapRelation {
|
|
32
|
+
target: string;
|
|
33
|
+
navigation?: string;
|
|
34
|
+
inverse?: string;
|
|
35
|
+
foreignKey: string[];
|
|
36
|
+
principalKey: string[];
|
|
37
|
+
onDelete?: IrOnDelete;
|
|
38
|
+
isRequired: boolean;
|
|
39
|
+
constraintName?: string;
|
|
40
|
+
}
|
|
41
|
+
interface SnapOwned {
|
|
42
|
+
navigation: string;
|
|
43
|
+
many: boolean;
|
|
44
|
+
entity: SnapEntity;
|
|
45
|
+
}
|
|
46
|
+
export interface SnapEntity {
|
|
47
|
+
name: string;
|
|
48
|
+
properties: Map<string, SnapProperty>;
|
|
49
|
+
key?: string[];
|
|
50
|
+
keyName?: string;
|
|
51
|
+
alternateKeys: {
|
|
52
|
+
properties: string[];
|
|
53
|
+
name?: string;
|
|
54
|
+
}[];
|
|
55
|
+
indexes: SnapIndex[];
|
|
56
|
+
table?: string;
|
|
57
|
+
/** `undefined` when ToTable gave no schema; `null` for the explicit `(string)null`. */
|
|
58
|
+
schema?: string | null;
|
|
59
|
+
isView: boolean;
|
|
60
|
+
baseType?: string;
|
|
61
|
+
owned: SnapOwned[];
|
|
62
|
+
requiredNavigations: Set<string>;
|
|
63
|
+
relations: SnapRelation[];
|
|
64
|
+
/** The foreign key properties from `WithOwner().HasForeignKey(...)` on an owned type. */
|
|
65
|
+
ownerKey: string[];
|
|
66
|
+
checks: string[];
|
|
67
|
+
/** The column of `ToJson("column")` on an owned type; `''` for `ToJson()`. */
|
|
68
|
+
jsonColumn?: string;
|
|
69
|
+
/** True for ComplexProperty, whose columns share the table of the owner. */
|
|
70
|
+
isComplex: boolean;
|
|
71
|
+
/** True when `IsRequired()` was called on the complex property or the owned navigation builder. */
|
|
72
|
+
isRequired: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** `App.Models.Blog` is `Blog`; `PostTag` stays; `App.Post.Address#Address` is `Address`. */
|
|
75
|
+
export declare function shortEntityName(name: string): string;
|
|
76
|
+
/** The entities of a snapshot, by entity name, and its default schema. */
|
|
77
|
+
export interface SnapshotRead {
|
|
78
|
+
entities: Map<string, SnapEntity>;
|
|
79
|
+
defaultSchema?: string;
|
|
80
|
+
}
|
|
81
|
+
/** Finds the snapshot class and reads its `BuildModel` method into entities. */
|
|
82
|
+
export declare function readSnapshotClass(cls: CsClass, path: string, warn: (message: string) => void): SnapshotRead | undefined;
|
|
83
|
+
/** Turns the entities of the snapshot into tables. */
|
|
84
|
+
export declare function snapshotSchema(entities: ReadonlyMap<string, SnapEntity>, defaultSchema: string | undefined, schema: MigrationSchema, path: string, warn: (message: string) => void): void;
|
|
85
|
+
export {};
|