typeorm 0.3.23-dev.055eafd → 0.3.23-dev.6ebae3b

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.
Files changed (63) hide show
  1. package/browser/decorator/ForeignKey.d.ts +22 -0
  2. package/browser/decorator/ForeignKey.js +41 -0
  3. package/browser/decorator/ForeignKey.js.map +1 -0
  4. package/browser/decorator/options/ForeignKeyOptions.d.ts +24 -0
  5. package/browser/decorator/options/ForeignKeyOptions.js +3 -0
  6. package/browser/decorator/options/ForeignKeyOptions.js.map +1 -0
  7. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  8. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -0
  9. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  10. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  11. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  12. package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  13. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -0
  14. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  15. package/browser/entity-schema/EntitySchemaOptions.d.ts +5 -0
  16. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  17. package/browser/entity-schema/EntitySchemaTransformer.js +29 -0
  18. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  19. package/browser/index.d.ts +1 -0
  20. package/browser/index.js +1 -0
  21. package/browser/index.js.map +1 -1
  22. package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  23. package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -0
  24. package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  25. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  26. package/browser/metadata-args/MetadataArgsStorage.js +8 -0
  27. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  28. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  29. package/browser/metadata-builder/EntityMetadataBuilder.js +70 -0
  30. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  31. package/decorator/ForeignKey.d.ts +22 -0
  32. package/decorator/ForeignKey.js +44 -0
  33. package/decorator/ForeignKey.js.map +1 -0
  34. package/decorator/options/ForeignKeyOptions.d.ts +24 -0
  35. package/decorator/options/ForeignKeyOptions.js +4 -0
  36. package/decorator/options/ForeignKeyOptions.js.map +1 -0
  37. package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  38. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +4 -0
  39. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  40. package/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  41. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  42. package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  43. package/entity-schema/EntitySchemaForeignKeyOptions.js +4 -0
  44. package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  45. package/entity-schema/EntitySchemaOptions.d.ts +5 -0
  46. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  47. package/entity-schema/EntitySchemaTransformer.js +29 -0
  48. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  49. package/index.d.ts +1 -0
  50. package/index.js +1 -0
  51. package/index.js.map +1 -1
  52. package/index.mjs +2 -0
  53. package/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  54. package/metadata-args/ForeignKeyMetadataArgs.js +4 -0
  55. package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  56. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  57. package/metadata-args/MetadataArgsStorage.js +8 -0
  58. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  59. package/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  60. package/metadata-builder/EntityMetadataBuilder.js +70 -0
  61. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  62. package/package.json +1 -1
  63. package/typeorm-model-shim.js +6 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entity-schema/EntitySchemaColumnOptions.ts"],"names":[],"mappings":"","file":"EntitySchemaColumnOptions.js","sourcesContent":["import { ColumnType } from \"../driver/types/ColumnTypes\"\nimport { ValueTransformer } from \"../decorator/options/ValueTransformer\"\nimport { SpatialColumnOptions } from \"../decorator/options/SpatialColumnOptions\"\n\nexport interface EntitySchemaColumnOptions extends SpatialColumnOptions {\n /**\n * Indicates if this column is a primary column.\n */\n primary?: boolean\n\n /**\n * Indicates if this column is of type ObjectId\n */\n objectId?: boolean\n\n /**\n * Indicates if this column is a created date column.\n */\n createDate?: boolean\n\n /**\n * Indicates if this column is an update date column.\n */\n updateDate?: boolean\n\n /**\n * Indicates if this column is a delete date column.\n */\n deleteDate?: boolean\n\n /**\n * Indicates if this column is a version column.\n */\n version?: boolean\n\n /**\n * Indicates if this column is a treeChildrenCount column.\n */\n treeChildrenCount?: boolean\n\n /**\n * Indicates if this column is a treeLevel column.\n */\n treeLevel?: boolean\n\n /**\n * Column type. Must be one of the value from the ColumnTypes class.\n */\n type: ColumnType\n\n /**\n * Column name in the database.\n */\n name?: string\n\n /**\n * Column type's length. For example type = \"string\" and length = 100 means that ORM will create a column with\n * type varchar(100).\n */\n length?: string | number\n\n /**\n * Column type's display width. Used only on some column types in MySQL.\n * For example, INT(4) specifies an INT with a display width of four digits.\n */\n width?: number\n\n /**\n * Indicates if column's value can be set to NULL.\n */\n nullable?: boolean\n\n /**\n * Indicates if column value is not updated by \"save\" operation.\n * It means you'll be able to write this value only when you first time insert the object.\n * Default value is \"false\".\n *\n * @deprecated Please use the `update` option instead. Careful, it takes\n * the opposite value to readonly.\n *\n */\n readonly?: boolean\n\n /**\n * Indicates if column value is updated by \"save\" operation.\n * If false you'll be able to write this value only when you first time insert the object.\n * Default value is \"true\".\n */\n update?: boolean\n\n /**\n * Indicates if column is always selected by QueryBuilder and find operations.\n * Default value is \"true\".\n */\n select?: boolean\n\n /**\n * Indicates if column is inserted by default.\n * Default value is \"true\".\n */\n insert?: boolean\n\n /**\n * Specifies if this column will use AUTO_INCREMENT or not (e.g. generated number).\n */\n generated?: true | \"increment\" | \"uuid\" | \"rowid\"\n\n /**\n * Specifies if column's value must be unique or not.\n */\n unique?: boolean\n\n /**\n * Extra column definition. Should be used only in emergency situations. Note that if you'll use this property\n * auto schema generation will not work properly anymore. Avoid using it.\n */\n columnDefinition?: string\n\n /**\n * Column comment.\n */\n comment?: string\n\n /**\n * Default database value.\n */\n default?: any\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column), which is the maximum\n * number of digits that are stored for the values.\n */\n precision?: number\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column), which represents the number\n * of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill?: boolean\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned?: boolean\n\n /**\n * Defines a column character set.\n * Not supported by all database types.\n */\n charset?: string\n\n /**\n * Defines a column collation.\n */\n collation?: string\n\n /**\n * Array of possible enumerated values.\n */\n enum?: any[] | Object\n\n /**\n * Exact name of enum\n */\n enumName?: string\n\n /**\n * Generated column expression.\n */\n asExpression?: string\n\n /**\n * Generated column type.\n */\n generatedType?: \"VIRTUAL\" | \"STORED\"\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\" | \"string\"\n\n /**\n * Indicates if this column is an array.\n * Can be simply set to true or array length can be specified.\n * Supported only by postgres.\n */\n array?: boolean\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer | ValueTransformer[]\n\n /**\n * Name of the primary key constraint.\n */\n primaryKeyConstraintName?: string\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/entity-schema/EntitySchemaColumnOptions.ts"],"names":[],"mappings":"","file":"EntitySchemaColumnOptions.js","sourcesContent":["import { ColumnType } from \"../driver/types/ColumnTypes\"\nimport { ValueTransformer } from \"../decorator/options/ValueTransformer\"\nimport { SpatialColumnOptions } from \"../decorator/options/SpatialColumnOptions\"\nimport { EntitySchemaColumnForeignKeyOptions } from \"./EntitySchemaColumnForeignKeyOptions\"\n\nexport interface EntitySchemaColumnOptions extends SpatialColumnOptions {\n /**\n * Indicates if this column is a primary column.\n */\n primary?: boolean\n\n /**\n * Indicates if this column is of type ObjectId\n */\n objectId?: boolean\n\n /**\n * Indicates if this column is a created date column.\n */\n createDate?: boolean\n\n /**\n * Indicates if this column is an update date column.\n */\n updateDate?: boolean\n\n /**\n * Indicates if this column is a delete date column.\n */\n deleteDate?: boolean\n\n /**\n * Indicates if this column is a version column.\n */\n version?: boolean\n\n /**\n * Indicates if this column is a treeChildrenCount column.\n */\n treeChildrenCount?: boolean\n\n /**\n * Indicates if this column is a treeLevel column.\n */\n treeLevel?: boolean\n\n /**\n * Column type. Must be one of the value from the ColumnTypes class.\n */\n type: ColumnType\n\n /**\n * Column name in the database.\n */\n name?: string\n\n /**\n * Column type's length. For example type = \"string\" and length = 100 means that ORM will create a column with\n * type varchar(100).\n */\n length?: string | number\n\n /**\n * Column type's display width. Used only on some column types in MySQL.\n * For example, INT(4) specifies an INT with a display width of four digits.\n */\n width?: number\n\n /**\n * Indicates if column's value can be set to NULL.\n */\n nullable?: boolean\n\n /**\n * Indicates if column value is not updated by \"save\" operation.\n * It means you'll be able to write this value only when you first time insert the object.\n * Default value is \"false\".\n *\n * @deprecated Please use the `update` option instead. Careful, it takes\n * the opposite value to readonly.\n *\n */\n readonly?: boolean\n\n /**\n * Indicates if column value is updated by \"save\" operation.\n * If false you'll be able to write this value only when you first time insert the object.\n * Default value is \"true\".\n */\n update?: boolean\n\n /**\n * Indicates if column is always selected by QueryBuilder and find operations.\n * Default value is \"true\".\n */\n select?: boolean\n\n /**\n * Indicates if column is inserted by default.\n * Default value is \"true\".\n */\n insert?: boolean\n\n /**\n * Specifies if this column will use AUTO_INCREMENT or not (e.g. generated number).\n */\n generated?: true | \"increment\" | \"uuid\" | \"rowid\"\n\n /**\n * Specifies if column's value must be unique or not.\n */\n unique?: boolean\n\n /**\n * Extra column definition. Should be used only in emergency situations. Note that if you'll use this property\n * auto schema generation will not work properly anymore. Avoid using it.\n */\n columnDefinition?: string\n\n /**\n * Column comment.\n */\n comment?: string\n\n /**\n * Default database value.\n */\n default?: any\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column), which is the maximum\n * number of digits that are stored for the values.\n */\n precision?: number\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column), which represents the number\n * of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill?: boolean\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned?: boolean\n\n /**\n * Defines a column character set.\n * Not supported by all database types.\n */\n charset?: string\n\n /**\n * Defines a column collation.\n */\n collation?: string\n\n /**\n * Array of possible enumerated values.\n */\n enum?: any[] | Object\n\n /**\n * Exact name of enum\n */\n enumName?: string\n\n /**\n * Generated column expression.\n */\n asExpression?: string\n\n /**\n * Generated column type.\n */\n generatedType?: \"VIRTUAL\" | \"STORED\"\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\" | \"string\"\n\n /**\n * Indicates if this column is an array.\n * Can be simply set to true or array length can be specified.\n * Supported only by postgres.\n */\n array?: boolean\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer | ValueTransformer[]\n\n /**\n * Name of the primary key constraint.\n */\n primaryKeyConstraintName?: string\n\n /**\n * Foreign key options of this column.\n */\n foreignKey?: EntitySchemaColumnForeignKeyOptions\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,16 @@
1
+ import { EntityTarget } from "../common/EntityTarget";
2
+ import { ForeignKeyOptions } from "../decorator/options/ForeignKeyOptions";
3
+ export interface EntitySchemaForeignKeyOptions extends ForeignKeyOptions {
4
+ /**
5
+ * Indicates with which entity this relation is made.
6
+ */
7
+ target: EntityTarget<any>;
8
+ /**
9
+ * Column names which included by this foreign key.
10
+ */
11
+ columnNames: string[];
12
+ /**
13
+ * Column names which included by this foreign key.
14
+ */
15
+ referencedColumnNames: string[];
16
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=EntitySchemaForeignKeyOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/entity-schema/EntitySchemaForeignKeyOptions.ts"],"names":[],"mappings":"","file":"EntitySchemaForeignKeyOptions.js","sourcesContent":["import { EntityTarget } from \"../common/EntityTarget\"\nimport { ForeignKeyOptions } from \"../decorator/options/ForeignKeyOptions\"\n\nexport interface EntitySchemaForeignKeyOptions extends ForeignKeyOptions {\n /**\n * Indicates with which entity this relation is made.\n */\n target: EntityTarget<any>\n\n /**\n * Column names which included by this foreign key.\n */\n columnNames: string[]\n\n /**\n * Column names which included by this foreign key.\n */\n referencedColumnNames: string[]\n}\n"],"sourceRoot":".."}
@@ -9,6 +9,7 @@ import { EntitySchemaCheckOptions } from "./EntitySchemaCheckOptions";
9
9
  import { EntitySchemaExclusionOptions } from "./EntitySchemaExclusionOptions";
10
10
  import { EntitySchemaInheritanceOptions } from "./EntitySchemaInheritanceOptions";
11
11
  import { EntitySchemaRelationIdOptions } from "./EntitySchemaRelationIdOptions";
12
+ import { EntitySchemaForeignKeyOptions } from "./EntitySchemaForeignKeyOptions";
12
13
  /**
13
14
  * Interface for entity metadata mappings stored inside "schemas" instead of models decorated by decorators.
14
15
  */
@@ -63,6 +64,10 @@ export declare class EntitySchemaOptions<T> {
63
64
  * Entity indices options.
64
65
  */
65
66
  indices?: EntitySchemaIndexOptions[];
67
+ /**
68
+ * Entity foreign keys options.
69
+ */
70
+ foreignKeys?: EntitySchemaForeignKeyOptions[];
66
71
  /**
67
72
  * Entity uniques options.
68
73
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entity-schema/EntitySchemaOptions.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACH,MAAa,mBAAmB;CAgH/B;AAhHD,kDAgHC","file":"EntitySchemaOptions.js","sourcesContent":["import {\n DataSource,\n EntitySchemaEmbeddedColumnOptions,\n SelectQueryBuilder,\n} from \"..\"\nimport { EntitySchemaIndexOptions } from \"./EntitySchemaIndexOptions\"\nimport { EntitySchemaColumnOptions } from \"./EntitySchemaColumnOptions\"\nimport { EntitySchemaRelationOptions } from \"./EntitySchemaRelationOptions\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { TableType } from \"../metadata/types/TableTypes\"\nimport { EntitySchemaUniqueOptions } from \"./EntitySchemaUniqueOptions\"\nimport { EntitySchemaCheckOptions } from \"./EntitySchemaCheckOptions\"\nimport { EntitySchemaExclusionOptions } from \"./EntitySchemaExclusionOptions\"\nimport { EntitySchemaInheritanceOptions } from \"./EntitySchemaInheritanceOptions\"\nimport { EntitySchemaRelationIdOptions } from \"./EntitySchemaRelationIdOptions\"\n\n/**\n * Interface for entity metadata mappings stored inside \"schemas\" instead of models decorated by decorators.\n */\nexport class EntitySchemaOptions<T> {\n /**\n * Target bind to this entity schema. Optional.\n */\n target?: Function\n\n /**\n * Entity name.\n */\n name: string\n\n /**\n * Table name.\n */\n tableName?: string\n\n /**\n * Database name. Used in MySql and Sql Server.\n */\n database?: string\n\n /**\n * Schema name. Used in Postgres and Sql Server.\n */\n schema?: string\n\n /**\n * Table type.\n */\n type?: TableType\n\n /**\n * Specifies a property name by which queries will perform ordering by default when fetching rows.\n */\n orderBy?: OrderByCondition\n\n /**\n * Entity column's options.\n */\n columns: {\n [P in keyof T]?: EntitySchemaColumnOptions\n }\n\n /**\n * Entity relation's options.\n */\n relations?: {\n [P in keyof T]?: EntitySchemaRelationOptions\n }\n\n /**\n * Entity relation id options.\n */\n relationIds?: {\n [P in keyof T]?: EntitySchemaRelationIdOptions\n }\n\n /**\n * Entity indices options.\n */\n indices?: EntitySchemaIndexOptions[]\n\n /**\n * Entity uniques options.\n */\n uniques?: EntitySchemaUniqueOptions[]\n\n /**\n * Entity check options.\n */\n checks?: EntitySchemaCheckOptions[]\n\n /**\n * Entity exclusion options.\n */\n exclusions?: EntitySchemaExclusionOptions[]\n\n /**\n * Embedded Entities options\n */\n embeddeds?: {\n [P in keyof Partial<T>]: EntitySchemaEmbeddedColumnOptions\n }\n\n /**\n * Indicates if schema synchronization is enabled or disabled for this entity.\n * If it will be set to false then schema sync will and migrations ignore this entity.\n * By default schema synchronization is enabled for all entities.\n */\n synchronize?: boolean\n\n /**\n * If set to 'true' this option disables Sqlite's default behaviour of secretly creating\n * an integer primary key column named 'rowid' on table creation.\n * @see https://www.sqlite.org/withoutrowid.html.\n */\n withoutRowid?: boolean\n\n /**\n * View expression.\n */\n expression?: string | ((connection: DataSource) => SelectQueryBuilder<any>)\n\n /**\n * Inheritance options.\n */\n inheritance?: EntitySchemaInheritanceOptions\n\n /**\n * Custom discriminator value for Single Table Inheritance.\n */\n discriminatorValue?: string\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/entity-schema/EntitySchemaOptions.ts"],"names":[],"mappings":";;;AAiBA;;GAEG;AACH,MAAa,mBAAmB;CAqH/B;AArHD,kDAqHC","file":"EntitySchemaOptions.js","sourcesContent":["import {\n DataSource,\n EntitySchemaEmbeddedColumnOptions,\n SelectQueryBuilder,\n} from \"..\"\nimport { EntitySchemaIndexOptions } from \"./EntitySchemaIndexOptions\"\nimport { EntitySchemaColumnOptions } from \"./EntitySchemaColumnOptions\"\nimport { EntitySchemaRelationOptions } from \"./EntitySchemaRelationOptions\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { TableType } from \"../metadata/types/TableTypes\"\nimport { EntitySchemaUniqueOptions } from \"./EntitySchemaUniqueOptions\"\nimport { EntitySchemaCheckOptions } from \"./EntitySchemaCheckOptions\"\nimport { EntitySchemaExclusionOptions } from \"./EntitySchemaExclusionOptions\"\nimport { EntitySchemaInheritanceOptions } from \"./EntitySchemaInheritanceOptions\"\nimport { EntitySchemaRelationIdOptions } from \"./EntitySchemaRelationIdOptions\"\nimport { EntitySchemaForeignKeyOptions } from \"./EntitySchemaForeignKeyOptions\"\n\n/**\n * Interface for entity metadata mappings stored inside \"schemas\" instead of models decorated by decorators.\n */\nexport class EntitySchemaOptions<T> {\n /**\n * Target bind to this entity schema. Optional.\n */\n target?: Function\n\n /**\n * Entity name.\n */\n name: string\n\n /**\n * Table name.\n */\n tableName?: string\n\n /**\n * Database name. Used in MySql and Sql Server.\n */\n database?: string\n\n /**\n * Schema name. Used in Postgres and Sql Server.\n */\n schema?: string\n\n /**\n * Table type.\n */\n type?: TableType\n\n /**\n * Specifies a property name by which queries will perform ordering by default when fetching rows.\n */\n orderBy?: OrderByCondition\n\n /**\n * Entity column's options.\n */\n columns: {\n [P in keyof T]?: EntitySchemaColumnOptions\n }\n\n /**\n * Entity relation's options.\n */\n relations?: {\n [P in keyof T]?: EntitySchemaRelationOptions\n }\n\n /**\n * Entity relation id options.\n */\n relationIds?: {\n [P in keyof T]?: EntitySchemaRelationIdOptions\n }\n\n /**\n * Entity indices options.\n */\n indices?: EntitySchemaIndexOptions[]\n\n /**\n * Entity foreign keys options.\n */\n foreignKeys?: EntitySchemaForeignKeyOptions[]\n\n /**\n * Entity uniques options.\n */\n uniques?: EntitySchemaUniqueOptions[]\n\n /**\n * Entity check options.\n */\n checks?: EntitySchemaCheckOptions[]\n\n /**\n * Entity exclusion options.\n */\n exclusions?: EntitySchemaExclusionOptions[]\n\n /**\n * Embedded Entities options\n */\n embeddeds?: {\n [P in keyof Partial<T>]: EntitySchemaEmbeddedColumnOptions\n }\n\n /**\n * Indicates if schema synchronization is enabled or disabled for this entity.\n * If it will be set to false then schema sync will and migrations ignore this entity.\n * By default schema synchronization is enabled for all entities.\n */\n synchronize?: boolean\n\n /**\n * If set to 'true' this option disables Sqlite's default behaviour of secretly creating\n * an integer primary key column named 'rowid' on table creation.\n * @see https://www.sqlite.org/withoutrowid.html.\n */\n withoutRowid?: boolean\n\n /**\n * View expression.\n */\n expression?: string | ((connection: DataSource) => SelectQueryBuilder<any>)\n\n /**\n * Inheritance options.\n */\n inheritance?: EntitySchemaInheritanceOptions\n\n /**\n * Custom discriminator value for Single Table Inheritance.\n */\n discriminatorValue?: string\n}\n"],"sourceRoot":".."}
@@ -127,6 +127,20 @@ class EntitySchemaTransformer {
127
127
  target: options.target || options.name,
128
128
  columns: [columnName],
129
129
  });
130
+ if (regularColumn.foreignKey) {
131
+ const foreignKey = regularColumn.foreignKey;
132
+ const foreignKeyArgs = {
133
+ target: options.target || options.name,
134
+ type: foreignKey.target,
135
+ propertyName: columnName,
136
+ inverseSide: foreignKey.inverseSide,
137
+ name: foreignKey.name,
138
+ onDelete: foreignKey.onDelete,
139
+ onUpdate: foreignKey.onUpdate,
140
+ deferrable: foreignKey.deferrable,
141
+ };
142
+ metadataArgsStorage.foreignKeys.push(foreignKeyArgs);
143
+ }
130
144
  });
131
145
  // add relation metadata args from the schema
132
146
  if (options.relations) {
@@ -245,6 +259,21 @@ class EntitySchemaTransformer {
245
259
  metadataArgsStorage.indices.push(indexArgs);
246
260
  });
247
261
  }
262
+ if (options.foreignKeys) {
263
+ options.foreignKeys.forEach((foreignKey) => {
264
+ const foreignKeyArgs = {
265
+ target: options.target || options.name,
266
+ type: foreignKey.target,
267
+ columnNames: foreignKey.columnNames,
268
+ referencedColumnNames: foreignKey.referencedColumnNames,
269
+ name: foreignKey.name,
270
+ onDelete: foreignKey.onDelete,
271
+ onUpdate: foreignKey.onUpdate,
272
+ deferrable: foreignKey.deferrable,
273
+ };
274
+ metadataArgsStorage.foreignKeys.push(foreignKeyArgs);
275
+ });
276
+ }
248
277
  // add unique metadata args from the schema
249
278
  if (options.uniques) {
250
279
  options.uniques.forEach((unique) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entity-schema/EntitySchemaTransformer.ts"],"names":[],"mappings":"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","file":"EntitySchemaTransformer.js","sourcesContent":["import { EntitySchema } from \"./EntitySchema\"\nimport { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\nimport { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\nimport { ColumnMetadataArgs } from \"../metadata-args/ColumnMetadataArgs\"\nimport { IndexMetadataArgs } from \"../metadata-args/IndexMetadataArgs\"\nimport { RelationMetadataArgs } from \"../metadata-args/RelationMetadataArgs\"\nimport { JoinColumnMetadataArgs } from \"../metadata-args/JoinColumnMetadataArgs\"\nimport { JoinTableMetadataArgs } from \"../metadata-args/JoinTableMetadataArgs\"\nimport { JoinTableOptions } from \"../decorator/options/JoinTableOptions\"\nimport { JoinTableMultipleColumnsOptions } from \"../decorator/options/JoinTableMultipleColumnsOptions\"\nimport { ColumnMode } from \"../metadata-args/types/ColumnMode\"\nimport { GeneratedMetadataArgs } from \"../metadata-args/GeneratedMetadataArgs\"\nimport { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\"\nimport { CheckMetadataArgs } from \"../metadata-args/CheckMetadataArgs\"\nimport { ExclusionMetadataArgs } from \"../metadata-args/ExclusionMetadataArgs\"\nimport { EntitySchemaColumnOptions } from \"./EntitySchemaColumnOptions\"\nimport { EntitySchemaOptions } from \"./EntitySchemaOptions\"\nimport { EntitySchemaEmbeddedError } from \"./EntitySchemaEmbeddedError\"\nimport { InheritanceMetadataArgs } from \"../metadata-args/InheritanceMetadataArgs\"\nimport { RelationIdMetadataArgs } from \"../metadata-args/RelationIdMetadataArgs\"\n\n/**\n * Transforms entity schema into metadata args storage.\n * The result will be just like entities read from decorators.\n */\nexport class EntitySchemaTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms entity schema into new metadata args storage object.\n */\n transform(schemas: EntitySchema<any>[]): MetadataArgsStorage {\n const metadataArgsStorage = new MetadataArgsStorage()\n\n schemas.forEach((entitySchema) => {\n const options = entitySchema.options\n\n // add table metadata args from the schema\n const tableMetadata: TableMetadataArgs = {\n target: options.target || options.name,\n name: options.tableName,\n database: options.database,\n schema: options.schema,\n type: options.type || \"regular\",\n orderBy: options.orderBy,\n synchronize: options.synchronize,\n withoutRowid: !!options.withoutRowid,\n expression: options.expression,\n }\n metadataArgsStorage.tables.push(tableMetadata)\n\n const { inheritance } = options\n\n if (inheritance) {\n metadataArgsStorage.inheritances.push({\n target: options.target,\n pattern: inheritance.pattern ?? \"STI\",\n column: inheritance.column\n ? typeof inheritance.column === \"string\"\n ? { name: inheritance.column }\n : inheritance.column\n : undefined,\n } as InheritanceMetadataArgs)\n }\n\n const { discriminatorValue } = options\n\n if (discriminatorValue) {\n metadataArgsStorage.discriminatorValues.push({\n target: options.target || options.name,\n value: discriminatorValue,\n })\n }\n\n this.transformColumnsRecursive(options, metadataArgsStorage)\n })\n\n return metadataArgsStorage\n }\n\n private transformColumnsRecursive(\n options: EntitySchemaOptions<any>,\n metadataArgsStorage: MetadataArgsStorage,\n ): void {\n // add columns metadata args from the schema\n Object.keys(options.columns).forEach((columnName) => {\n const column = options.columns[columnName]!\n\n const regularColumn = column as EntitySchemaColumnOptions\n let mode: ColumnMode = \"regular\"\n if (regularColumn.createDate) mode = \"createDate\"\n if (regularColumn.updateDate) mode = \"updateDate\"\n if (regularColumn.deleteDate) mode = \"deleteDate\"\n if (regularColumn.version) mode = \"version\"\n if (regularColumn.treeChildrenCount) mode = \"treeChildrenCount\"\n if (regularColumn.treeLevel) mode = \"treeLevel\"\n if (regularColumn.objectId) mode = \"objectId\"\n\n const columnArgs: ColumnMetadataArgs = {\n target: options.target || options.name,\n mode: mode,\n propertyName: columnName,\n options: {\n type: regularColumn.type,\n name: regularColumn.objectId ? \"_id\" : regularColumn.name,\n primaryKeyConstraintName:\n regularColumn.primaryKeyConstraintName,\n length: regularColumn.length,\n width: regularColumn.width,\n nullable: regularColumn.nullable,\n readonly: regularColumn.readonly,\n update: regularColumn.update,\n select: regularColumn.select,\n insert: regularColumn.insert,\n primary: regularColumn.primary,\n unique: regularColumn.unique,\n comment: regularColumn.comment,\n default: regularColumn.default,\n onUpdate: regularColumn.onUpdate,\n precision: regularColumn.precision,\n scale: regularColumn.scale,\n zerofill: regularColumn.zerofill,\n unsigned: regularColumn.unsigned,\n charset: regularColumn.charset,\n collation: regularColumn.collation,\n enum: regularColumn.enum,\n enumName: regularColumn.enumName,\n asExpression: regularColumn.asExpression,\n generatedType: regularColumn.generatedType,\n hstoreType: regularColumn.hstoreType,\n array: regularColumn.array,\n transformer: regularColumn.transformer,\n spatialFeatureType: regularColumn.spatialFeatureType,\n srid: regularColumn.srid,\n },\n }\n metadataArgsStorage.columns.push(columnArgs)\n\n if (regularColumn.generated) {\n const generationArgs: GeneratedMetadataArgs = {\n target: options.target || options.name,\n propertyName: columnName,\n strategy:\n typeof regularColumn.generated === \"string\"\n ? regularColumn.generated\n : \"increment\",\n }\n metadataArgsStorage.generations.push(generationArgs)\n }\n\n if (regularColumn.unique)\n metadataArgsStorage.uniques.push({\n target: options.target || options.name,\n columns: [columnName],\n })\n })\n\n // add relation metadata args from the schema\n if (options.relations) {\n Object.keys(options.relations).forEach((relationName) => {\n const relationSchema = options.relations![relationName]!\n const relation: RelationMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n relationType: relationSchema.type,\n isLazy: relationSchema.lazy || false,\n type: relationSchema.target,\n inverseSideProperty: relationSchema.inverseSide,\n isTreeParent: relationSchema.treeParent,\n isTreeChildren: relationSchema.treeChildren,\n options: {\n eager: relationSchema.eager || false,\n cascade: relationSchema.cascade,\n nullable: relationSchema.nullable,\n onDelete: relationSchema.onDelete,\n onUpdate: relationSchema.onUpdate,\n deferrable: relationSchema.deferrable,\n // primary: relationSchema.primary,\n createForeignKeyConstraints:\n relationSchema.createForeignKeyConstraints,\n persistence: relationSchema.persistence,\n orphanedRowAction: relationSchema.orphanedRowAction,\n },\n }\n\n metadataArgsStorage.relations.push(relation)\n\n // add join column\n if (relationSchema.joinColumn) {\n if (typeof relationSchema.joinColumn === \"boolean\") {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n }\n metadataArgsStorage.joinColumns.push(joinColumn)\n } else {\n const joinColumnsOptions = Array.isArray(\n relationSchema.joinColumn,\n )\n ? relationSchema.joinColumn\n : [relationSchema.joinColumn]\n\n for (const joinColumnOption of joinColumnsOptions) {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: joinColumnOption.name,\n referencedColumnName:\n joinColumnOption.referencedColumnName,\n foreignKeyConstraintName:\n joinColumnOption.foreignKeyConstraintName,\n }\n metadataArgsStorage.joinColumns.push(joinColumn)\n }\n }\n }\n\n // add join table\n if (relationSchema.joinTable) {\n if (typeof relationSchema.joinTable === \"boolean\") {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n }\n metadataArgsStorage.joinTables.push(joinTable)\n } else {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: relationSchema.joinTable.name,\n database: relationSchema.joinTable.database,\n schema: relationSchema.joinTable.schema,\n joinColumns: ((\n relationSchema.joinTable as JoinTableOptions\n ).joinColumn\n ? [\n (\n relationSchema.joinTable as JoinTableOptions\n ).joinColumn!,\n ]\n : (\n relationSchema.joinTable as JoinTableMultipleColumnsOptions\n ).joinColumns) as any,\n inverseJoinColumns: ((\n relationSchema.joinTable as JoinTableOptions\n ).inverseJoinColumn\n ? [\n (\n relationSchema.joinTable as JoinTableOptions\n ).inverseJoinColumn!,\n ]\n : (\n relationSchema.joinTable as JoinTableMultipleColumnsOptions\n ).inverseJoinColumns) as any,\n }\n metadataArgsStorage.joinTables.push(joinTable)\n }\n }\n })\n }\n\n // add relation id metadata args from the schema\n if (options.relationIds) {\n Object.keys(options.relationIds).forEach((relationIdName) => {\n const relationIdOptions = options.relationIds![relationIdName]!\n const relationId: RelationIdMetadataArgs = {\n propertyName: relationIdName,\n relation: relationIdOptions.relationName,\n target: options.target || options.name,\n alias: relationIdOptions.alias,\n queryBuilderFactory: relationIdOptions.queryBuilderFactory,\n }\n metadataArgsStorage.relationIds.push(relationId)\n })\n }\n\n // add index metadata args from the schema\n if (options.indices) {\n options.indices.forEach((index) => {\n const indexArgs: IndexMetadataArgs = {\n target: options.target || options.name,\n name: index.name,\n unique: index.unique === true ? true : false,\n spatial: index.spatial === true ? true : false,\n fulltext: index.fulltext === true ? true : false,\n nullFiltered: index.nullFiltered === true ? true : false,\n parser: index.parser,\n synchronize: index.synchronize === false ? false : true,\n where: index.where,\n sparse: index.sparse,\n columns: index.columns,\n }\n metadataArgsStorage.indices.push(indexArgs)\n })\n }\n\n // add unique metadata args from the schema\n if (options.uniques) {\n options.uniques.forEach((unique) => {\n const uniqueArgs: UniqueMetadataArgs = {\n target: options.target || options.name,\n name: unique.name,\n columns: unique.columns,\n deferrable: unique.deferrable,\n }\n metadataArgsStorage.uniques.push(uniqueArgs)\n })\n }\n\n // add check metadata args from the schema\n if (options.checks) {\n options.checks.forEach((check) => {\n const checkArgs: CheckMetadataArgs = {\n target: options.target || options.name,\n name: check.name,\n expression: check.expression,\n }\n metadataArgsStorage.checks.push(checkArgs)\n })\n }\n\n // add exclusion metadata args from the schema\n if (options.exclusions) {\n options.exclusions.forEach((exclusion) => {\n const exclusionArgs: ExclusionMetadataArgs = {\n target: options.target || options.name,\n name: exclusion.name,\n expression: exclusion.expression,\n }\n metadataArgsStorage.exclusions.push(exclusionArgs)\n })\n }\n\n if (options.embeddeds) {\n Object.keys(options.embeddeds).forEach((columnName) => {\n const embeddedOptions = options.embeddeds![columnName]\n\n if (!embeddedOptions.schema)\n throw EntitySchemaEmbeddedError.createEntitySchemaIsRequiredException(\n columnName,\n )\n\n const embeddedSchema = embeddedOptions.schema.options\n\n metadataArgsStorage.embeddeds.push({\n target: options.target || options.name,\n propertyName: columnName,\n isArray: embeddedOptions.array === true,\n prefix:\n embeddedOptions.prefix !== undefined\n ? embeddedOptions.prefix\n : undefined,\n type: () => embeddedSchema?.target || embeddedSchema.name,\n })\n\n this.transformColumnsRecursive(\n embeddedSchema,\n metadataArgsStorage,\n )\n })\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/entity-schema/EntitySchemaTransformer.ts"],"names":[],"mappings":"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","file":"EntitySchemaTransformer.js","sourcesContent":["import { EntitySchema } from \"./EntitySchema\"\nimport { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\nimport { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\nimport { ColumnMetadataArgs } from \"../metadata-args/ColumnMetadataArgs\"\nimport { IndexMetadataArgs } from \"../metadata-args/IndexMetadataArgs\"\nimport { RelationMetadataArgs } from \"../metadata-args/RelationMetadataArgs\"\nimport { JoinColumnMetadataArgs } from \"../metadata-args/JoinColumnMetadataArgs\"\nimport { JoinTableMetadataArgs } from \"../metadata-args/JoinTableMetadataArgs\"\nimport { JoinTableOptions } from \"../decorator/options/JoinTableOptions\"\nimport { JoinTableMultipleColumnsOptions } from \"../decorator/options/JoinTableMultipleColumnsOptions\"\nimport { ColumnMode } from \"../metadata-args/types/ColumnMode\"\nimport { GeneratedMetadataArgs } from \"../metadata-args/GeneratedMetadataArgs\"\nimport { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\"\nimport { CheckMetadataArgs } from \"../metadata-args/CheckMetadataArgs\"\nimport { ExclusionMetadataArgs } from \"../metadata-args/ExclusionMetadataArgs\"\nimport { EntitySchemaColumnOptions } from \"./EntitySchemaColumnOptions\"\nimport { EntitySchemaOptions } from \"./EntitySchemaOptions\"\nimport { EntitySchemaEmbeddedError } from \"./EntitySchemaEmbeddedError\"\nimport { InheritanceMetadataArgs } from \"../metadata-args/InheritanceMetadataArgs\"\nimport { RelationIdMetadataArgs } from \"../metadata-args/RelationIdMetadataArgs\"\nimport { ForeignKeyMetadataArgs } from \"../metadata-args/ForeignKeyMetadataArgs\"\n\n/**\n * Transforms entity schema into metadata args storage.\n * The result will be just like entities read from decorators.\n */\nexport class EntitySchemaTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms entity schema into new metadata args storage object.\n */\n transform(schemas: EntitySchema<any>[]): MetadataArgsStorage {\n const metadataArgsStorage = new MetadataArgsStorage()\n\n schemas.forEach((entitySchema) => {\n const options = entitySchema.options\n\n // add table metadata args from the schema\n const tableMetadata: TableMetadataArgs = {\n target: options.target || options.name,\n name: options.tableName,\n database: options.database,\n schema: options.schema,\n type: options.type || \"regular\",\n orderBy: options.orderBy,\n synchronize: options.synchronize,\n withoutRowid: !!options.withoutRowid,\n expression: options.expression,\n }\n metadataArgsStorage.tables.push(tableMetadata)\n\n const { inheritance } = options\n\n if (inheritance) {\n metadataArgsStorage.inheritances.push({\n target: options.target,\n pattern: inheritance.pattern ?? \"STI\",\n column: inheritance.column\n ? typeof inheritance.column === \"string\"\n ? { name: inheritance.column }\n : inheritance.column\n : undefined,\n } as InheritanceMetadataArgs)\n }\n\n const { discriminatorValue } = options\n\n if (discriminatorValue) {\n metadataArgsStorage.discriminatorValues.push({\n target: options.target || options.name,\n value: discriminatorValue,\n })\n }\n\n this.transformColumnsRecursive(options, metadataArgsStorage)\n })\n\n return metadataArgsStorage\n }\n\n private transformColumnsRecursive(\n options: EntitySchemaOptions<any>,\n metadataArgsStorage: MetadataArgsStorage,\n ): void {\n // add columns metadata args from the schema\n Object.keys(options.columns).forEach((columnName) => {\n const column = options.columns[columnName]!\n\n const regularColumn = column as EntitySchemaColumnOptions\n let mode: ColumnMode = \"regular\"\n if (regularColumn.createDate) mode = \"createDate\"\n if (regularColumn.updateDate) mode = \"updateDate\"\n if (regularColumn.deleteDate) mode = \"deleteDate\"\n if (regularColumn.version) mode = \"version\"\n if (regularColumn.treeChildrenCount) mode = \"treeChildrenCount\"\n if (regularColumn.treeLevel) mode = \"treeLevel\"\n if (regularColumn.objectId) mode = \"objectId\"\n\n const columnArgs: ColumnMetadataArgs = {\n target: options.target || options.name,\n mode: mode,\n propertyName: columnName,\n options: {\n type: regularColumn.type,\n name: regularColumn.objectId ? \"_id\" : regularColumn.name,\n primaryKeyConstraintName:\n regularColumn.primaryKeyConstraintName,\n length: regularColumn.length,\n width: regularColumn.width,\n nullable: regularColumn.nullable,\n readonly: regularColumn.readonly,\n update: regularColumn.update,\n select: regularColumn.select,\n insert: regularColumn.insert,\n primary: regularColumn.primary,\n unique: regularColumn.unique,\n comment: regularColumn.comment,\n default: regularColumn.default,\n onUpdate: regularColumn.onUpdate,\n precision: regularColumn.precision,\n scale: regularColumn.scale,\n zerofill: regularColumn.zerofill,\n unsigned: regularColumn.unsigned,\n charset: regularColumn.charset,\n collation: regularColumn.collation,\n enum: regularColumn.enum,\n enumName: regularColumn.enumName,\n asExpression: regularColumn.asExpression,\n generatedType: regularColumn.generatedType,\n hstoreType: regularColumn.hstoreType,\n array: regularColumn.array,\n transformer: regularColumn.transformer,\n spatialFeatureType: regularColumn.spatialFeatureType,\n srid: regularColumn.srid,\n },\n }\n metadataArgsStorage.columns.push(columnArgs)\n\n if (regularColumn.generated) {\n const generationArgs: GeneratedMetadataArgs = {\n target: options.target || options.name,\n propertyName: columnName,\n strategy:\n typeof regularColumn.generated === \"string\"\n ? regularColumn.generated\n : \"increment\",\n }\n metadataArgsStorage.generations.push(generationArgs)\n }\n\n if (regularColumn.unique)\n metadataArgsStorage.uniques.push({\n target: options.target || options.name,\n columns: [columnName],\n })\n\n if (regularColumn.foreignKey) {\n const foreignKey = regularColumn.foreignKey\n\n const foreignKeyArgs: ForeignKeyMetadataArgs = {\n target: options.target || options.name,\n type: foreignKey.target,\n propertyName: columnName,\n inverseSide: foreignKey.inverseSide,\n name: foreignKey.name,\n onDelete: foreignKey.onDelete,\n onUpdate: foreignKey.onUpdate,\n deferrable: foreignKey.deferrable,\n }\n metadataArgsStorage.foreignKeys.push(foreignKeyArgs)\n }\n })\n\n // add relation metadata args from the schema\n if (options.relations) {\n Object.keys(options.relations).forEach((relationName) => {\n const relationSchema = options.relations![relationName]!\n const relation: RelationMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n relationType: relationSchema.type,\n isLazy: relationSchema.lazy || false,\n type: relationSchema.target,\n inverseSideProperty: relationSchema.inverseSide,\n isTreeParent: relationSchema.treeParent,\n isTreeChildren: relationSchema.treeChildren,\n options: {\n eager: relationSchema.eager || false,\n cascade: relationSchema.cascade,\n nullable: relationSchema.nullable,\n onDelete: relationSchema.onDelete,\n onUpdate: relationSchema.onUpdate,\n deferrable: relationSchema.deferrable,\n // primary: relationSchema.primary,\n createForeignKeyConstraints:\n relationSchema.createForeignKeyConstraints,\n persistence: relationSchema.persistence,\n orphanedRowAction: relationSchema.orphanedRowAction,\n },\n }\n\n metadataArgsStorage.relations.push(relation)\n\n // add join column\n if (relationSchema.joinColumn) {\n if (typeof relationSchema.joinColumn === \"boolean\") {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n }\n metadataArgsStorage.joinColumns.push(joinColumn)\n } else {\n const joinColumnsOptions = Array.isArray(\n relationSchema.joinColumn,\n )\n ? relationSchema.joinColumn\n : [relationSchema.joinColumn]\n\n for (const joinColumnOption of joinColumnsOptions) {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: joinColumnOption.name,\n referencedColumnName:\n joinColumnOption.referencedColumnName,\n foreignKeyConstraintName:\n joinColumnOption.foreignKeyConstraintName,\n }\n metadataArgsStorage.joinColumns.push(joinColumn)\n }\n }\n }\n\n // add join table\n if (relationSchema.joinTable) {\n if (typeof relationSchema.joinTable === \"boolean\") {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n }\n metadataArgsStorage.joinTables.push(joinTable)\n } else {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: relationSchema.joinTable.name,\n database: relationSchema.joinTable.database,\n schema: relationSchema.joinTable.schema,\n joinColumns: ((\n relationSchema.joinTable as JoinTableOptions\n ).joinColumn\n ? [\n (\n relationSchema.joinTable as JoinTableOptions\n ).joinColumn!,\n ]\n : (\n relationSchema.joinTable as JoinTableMultipleColumnsOptions\n ).joinColumns) as any,\n inverseJoinColumns: ((\n relationSchema.joinTable as JoinTableOptions\n ).inverseJoinColumn\n ? [\n (\n relationSchema.joinTable as JoinTableOptions\n ).inverseJoinColumn!,\n ]\n : (\n relationSchema.joinTable as JoinTableMultipleColumnsOptions\n ).inverseJoinColumns) as any,\n }\n metadataArgsStorage.joinTables.push(joinTable)\n }\n }\n })\n }\n\n // add relation id metadata args from the schema\n if (options.relationIds) {\n Object.keys(options.relationIds).forEach((relationIdName) => {\n const relationIdOptions = options.relationIds![relationIdName]!\n const relationId: RelationIdMetadataArgs = {\n propertyName: relationIdName,\n relation: relationIdOptions.relationName,\n target: options.target || options.name,\n alias: relationIdOptions.alias,\n queryBuilderFactory: relationIdOptions.queryBuilderFactory,\n }\n metadataArgsStorage.relationIds.push(relationId)\n })\n }\n\n // add index metadata args from the schema\n if (options.indices) {\n options.indices.forEach((index) => {\n const indexArgs: IndexMetadataArgs = {\n target: options.target || options.name,\n name: index.name,\n unique: index.unique === true ? true : false,\n spatial: index.spatial === true ? true : false,\n fulltext: index.fulltext === true ? true : false,\n nullFiltered: index.nullFiltered === true ? true : false,\n parser: index.parser,\n synchronize: index.synchronize === false ? false : true,\n where: index.where,\n sparse: index.sparse,\n columns: index.columns,\n }\n metadataArgsStorage.indices.push(indexArgs)\n })\n }\n\n if (options.foreignKeys) {\n options.foreignKeys.forEach((foreignKey) => {\n const foreignKeyArgs: ForeignKeyMetadataArgs = {\n target: options.target || options.name,\n type: foreignKey.target,\n columnNames: foreignKey.columnNames,\n referencedColumnNames: foreignKey.referencedColumnNames,\n name: foreignKey.name,\n onDelete: foreignKey.onDelete,\n onUpdate: foreignKey.onUpdate,\n deferrable: foreignKey.deferrable,\n }\n metadataArgsStorage.foreignKeys.push(foreignKeyArgs)\n })\n }\n\n // add unique metadata args from the schema\n if (options.uniques) {\n options.uniques.forEach((unique) => {\n const uniqueArgs: UniqueMetadataArgs = {\n target: options.target || options.name,\n name: unique.name,\n columns: unique.columns,\n deferrable: unique.deferrable,\n }\n metadataArgsStorage.uniques.push(uniqueArgs)\n })\n }\n\n // add check metadata args from the schema\n if (options.checks) {\n options.checks.forEach((check) => {\n const checkArgs: CheckMetadataArgs = {\n target: options.target || options.name,\n name: check.name,\n expression: check.expression,\n }\n metadataArgsStorage.checks.push(checkArgs)\n })\n }\n\n // add exclusion metadata args from the schema\n if (options.exclusions) {\n options.exclusions.forEach((exclusion) => {\n const exclusionArgs: ExclusionMetadataArgs = {\n target: options.target || options.name,\n name: exclusion.name,\n expression: exclusion.expression,\n }\n metadataArgsStorage.exclusions.push(exclusionArgs)\n })\n }\n\n if (options.embeddeds) {\n Object.keys(options.embeddeds).forEach((columnName) => {\n const embeddedOptions = options.embeddeds![columnName]\n\n if (!embeddedOptions.schema)\n throw EntitySchemaEmbeddedError.createEntitySchemaIsRequiredException(\n columnName,\n )\n\n const embeddedSchema = embeddedOptions.schema.options\n\n metadataArgsStorage.embeddeds.push({\n target: options.target || options.name,\n propertyName: columnName,\n isArray: embeddedOptions.array === true,\n prefix:\n embeddedOptions.prefix !== undefined\n ? embeddedOptions.prefix\n : undefined,\n type: () => embeddedSchema?.target || embeddedSchema.name,\n })\n\n this.transformColumnsRecursive(\n embeddedSchema,\n metadataArgsStorage,\n )\n })\n }\n }\n}\n"],"sourceRoot":".."}
package/index.d.ts CHANGED
@@ -56,6 +56,7 @@ export * from "./decorator/tree/TreeParent";
56
56
  export * from "./decorator/tree/TreeChildren";
57
57
  export * from "./decorator/tree/Tree";
58
58
  export * from "./decorator/Index";
59
+ export * from "./decorator/ForeignKey";
59
60
  export * from "./decorator/Unique";
60
61
  export * from "./decorator/Check";
61
62
  export * from "./decorator/Exclusion";
package/index.js CHANGED
@@ -63,6 +63,7 @@ tslib_1.__exportStar(require("./decorator/tree/TreeParent"), exports);
63
63
  tslib_1.__exportStar(require("./decorator/tree/TreeChildren"), exports);
64
64
  tslib_1.__exportStar(require("./decorator/tree/Tree"), exports);
65
65
  tslib_1.__exportStar(require("./decorator/Index"), exports);
66
+ tslib_1.__exportStar(require("./decorator/ForeignKey"), exports);
66
67
  tslib_1.__exportStar(require("./decorator/Unique"), exports);
67
68
  tslib_1.__exportStar(require("./decorator/Check"), exports);
68
69
  tslib_1.__exportStar(require("./decorator/Exclusion"), exports);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/*!\n */\nimport \"reflect-metadata\"\n\n// -------------------------------------------------------------------------\n// Commonly Used exports\n// -------------------------------------------------------------------------\n\nexport * from \"./globals\"\nexport * from \"./container\"\nexport * from \"./common/EntityTarget\"\nexport * from \"./common/ObjectType\"\nexport * from \"./common/ObjectLiteral\"\nexport * from \"./common/MixedList\"\nexport * from \"./common/DeepPartial\"\nexport * from \"./common/RelationType\"\nexport * from \"./error\"\nexport * from \"./decorator/columns/Column\"\nexport * from \"./decorator/columns/CreateDateColumn\"\nexport * from \"./decorator/columns/DeleteDateColumn\"\nexport * from \"./decorator/columns/PrimaryGeneratedColumn\"\nexport * from \"./decorator/columns/PrimaryColumn\"\nexport * from \"./decorator/columns/UpdateDateColumn\"\nexport * from \"./decorator/columns/VersionColumn\"\nexport * from \"./decorator/columns/VirtualColumn\"\nexport * from \"./decorator/columns/ViewColumn\"\nexport * from \"./decorator/columns/ObjectIdColumn\"\nexport * from \"./decorator/listeners/AfterInsert\"\nexport * from \"./decorator/listeners/AfterLoad\"\nexport * from \"./decorator/listeners/AfterRemove\"\nexport * from \"./decorator/listeners/AfterSoftRemove\"\nexport * from \"./decorator/listeners/AfterRecover\"\nexport * from \"./decorator/listeners/AfterUpdate\"\nexport * from \"./decorator/listeners/BeforeInsert\"\nexport * from \"./decorator/listeners/BeforeRemove\"\nexport * from \"./decorator/listeners/BeforeSoftRemove\"\nexport * from \"./decorator/listeners/BeforeRecover\"\nexport * from \"./decorator/listeners/BeforeUpdate\"\nexport * from \"./decorator/listeners/EventSubscriber\"\nexport * from \"./decorator/options/ColumnOptions\"\nexport * from \"./decorator/options/IndexOptions\"\nexport * from \"./decorator/options/JoinColumnOptions\"\nexport * from \"./decorator/options/JoinTableOptions\"\nexport * from \"./decorator/options/RelationOptions\"\nexport * from \"./decorator/options/EntityOptions\"\nexport * from \"./decorator/options/ValueTransformer\"\nexport * from \"./decorator/relations/JoinColumn\"\nexport * from \"./decorator/relations/JoinTable\"\nexport * from \"./decorator/relations/ManyToMany\"\nexport * from \"./decorator/relations/ManyToOne\"\nexport * from \"./decorator/relations/OneToMany\"\nexport * from \"./decorator/relations/OneToOne\"\nexport * from \"./decorator/relations/RelationCount\"\nexport * from \"./decorator/relations/RelationId\"\nexport * from \"./decorator/entity/Entity\"\nexport * from \"./decorator/entity/ChildEntity\"\nexport * from \"./decorator/entity/TableInheritance\"\nexport * from \"./decorator/entity-view/ViewEntity\"\nexport * from \"./decorator/tree/TreeLevelColumn\"\nexport * from \"./decorator/tree/TreeParent\"\nexport * from \"./decorator/tree/TreeChildren\"\nexport * from \"./decorator/tree/Tree\"\nexport * from \"./decorator/Index\"\nexport * from \"./decorator/Unique\"\nexport * from \"./decorator/Check\"\nexport * from \"./decorator/Exclusion\"\nexport * from \"./decorator/Generated\"\nexport * from \"./decorator/EntityRepository\"\nexport * from \"./find-options/operator/And\"\nexport * from \"./find-options/operator/Or\"\nexport * from \"./find-options/operator/Any\"\nexport * from \"./find-options/operator/ArrayContainedBy\"\nexport * from \"./find-options/operator/ArrayContains\"\nexport * from \"./find-options/operator/ArrayOverlap\"\nexport * from \"./find-options/operator/Between\"\nexport * from \"./find-options/operator/Equal\"\nexport * from \"./find-options/operator/In\"\nexport * from \"./find-options/operator/IsNull\"\nexport * from \"./find-options/operator/LessThan\"\nexport * from \"./find-options/operator/LessThanOrEqual\"\nexport * from \"./find-options/operator/ILike\"\nexport * from \"./find-options/operator/Like\"\nexport * from \"./find-options/operator/MoreThan\"\nexport * from \"./find-options/operator/MoreThanOrEqual\"\nexport * from \"./find-options/operator/Not\"\nexport * from \"./find-options/operator/Raw\"\nexport * from \"./find-options/operator/JsonContains\"\nexport * from \"./find-options/EqualOperator\"\nexport * from \"./find-options/FindManyOptions\"\nexport * from \"./find-options/FindOneOptions\"\nexport * from \"./find-options/FindOperator\"\nexport * from \"./find-options/FindOperatorType\"\nexport * from \"./find-options/FindOptionsOrder\"\nexport * from \"./find-options/FindOptionsRelations\"\nexport * from \"./find-options/FindOptionsSelect\"\nexport * from \"./find-options/FindOptionsUtils\"\nexport * from \"./find-options/FindOptionsWhere\"\nexport * from \"./find-options/FindTreeOptions\"\nexport * from \"./find-options/JoinOptions\"\nexport * from \"./find-options/OrderByCondition\"\nexport * from \"./logger/AbstractLogger\"\nexport * from \"./logger/Logger\"\nexport * from \"./logger/LoggerOptions\"\nexport * from \"./logger/AdvancedConsoleLogger\"\nexport * from \"./logger/SimpleConsoleLogger\"\nexport * from \"./logger/FileLogger\"\nexport * from \"./metadata/EntityMetadata\"\nexport * from \"./entity-manager/EntityManager\"\nexport * from \"./repository/AbstractRepository\"\nexport * from \"./repository/Repository\"\nexport * from \"./repository/BaseEntity\"\nexport * from \"./repository/TreeRepository\"\nexport * from \"./repository/MongoRepository\"\nexport * from \"./repository/RemoveOptions\"\nexport * from \"./repository/SaveOptions\"\nexport * from \"./schema-builder/table/TableCheck\"\nexport * from \"./schema-builder/table/TableColumn\"\nexport * from \"./schema-builder/table/TableExclusion\"\nexport * from \"./schema-builder/table/TableForeignKey\"\nexport * from \"./schema-builder/table/TableIndex\"\nexport * from \"./schema-builder/table/TableUnique\"\nexport * from \"./schema-builder/table/Table\"\nexport * from \"./schema-builder/view/View\"\nexport * from \"./schema-builder/options/TableCheckOptions\"\nexport * from \"./schema-builder/options/TableColumnOptions\"\nexport * from \"./schema-builder/options/TableExclusionOptions\"\nexport * from \"./schema-builder/options/TableForeignKeyOptions\"\nexport * from \"./schema-builder/options/TableIndexOptions\"\nexport * from \"./schema-builder/options/TableOptions\"\nexport * from \"./schema-builder/options/TableUniqueOptions\"\nexport * from \"./schema-builder/options/ViewOptions\"\nexport * from \"./driver/mongodb/typings\"\nexport * from \"./driver/types/DatabaseType\"\nexport * from \"./driver/types/GeoJsonTypes\"\nexport * from \"./driver/types/ReplicationMode\"\nexport * from \"./driver/sqlserver/MssqlParameter\"\nexport * from \"./subscriber/event/QueryEvent\"\n\n// export * from \"./data-source\";\n\nexport { ConnectionOptionsReader } from \"./connection/ConnectionOptionsReader\"\nexport { ConnectionOptions } from \"./connection/ConnectionOptions\"\nexport { DataSource } from \"./data-source/DataSource\"\nexport { Connection } from \"./connection/Connection\"\nexport { ConnectionManager } from \"./connection/ConnectionManager\"\nexport { DataSourceOptions } from \"./data-source/DataSourceOptions\"\nexport { Driver } from \"./driver/Driver\"\nexport { QueryBuilder } from \"./query-builder/QueryBuilder\"\nexport { SelectQueryBuilder } from \"./query-builder/SelectQueryBuilder\"\nexport { DeleteQueryBuilder } from \"./query-builder/DeleteQueryBuilder\"\nexport { InsertQueryBuilder } from \"./query-builder/InsertQueryBuilder\"\nexport { UpdateQueryBuilder } from \"./query-builder/UpdateQueryBuilder\"\nexport { RelationQueryBuilder } from \"./query-builder/RelationQueryBuilder\"\nexport { Brackets } from \"./query-builder/Brackets\"\nexport { NotBrackets } from \"./query-builder/NotBrackets\"\nexport { WhereExpressionBuilder } from \"./query-builder/WhereExpressionBuilder\"\nexport { WhereExpression } from \"./query-builder/WhereExpressionBuilder\"\nexport { InsertResult } from \"./query-builder/result/InsertResult\"\nexport { UpdateResult } from \"./query-builder/result/UpdateResult\"\nexport { DeleteResult } from \"./query-builder/result/DeleteResult\"\nexport { QueryResult } from \"./query-runner/QueryResult\"\nexport { QueryRunner } from \"./query-runner/QueryRunner\"\nexport { MongoEntityManager } from \"./entity-manager/MongoEntityManager\"\nexport { Migration } from \"./migration/Migration\"\nexport { MigrationExecutor } from \"./migration/MigrationExecutor\"\nexport { MigrationInterface } from \"./migration/MigrationInterface\"\nexport { DefaultNamingStrategy } from \"./naming-strategy/DefaultNamingStrategy\"\nexport { NamingStrategyInterface } from \"./naming-strategy/NamingStrategyInterface\"\nexport { LegacyOracleNamingStrategy } from \"./naming-strategy/LegacyOracleNamingStrategy\"\nexport { InsertEvent } from \"./subscriber/event/InsertEvent\"\nexport { LoadEvent } from \"./subscriber/event/LoadEvent\"\nexport { UpdateEvent } from \"./subscriber/event/UpdateEvent\"\nexport { RemoveEvent } from \"./subscriber/event/RemoveEvent\"\nexport { SoftRemoveEvent } from \"./subscriber/event/SoftRemoveEvent\"\nexport { RecoverEvent } from \"./subscriber/event/RecoverEvent\"\nexport { TransactionCommitEvent } from \"./subscriber/event/TransactionCommitEvent\"\nexport { TransactionRollbackEvent } from \"./subscriber/event/TransactionRollbackEvent\"\nexport { TransactionStartEvent } from \"./subscriber/event/TransactionStartEvent\"\nexport { EntitySubscriberInterface } from \"./subscriber/EntitySubscriberInterface\"\nexport { EntitySchema } from \"./entity-schema/EntitySchema\"\nexport { EntitySchemaColumnOptions } from \"./entity-schema/EntitySchemaColumnOptions\"\nexport { EntitySchemaIndexOptions } from \"./entity-schema/EntitySchemaIndexOptions\"\nexport { EntitySchemaRelationOptions } from \"./entity-schema/EntitySchemaRelationOptions\"\nexport { EntitySchemaEmbeddedColumnOptions } from \"./entity-schema/EntitySchemaEmbeddedColumnOptions\"\nexport { ColumnType } from \"./driver/types/ColumnTypes\"\nexport { EntitySchemaOptions } from \"./entity-schema/EntitySchemaOptions\"\nexport { InstanceChecker } from \"./util/InstanceChecker\"\nexport { TreeRepositoryUtils } from \"./util/TreeRepositoryUtils\"\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/*!\n */\nimport \"reflect-metadata\"\n\n// -------------------------------------------------------------------------\n// Commonly Used exports\n// -------------------------------------------------------------------------\n\nexport * from \"./globals\"\nexport * from \"./container\"\nexport * from \"./common/EntityTarget\"\nexport * from \"./common/ObjectType\"\nexport * from \"./common/ObjectLiteral\"\nexport * from \"./common/MixedList\"\nexport * from \"./common/DeepPartial\"\nexport * from \"./common/RelationType\"\nexport * from \"./error\"\nexport * from \"./decorator/columns/Column\"\nexport * from \"./decorator/columns/CreateDateColumn\"\nexport * from \"./decorator/columns/DeleteDateColumn\"\nexport * from \"./decorator/columns/PrimaryGeneratedColumn\"\nexport * from \"./decorator/columns/PrimaryColumn\"\nexport * from \"./decorator/columns/UpdateDateColumn\"\nexport * from \"./decorator/columns/VersionColumn\"\nexport * from \"./decorator/columns/VirtualColumn\"\nexport * from \"./decorator/columns/ViewColumn\"\nexport * from \"./decorator/columns/ObjectIdColumn\"\nexport * from \"./decorator/listeners/AfterInsert\"\nexport * from \"./decorator/listeners/AfterLoad\"\nexport * from \"./decorator/listeners/AfterRemove\"\nexport * from \"./decorator/listeners/AfterSoftRemove\"\nexport * from \"./decorator/listeners/AfterRecover\"\nexport * from \"./decorator/listeners/AfterUpdate\"\nexport * from \"./decorator/listeners/BeforeInsert\"\nexport * from \"./decorator/listeners/BeforeRemove\"\nexport * from \"./decorator/listeners/BeforeSoftRemove\"\nexport * from \"./decorator/listeners/BeforeRecover\"\nexport * from \"./decorator/listeners/BeforeUpdate\"\nexport * from \"./decorator/listeners/EventSubscriber\"\nexport * from \"./decorator/options/ColumnOptions\"\nexport * from \"./decorator/options/IndexOptions\"\nexport * from \"./decorator/options/JoinColumnOptions\"\nexport * from \"./decorator/options/JoinTableOptions\"\nexport * from \"./decorator/options/RelationOptions\"\nexport * from \"./decorator/options/EntityOptions\"\nexport * from \"./decorator/options/ValueTransformer\"\nexport * from \"./decorator/relations/JoinColumn\"\nexport * from \"./decorator/relations/JoinTable\"\nexport * from \"./decorator/relations/ManyToMany\"\nexport * from \"./decorator/relations/ManyToOne\"\nexport * from \"./decorator/relations/OneToMany\"\nexport * from \"./decorator/relations/OneToOne\"\nexport * from \"./decorator/relations/RelationCount\"\nexport * from \"./decorator/relations/RelationId\"\nexport * from \"./decorator/entity/Entity\"\nexport * from \"./decorator/entity/ChildEntity\"\nexport * from \"./decorator/entity/TableInheritance\"\nexport * from \"./decorator/entity-view/ViewEntity\"\nexport * from \"./decorator/tree/TreeLevelColumn\"\nexport * from \"./decorator/tree/TreeParent\"\nexport * from \"./decorator/tree/TreeChildren\"\nexport * from \"./decorator/tree/Tree\"\nexport * from \"./decorator/Index\"\nexport * from \"./decorator/ForeignKey\"\nexport * from \"./decorator/Unique\"\nexport * from \"./decorator/Check\"\nexport * from \"./decorator/Exclusion\"\nexport * from \"./decorator/Generated\"\nexport * from \"./decorator/EntityRepository\"\nexport * from \"./find-options/operator/And\"\nexport * from \"./find-options/operator/Or\"\nexport * from \"./find-options/operator/Any\"\nexport * from \"./find-options/operator/ArrayContainedBy\"\nexport * from \"./find-options/operator/ArrayContains\"\nexport * from \"./find-options/operator/ArrayOverlap\"\nexport * from \"./find-options/operator/Between\"\nexport * from \"./find-options/operator/Equal\"\nexport * from \"./find-options/operator/In\"\nexport * from \"./find-options/operator/IsNull\"\nexport * from \"./find-options/operator/LessThan\"\nexport * from \"./find-options/operator/LessThanOrEqual\"\nexport * from \"./find-options/operator/ILike\"\nexport * from \"./find-options/operator/Like\"\nexport * from \"./find-options/operator/MoreThan\"\nexport * from \"./find-options/operator/MoreThanOrEqual\"\nexport * from \"./find-options/operator/Not\"\nexport * from \"./find-options/operator/Raw\"\nexport * from \"./find-options/operator/JsonContains\"\nexport * from \"./find-options/EqualOperator\"\nexport * from \"./find-options/FindManyOptions\"\nexport * from \"./find-options/FindOneOptions\"\nexport * from \"./find-options/FindOperator\"\nexport * from \"./find-options/FindOperatorType\"\nexport * from \"./find-options/FindOptionsOrder\"\nexport * from \"./find-options/FindOptionsRelations\"\nexport * from \"./find-options/FindOptionsSelect\"\nexport * from \"./find-options/FindOptionsUtils\"\nexport * from \"./find-options/FindOptionsWhere\"\nexport * from \"./find-options/FindTreeOptions\"\nexport * from \"./find-options/JoinOptions\"\nexport * from \"./find-options/OrderByCondition\"\nexport * from \"./logger/AbstractLogger\"\nexport * from \"./logger/Logger\"\nexport * from \"./logger/LoggerOptions\"\nexport * from \"./logger/AdvancedConsoleLogger\"\nexport * from \"./logger/SimpleConsoleLogger\"\nexport * from \"./logger/FileLogger\"\nexport * from \"./metadata/EntityMetadata\"\nexport * from \"./entity-manager/EntityManager\"\nexport * from \"./repository/AbstractRepository\"\nexport * from \"./repository/Repository\"\nexport * from \"./repository/BaseEntity\"\nexport * from \"./repository/TreeRepository\"\nexport * from \"./repository/MongoRepository\"\nexport * from \"./repository/RemoveOptions\"\nexport * from \"./repository/SaveOptions\"\nexport * from \"./schema-builder/table/TableCheck\"\nexport * from \"./schema-builder/table/TableColumn\"\nexport * from \"./schema-builder/table/TableExclusion\"\nexport * from \"./schema-builder/table/TableForeignKey\"\nexport * from \"./schema-builder/table/TableIndex\"\nexport * from \"./schema-builder/table/TableUnique\"\nexport * from \"./schema-builder/table/Table\"\nexport * from \"./schema-builder/view/View\"\nexport * from \"./schema-builder/options/TableCheckOptions\"\nexport * from \"./schema-builder/options/TableColumnOptions\"\nexport * from \"./schema-builder/options/TableExclusionOptions\"\nexport * from \"./schema-builder/options/TableForeignKeyOptions\"\nexport * from \"./schema-builder/options/TableIndexOptions\"\nexport * from \"./schema-builder/options/TableOptions\"\nexport * from \"./schema-builder/options/TableUniqueOptions\"\nexport * from \"./schema-builder/options/ViewOptions\"\nexport * from \"./driver/mongodb/typings\"\nexport * from \"./driver/types/DatabaseType\"\nexport * from \"./driver/types/GeoJsonTypes\"\nexport * from \"./driver/types/ReplicationMode\"\nexport * from \"./driver/sqlserver/MssqlParameter\"\nexport * from \"./subscriber/event/QueryEvent\"\n\n// export * from \"./data-source\";\n\nexport { ConnectionOptionsReader } from \"./connection/ConnectionOptionsReader\"\nexport { ConnectionOptions } from \"./connection/ConnectionOptions\"\nexport { DataSource } from \"./data-source/DataSource\"\nexport { Connection } from \"./connection/Connection\"\nexport { ConnectionManager } from \"./connection/ConnectionManager\"\nexport { DataSourceOptions } from \"./data-source/DataSourceOptions\"\nexport { Driver } from \"./driver/Driver\"\nexport { QueryBuilder } from \"./query-builder/QueryBuilder\"\nexport { SelectQueryBuilder } from \"./query-builder/SelectQueryBuilder\"\nexport { DeleteQueryBuilder } from \"./query-builder/DeleteQueryBuilder\"\nexport { InsertQueryBuilder } from \"./query-builder/InsertQueryBuilder\"\nexport { UpdateQueryBuilder } from \"./query-builder/UpdateQueryBuilder\"\nexport { RelationQueryBuilder } from \"./query-builder/RelationQueryBuilder\"\nexport { Brackets } from \"./query-builder/Brackets\"\nexport { NotBrackets } from \"./query-builder/NotBrackets\"\nexport { WhereExpressionBuilder } from \"./query-builder/WhereExpressionBuilder\"\nexport { WhereExpression } from \"./query-builder/WhereExpressionBuilder\"\nexport { InsertResult } from \"./query-builder/result/InsertResult\"\nexport { UpdateResult } from \"./query-builder/result/UpdateResult\"\nexport { DeleteResult } from \"./query-builder/result/DeleteResult\"\nexport { QueryResult } from \"./query-runner/QueryResult\"\nexport { QueryRunner } from \"./query-runner/QueryRunner\"\nexport { MongoEntityManager } from \"./entity-manager/MongoEntityManager\"\nexport { Migration } from \"./migration/Migration\"\nexport { MigrationExecutor } from \"./migration/MigrationExecutor\"\nexport { MigrationInterface } from \"./migration/MigrationInterface\"\nexport { DefaultNamingStrategy } from \"./naming-strategy/DefaultNamingStrategy\"\nexport { NamingStrategyInterface } from \"./naming-strategy/NamingStrategyInterface\"\nexport { LegacyOracleNamingStrategy } from \"./naming-strategy/LegacyOracleNamingStrategy\"\nexport { InsertEvent } from \"./subscriber/event/InsertEvent\"\nexport { LoadEvent } from \"./subscriber/event/LoadEvent\"\nexport { UpdateEvent } from \"./subscriber/event/UpdateEvent\"\nexport { RemoveEvent } from \"./subscriber/event/RemoveEvent\"\nexport { SoftRemoveEvent } from \"./subscriber/event/SoftRemoveEvent\"\nexport { RecoverEvent } from \"./subscriber/event/RecoverEvent\"\nexport { TransactionCommitEvent } from \"./subscriber/event/TransactionCommitEvent\"\nexport { TransactionRollbackEvent } from \"./subscriber/event/TransactionRollbackEvent\"\nexport { TransactionStartEvent } from \"./subscriber/event/TransactionStartEvent\"\nexport { EntitySubscriberInterface } from \"./subscriber/EntitySubscriberInterface\"\nexport { EntitySchema } from \"./entity-schema/EntitySchema\"\nexport { EntitySchemaColumnOptions } from \"./entity-schema/EntitySchemaColumnOptions\"\nexport { EntitySchemaIndexOptions } from \"./entity-schema/EntitySchemaIndexOptions\"\nexport { EntitySchemaRelationOptions } from \"./entity-schema/EntitySchemaRelationOptions\"\nexport { EntitySchemaEmbeddedColumnOptions } from \"./entity-schema/EntitySchemaEmbeddedColumnOptions\"\nexport { ColumnType } from \"./driver/types/ColumnTypes\"\nexport { EntitySchemaOptions } from \"./entity-schema/EntitySchemaOptions\"\nexport { InstanceChecker } from \"./util/InstanceChecker\"\nexport { TreeRepositoryUtils } from \"./util/TreeRepositoryUtils\"\n"],"sourceRoot":"."}
package/index.mjs CHANGED
@@ -143,6 +143,7 @@ const {
143
143
  TreeChildren,
144
144
  Tree,
145
145
  Index,
146
+ ForeignKey,
146
147
  Unique,
147
148
  Check,
148
149
  Exclusion,
@@ -352,6 +353,7 @@ export {
352
353
  TreeChildren,
353
354
  Tree,
354
355
  Index,
356
+ ForeignKey,
355
357
  Unique,
356
358
  Check,
357
359
  Exclusion,
@@ -0,0 +1,54 @@
1
+ import { DeferrableType } from "../metadata/types/DeferrableType";
2
+ import { OnDeleteType } from "../metadata/types/OnDeleteType";
3
+ import { OnUpdateType } from "../metadata/types/OnUpdateType";
4
+ import { PropertyTypeFactory } from "../metadata/types/PropertyTypeInFunction";
5
+ import { RelationTypeInFunction } from "../metadata/types/RelationTypeInFunction";
6
+ /**
7
+ * Arguments for ForeignKeyMetadata class.
8
+ */
9
+ export interface ForeignKeyMetadataArgs {
10
+ /**
11
+ * Class to which foreign key is applied.
12
+ */
13
+ readonly target: Function | string;
14
+ /**
15
+ * Class's property name to which this foreign key is applied.
16
+ */
17
+ readonly propertyName?: string;
18
+ /**
19
+ * Type of the relation. This type is in function because of language specifics and problems with recursive
20
+ * referenced classes.
21
+ */
22
+ readonly type: RelationTypeInFunction;
23
+ /**
24
+ * Foreign key constraint name.
25
+ */
26
+ readonly name?: string;
27
+ /**
28
+ * Inverse side of the relation.
29
+ */
30
+ readonly inverseSide?: PropertyTypeFactory<any>;
31
+ /**
32
+ * Column names which included by this foreign key.
33
+ */
34
+ readonly columnNames?: string[];
35
+ /**
36
+ * Column names which included by this foreign key.
37
+ */
38
+ readonly referencedColumnNames?: string[];
39
+ /**
40
+ * "ON DELETE" of this foreign key, e.g. what action database should perform when
41
+ * referenced stuff is being deleted.
42
+ */
43
+ readonly onDelete?: OnDeleteType;
44
+ /**
45
+ * "ON UPDATE" of this foreign key, e.g. what action database should perform when
46
+ * referenced stuff is being updated.
47
+ */
48
+ readonly onUpdate?: OnUpdateType;
49
+ /**
50
+ * Set this foreign key constraint as "DEFERRABLE" e.g. check constraints at start
51
+ * or at the end of a transaction
52
+ */
53
+ readonly deferrable?: DeferrableType;
54
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=ForeignKeyMetadataArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/metadata-args/ForeignKeyMetadataArgs.ts"],"names":[],"mappings":"","file":"ForeignKeyMetadataArgs.js","sourcesContent":["import { DeferrableType } from \"../metadata/types/DeferrableType\"\nimport { OnDeleteType } from \"../metadata/types/OnDeleteType\"\nimport { OnUpdateType } from \"../metadata/types/OnUpdateType\"\nimport { PropertyTypeFactory } from \"../metadata/types/PropertyTypeInFunction\"\nimport { RelationTypeInFunction } from \"../metadata/types/RelationTypeInFunction\"\n\n/**\n * Arguments for ForeignKeyMetadata class.\n */\nexport interface ForeignKeyMetadataArgs {\n /**\n * Class to which foreign key is applied.\n */\n readonly target: Function | string\n\n /**\n * Class's property name to which this foreign key is applied.\n */\n readonly propertyName?: string\n\n /**\n * Type of the relation. This type is in function because of language specifics and problems with recursive\n * referenced classes.\n */\n readonly type: RelationTypeInFunction\n\n /**\n * Foreign key constraint name.\n */\n readonly name?: string\n\n /**\n * Inverse side of the relation.\n */\n readonly inverseSide?: PropertyTypeFactory<any>\n\n /**\n * Column names which included by this foreign key.\n */\n readonly columnNames?: string[]\n\n /**\n * Column names which included by this foreign key.\n */\n readonly referencedColumnNames?: string[]\n\n /**\n * \"ON DELETE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being deleted.\n */\n readonly onDelete?: OnDeleteType\n\n /**\n * \"ON UPDATE\" of this foreign key, e.g. what action database should perform when\n * referenced stuff is being updated.\n */\n readonly onUpdate?: OnUpdateType\n\n /**\n * Set this foreign key constraint as \"DEFERRABLE\" e.g. check constraints at start\n * or at the end of a transaction\n */\n readonly deferrable?: DeferrableType\n}\n"],"sourceRoot":".."}
@@ -20,6 +20,7 @@ import { TreeMetadataArgs } from "./TreeMetadataArgs";
20
20
  import { UniqueMetadataArgs } from "./UniqueMetadataArgs";
21
21
  import { CheckMetadataArgs } from "./CheckMetadataArgs";
22
22
  import { ExclusionMetadataArgs } from "./ExclusionMetadataArgs";
23
+ import { ForeignKeyMetadataArgs } from "./ForeignKeyMetadataArgs";
23
24
  /**
24
25
  * Storage all metadatas args of all available types: tables, columns, subscribers, relations, etc.
25
26
  * Each metadata args represents some specifications of what it represents.
@@ -34,6 +35,7 @@ export declare class MetadataArgsStorage {
34
35
  readonly namingStrategies: NamingStrategyMetadataArgs[];
35
36
  readonly entitySubscribers: EntitySubscriberMetadataArgs[];
36
37
  readonly indices: IndexMetadataArgs[];
38
+ readonly foreignKeys: ForeignKeyMetadataArgs[];
37
39
  readonly uniques: UniqueMetadataArgs[];
38
40
  readonly checks: CheckMetadataArgs[];
39
41
  readonly exclusions: ExclusionMetadataArgs[];
@@ -63,6 +65,8 @@ export declare class MetadataArgsStorage {
63
65
  filterRelationCounts(target: (Function | string)[]): RelationCountMetadataArgs[];
64
66
  filterIndices(target: Function | string): IndexMetadataArgs[];
65
67
  filterIndices(target: (Function | string)[]): IndexMetadataArgs[];
68
+ filterForeignKeys(target: Function | string): ForeignKeyMetadataArgs[];
69
+ filterForeignKeys(target: (Function | string)[]): ForeignKeyMetadataArgs[];
66
70
  filterUniques(target: Function | string): UniqueMetadataArgs[];
67
71
  filterUniques(target: (Function | string)[]): UniqueMetadataArgs[];
68
72
  filterChecks(target: Function | string): CheckMetadataArgs[];
@@ -20,6 +20,7 @@ class MetadataArgsStorage {
20
20
  this.namingStrategies = [];
21
21
  this.entitySubscribers = [];
22
22
  this.indices = [];
23
+ this.foreignKeys = [];
23
24
  this.uniques = [];
24
25
  this.checks = [];
25
26
  this.exclusions = [];
@@ -73,6 +74,13 @@ class MetadataArgsStorage {
73
74
  : index.target === target;
74
75
  });
75
76
  }
77
+ filterForeignKeys(target) {
78
+ return this.foreignKeys.filter((foreignKey) => {
79
+ return Array.isArray(target)
80
+ ? target.indexOf(foreignKey.target) !== -1
81
+ : foreignKey.target === target;
82
+ });
83
+ }
76
84
  filterUniques(target) {
77
85
  return this.uniques.filter((unique) => {
78
86
  return Array.isArray(target)