{"version":3,"sources":["../browser/src/schema-builder/table/TableIndex.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH;IAsCI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,oBAAY,OAA0B;QA/BtC;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAC;QA6BvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,0BAAK,GAAL;QACI,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,mBAAM,IAAI,CAAC,WAAW,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACI,iBAAM,GAAb,UAAc,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC;YACrE,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,KAAK,EAAE,aAAa,CAAC,KAAK;SAC7B,CAAC,CAAC;IACP,CAAC;IAEL,iBAAC;AAAD,CAvFA,AAuFC,IAAA","file":"TableIndex.js","sourcesContent":["import {IndexMetadata} from \"../../metadata/IndexMetadata\";\nimport {TableIndexOptions} from \"../options/TableIndexOptions\";\n\n/**\n * Database's table index stored in this class.\n */\nexport class TableIndex {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Index name.\n */\n name?: string;\n\n /**\n * Columns included in this index.\n */\n columnNames: string[] = [];\n\n /**\n * Indicates if this index is unique.\n */\n isUnique: boolean;\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial: boolean;\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n isFulltext: boolean;\n\n /**\n * Index filter condition.\n */\n where: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableIndexOptions) {\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.isUnique = !!options.isUnique;\n this.isSpatial = !!options.isSpatial;\n this.isFulltext = !!options.isFulltext;\n this.where = options.where ? options.where : \"\";\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n clone(): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n where: this.where\n });\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates index from the index metadata object.\n */\n static create(indexMetadata: IndexMetadata): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(column => column.databaseName),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n where: indexMetadata.where\n });\n }\n\n}\n"],"sourceRoot":"../.."}
|