typeorm 0.3.6-dev.0659ec3 → 0.3.6-dev.07f4537

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 (47) hide show
  1. package/browser/entity-schema/EntitySchemaOptions.d.ts +7 -0
  2. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  3. package/browser/entity-schema/EntitySchemaRelationIdOptions.d.ts +15 -0
  4. package/browser/entity-schema/EntitySchemaRelationIdOptions.js +3 -0
  5. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -0
  6. package/browser/entity-schema/EntitySchemaTransformer.js +14 -0
  7. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  8. package/browser/find-options/FindOptionsWhere.d.ts +1 -1
  9. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  10. package/browser/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  11. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  12. package/browser/query-builder/QueryBuilder.js +12 -10
  13. package/browser/query-builder/QueryBuilder.js.map +1 -1
  14. package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
  15. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  16. package/commands/CacheClearCommand.js +1 -1
  17. package/commands/CacheClearCommand.js.map +1 -1
  18. package/commands/InitCommand.js +21 -1
  19. package/commands/InitCommand.js.map +1 -1
  20. package/commands/MigrationRevertCommand.js +1 -1
  21. package/commands/MigrationRevertCommand.js.map +1 -1
  22. package/commands/MigrationRunCommand.js +1 -1
  23. package/commands/MigrationRunCommand.js.map +1 -1
  24. package/commands/MigrationShowCommand.js +1 -1
  25. package/commands/MigrationShowCommand.js.map +1 -1
  26. package/commands/QueryCommand.js +1 -1
  27. package/commands/QueryCommand.js.map +1 -1
  28. package/commands/SchemaDropCommand.js +1 -1
  29. package/commands/SchemaDropCommand.js.map +1 -1
  30. package/commands/SchemaSyncCommand.js +1 -1
  31. package/commands/SchemaSyncCommand.js.map +1 -1
  32. package/entity-schema/EntitySchemaOptions.d.ts +7 -0
  33. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  34. package/entity-schema/EntitySchemaRelationIdOptions.d.ts +15 -0
  35. package/entity-schema/EntitySchemaRelationIdOptions.js +4 -0
  36. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -0
  37. package/entity-schema/EntitySchemaTransformer.js +14 -0
  38. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  39. package/find-options/FindOptionsWhere.d.ts +1 -1
  40. package/find-options/FindOptionsWhere.js.map +1 -1
  41. package/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  42. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  43. package/package.json +1 -1
  44. package/query-builder/QueryBuilder.js +12 -10
  45. package/query-builder/QueryBuilder.js.map +1 -1
  46. package/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
  47. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
@@ -7,6 +7,7 @@ import { TableType } from "../metadata/types/TableTypes";
7
7
  import { EntitySchemaUniqueOptions } from "./EntitySchemaUniqueOptions";
8
8
  import { EntitySchemaCheckOptions } from "./EntitySchemaCheckOptions";
9
9
  import { EntitySchemaExclusionOptions } from "./EntitySchemaExclusionOptions";
10
+ import { EntitySchemaRelationIdOptions } from "./EntitySchemaRelationIdOptions";
10
11
  /**
11
12
  * Interface for entity metadata mappings stored inside "schemas" instead of models decorated by decorators.
12
13
  */
@@ -55,6 +56,12 @@ export declare class EntitySchemaOptions<T> {
55
56
  relations?: {
56
57
  [P in keyof T]?: EntitySchemaRelationOptions;
57
58
  };
59
+ /**
60
+ * Entity relation id options.
61
+ */
62
+ relationIds?: {
63
+ [P in keyof T]?: EntitySchemaRelationIdOptions;
64
+ };
58
65
  /**
59
66
  * Entity indices options.
60
67
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/entity-schema/EntitySchemaOptions.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,OAAO,mBAAmB;CAoG/B","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\"\n\n/**\n * Interface for entity metadata mappings stored inside \"schemas\" instead of models decorated by decorators.\n */\nexport class EntitySchemaOptions<T> {\n /**\n * Name of the schema it extends.\n */\n extends?: string\n\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 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"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/entity-schema/EntitySchemaOptions.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,OAAO,mBAAmB;CA2G/B","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 { 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 * Name of the schema it extends.\n */\n extends?: string\n\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"],"sourceRoot":".."}
@@ -0,0 +1,15 @@
1
+ import { SelectQueryBuilder } from "../query-builder/SelectQueryBuilder";
2
+ export interface EntitySchemaRelationIdOptions {
3
+ /**
4
+ * Name of relation.
5
+ */
6
+ relationName: string;
7
+ /**
8
+ * Alias of the joined (destination) table.
9
+ */
10
+ alias?: string;
11
+ /**
12
+ * Extra condition applied to "ON" section of join.
13
+ */
14
+ queryBuilderFactory?: (qb: SelectQueryBuilder<any>) => SelectQueryBuilder<any>;
15
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=EntitySchemaRelationIdOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../browser/src/entity-schema/EntitySchemaRelationIdOptions.ts"],"names":[],"mappings":"","file":"EntitySchemaRelationIdOptions.js","sourcesContent":["import { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\n\nexport interface EntitySchemaRelationIdOptions {\n /**\n * Name of relation.\n */\n relationName: string\n\n /**\n * Alias of the joined (destination) table.\n */\n alias?: string\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n queryBuilderFactory?: (\n qb: SelectQueryBuilder<any>,\n ) => SelectQueryBuilder<any>\n}\n"],"sourceRoot":".."}
@@ -189,6 +189,20 @@ export class EntitySchemaTransformer {
189
189
  }
190
190
  });
191
191
  }
192
+ // add relation id metadata args from the schema
193
+ if (options.relationIds) {
194
+ Object.keys(options.relationIds).forEach((relationIdName) => {
195
+ const relationIdOptions = options.relationIds[relationIdName];
196
+ const relationId = {
197
+ propertyName: relationIdName,
198
+ relation: relationIdOptions.relationName,
199
+ target: options.target || options.name,
200
+ alias: relationIdOptions.alias,
201
+ queryBuilderFactory: relationIdOptions.queryBuilderFactory,
202
+ };
203
+ metadataArgsStorage.relationIds.push(relationId);
204
+ });
205
+ }
192
206
  // add index metadata args from the schema
193
207
  if (options.indices) {
194
208
  options.indices.forEach((index) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/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\"\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 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 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 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":["../browser/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 { 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 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 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":".."}
@@ -3,7 +3,7 @@ import { FindOperator } from "./FindOperator";
3
3
  import { ObjectID } from "../driver/mongodb/typings";
4
4
  import { EqualOperator } from "./EqualOperator";
5
5
  /**
6
- * A single property handler for FindOptionsWere.
6
+ * A single property handler for FindOptionsWhere.
7
7
  */
8
8
  export declare type FindOptionsWhereProperty<Property> = Property extends Promise<infer I> ? FindOptionsWhereProperty<NonNullable<I>> : Property extends Array<infer I> ? FindOptionsWhereProperty<NonNullable<I>> : Property extends Function ? never : Property extends Buffer ? Property | FindOperator<Property> : Property extends Date ? Property | FindOperator<Property> : Property extends ObjectID ? Property | FindOperator<Property> : Property extends object ? FindOptionsWhere<Property> | FindOptionsWhere<Property>[] | EqualOperator<Property> | FindOperator<any> | boolean : Property | FindOperator<Property>;
9
9
  /** :
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/find-options/FindOptionsWhere.ts"],"names":[],"mappings":"","file":"FindOptionsWhere.js","sourcesContent":["import { FindOperator } from \"./FindOperator\"\nimport { ObjectID } from \"../driver/mongodb/typings\"\nimport { EqualOperator } from \"./EqualOperator\"\n\n/**\n * A single property handler for FindOptionsWere.\n */\nexport type FindOptionsWhereProperty<Property> = Property extends Promise<\n infer I\n>\n ? FindOptionsWhereProperty<NonNullable<I>>\n : Property extends Array<infer I>\n ? FindOptionsWhereProperty<NonNullable<I>>\n : Property extends Function\n ? never\n : Property extends Buffer\n ? Property | FindOperator<Property>\n : Property extends Date\n ? Property | FindOperator<Property>\n : Property extends ObjectID\n ? Property | FindOperator<Property>\n : Property extends object\n ?\n | FindOptionsWhere<Property>\n | FindOptionsWhere<Property>[]\n | EqualOperator<Property>\n | FindOperator<any>\n | boolean\n : Property | FindOperator<Property>\n\n/** :\n * Used for find operations.\n */\nexport type FindOptionsWhere<Entity> = {\n [P in keyof Entity]?: FindOptionsWhereProperty<NonNullable<Entity[P]>>\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/find-options/FindOptionsWhere.ts"],"names":[],"mappings":"","file":"FindOptionsWhere.js","sourcesContent":["import { FindOperator } from \"./FindOperator\"\nimport { ObjectID } from \"../driver/mongodb/typings\"\nimport { EqualOperator } from \"./EqualOperator\"\n\n/**\n * A single property handler for FindOptionsWhere.\n */\nexport type FindOptionsWhereProperty<Property> = Property extends Promise<\n infer I\n>\n ? FindOptionsWhereProperty<NonNullable<I>>\n : Property extends Array<infer I>\n ? FindOptionsWhereProperty<NonNullable<I>>\n : Property extends Function\n ? never\n : Property extends Buffer\n ? Property | FindOperator<Property>\n : Property extends Date\n ? Property | FindOperator<Property>\n : Property extends ObjectID\n ? Property | FindOperator<Property>\n : Property extends object\n ?\n | FindOptionsWhere<Property>\n | FindOptionsWhere<Property>[]\n | EqualOperator<Property>\n | FindOperator<any>\n | boolean\n : Property | FindOperator<Property>\n\n/** :\n * Used for find operations.\n */\nexport type FindOptionsWhere<Entity> = {\n [P in keyof Entity]?: FindOptionsWhereProperty<NonNullable<Entity[P]>>\n}\n"],"sourceRoot":".."}
@@ -6,7 +6,7 @@ export interface RelationIdMetadataArgs {
6
6
  /**
7
7
  * Class to which this decorator is applied.
8
8
  */
9
- readonly target: Function;
9
+ readonly target: Function | string;
10
10
  /**
11
11
  * Class's property name to which this decorator is applied.
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/RelationIdMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationIdMetadataArgs.js","sourcesContent":["import { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\n\n/**\n * Arguments for RelationIdMetadataArgs class.\n */\nexport interface RelationIdMetadataArgs {\n /**\n * Class to which this decorator is applied.\n */\n readonly target: Function\n\n /**\n * Class's property name to which this decorator is applied.\n */\n readonly propertyName: string\n\n /**\n * Target's relation which it should count.\n */\n readonly relation: string | ((object: any) => any)\n\n /**\n * Alias of the joined (destination) table.\n */\n readonly alias?: string\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n readonly queryBuilderFactory?: (\n qb: SelectQueryBuilder<any>,\n ) => SelectQueryBuilder<any>\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/RelationIdMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationIdMetadataArgs.js","sourcesContent":["import { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\n\n/**\n * Arguments for RelationIdMetadataArgs class.\n */\nexport interface RelationIdMetadataArgs {\n /**\n * Class to which this decorator is applied.\n */\n readonly target: Function | string\n\n /**\n * Class's property name to which this decorator is applied.\n */\n readonly propertyName: string\n\n /**\n * Target's relation which it should count.\n */\n readonly relation: string | ((object: any) => any)\n\n /**\n * Alias of the joined (destination) table.\n */\n readonly alias?: string\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n readonly queryBuilderFactory?: (\n qb: SelectQueryBuilder<any>,\n ) => SelectQueryBuilder<any>\n}\n"],"sourceRoot":".."}
@@ -475,16 +475,18 @@ export class QueryBuilder {
475
475
  for (const column of alias.metadata.columns) {
476
476
  replacements[column.propertyPath] = column.databaseName;
477
477
  }
478
- const replacementKeys = Object.keys(replacements);
479
- if (replacementKeys.length) {
480
- statement = statement.replace(new RegExp(
481
- // Avoid a lookbehind here since it's not well supported
482
- `([ =\(]|^.{0})` +
483
- `${escapeRegExp(replaceAliasNamePrefix)}(${replacementKeys
484
- .map(escapeRegExp)
485
- .join("|")})` +
486
- `(?=[ =\)\,]|.{0}$)`, "gm"), (_, pre, p) => `${pre}${replacementAliasNamePrefix}${this.escape(replacements[p])}`);
487
- }
478
+ statement = statement.replace(new RegExp(
479
+ // Avoid a lookbehind here since it's not well supported
480
+ `([ =\(]|^.{0})` + // any of ' =(' or start of line
481
+ // followed by our prefix, e.g. 'tablename.' or ''
482
+ `${escapeRegExp(replaceAliasNamePrefix)}([^ =\(\)\,]+)` + // a possible property name: sequence of anything but ' =(),'
483
+ // terminated by ' =),' or end of line
484
+ `(?=[ =\)\,]|.{0}$)`, "gm"), (match, pre, p) => {
485
+ if (replacements[p]) {
486
+ return `${pre}${replacementAliasNamePrefix}${this.escape(replacements[p])}`;
487
+ }
488
+ return match;
489
+ });
488
490
  }
489
491
  return statement;
490
492
  }