UNPKG

5.11 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/metadata/ForeignKeyMetadata.ts"],"names":[],"mappings":";;AAOA;;GAEG;AACH;IA6DI,wEAAwE;IACxE,cAAc;IACd,wEAAwE;IAExE,4BAAY,OASX;QA1DD;;WAEG;QACH,YAAO,GAAqB,EAAE,CAAC;QAE/B;;WAEG;QACH,sBAAiB,GAAqB,EAAE,CAAC;QA2BzC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QAE3B;;WAEG;QACH,0BAAqB,GAAa,EAAE,CAAC;QAgBjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,OAAO,CAAC,cAAc;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED,wEAAwE;IACxE,iBAAiB;IACjB,wEAAwE;IAExE;;;OAGG;IACH,kCAAK,GAAL,UAAM,cAAuC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC,CAAC;QACnE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC,CAAC;QACvF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrJ,CAAC;IAEL,yBAAC;AAAD,CArGA,AAqGC,IAAA;AArGY,gDAAkB","file":"ForeignKeyMetadata.js","sourcesContent":["import {ColumnMetadata} from \"./ColumnMetadata\";\nimport {EntityMetadata} from \"./EntityMetadata\";\nimport {NamingStrategyInterface} from \"../naming-strategy/NamingStrategyInterface\";\nimport {DeferrableType} from \"./types/DeferrableType\";\nimport {OnDeleteType} from \"./types/OnDeleteType\";\nimport {OnUpdateType} from \"./types/OnUpdateType\";\n\n/**\n * Contains all information about entity's foreign key.\n */\nexport class ForeignKeyMetadata {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Entity metadata where this foreign key is.\n */\n entityMetadata: EntityMetadata;\n\n /**\n * Entity metadata which this foreign key references.\n */\n referencedEntityMetadata: EntityMetadata;\n\n /**\n * Array of columns of this foreign key.\n */\n columns: ColumnMetadata[] = [];\n\n /**\n * Array of referenced columns.\n */\n referencedColumns: ColumnMetadata[] = [];\n\n /**\n * What to do with a relation on deletion of the row containing a foreign key.\n */\n onDelete?: OnDeleteType;\n\n /**\n * What to do with a relation on update of the row containing a foreign key.\n */\n onUpdate?: OnUpdateType;\n\n /**\n * When to check the constraints of a foreign key.\n */\n deferrable?: DeferrableType;\n\n /**\n * Gets the table name to which this foreign key is referenced.\n */\n referencedTablePath: string;\n\n /**\n * Gets foreign key name.\n */\n name: string;\n\n /**\n * Gets array of column names.\n */\n columnNames: string[] = [];\n\n /**\n * Gets array of referenced column names.\n */\n referencedColumnNames: string[] = [];\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n entityMetadata: EntityMetadata,\n referencedEntityMetadata: EntityMetadata,\n namingStrategy?: NamingStrategyInterface,\n columns: ColumnMetadata[],\n referencedColumns: ColumnMetadata[],\n onDelete?: OnDeleteType,\n onUpdate?: OnUpdateType,\n deferrable?: DeferrableType,\n }) {\n this.entityMetadata = options.entityMetadata;\n this.referencedEntityMetadata = options.referencedEntityMetadata;\n this.columns = options.columns;\n this.referencedColumns = options.referencedColumns;\n this.onDelete = options.onDelete || \"NO ACTION\";\n this.onUpdate = options.onUpdate || \"NO ACTION\";\n this.deferrable = options.deferrable;\n if (options.namingStrategy)\n this.build(options.namingStrategy);\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds some depend foreign key properties.\n * Must be called after all entity metadatas and their columns are built.\n */\n build(namingStrategy: NamingStrategyInterface) {\n this.columnNames = this.columns.map(column => column.databaseName);\n this.referencedColumnNames = this.referencedColumns.map(column => column.databaseName);\n this.referencedTablePath = this.referencedEntityMetadata.tablePath;\n this.name = namingStrategy.foreignKeyName(this.entityMetadata.tablePath, this.columnNames, this.referencedTablePath, this.referencedColumnNames);\n }\n\n}\n"],"sourceRoot":".."}
\No newline at end of file