{"version":3,"file":"primary-keys.cjs","names":["entityKind","SingleStoreTable"],"sources":["../../src/singlestore-core/primary-keys.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreColumn, SingleStoreColumn } from './columns/index.ts';\nimport { SingleStoreTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnySingleStoreColumn<{ tableName: TTableName }>,\n\tTColumns extends AnySingleStoreColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnySingleStoreColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\n\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStorePrimaryKeyBuilder';\n\n\t/** @internal */\n\tcolumns: SingleStoreColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: SingleStoreColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: SingleStoreTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'SingleStorePrimaryKey';\n\n\treadonly columns: SingleStoreColumn[];\n\treadonly name?: string;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SingleStoreTable, columns: SingleStoreColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t\tthis.isNameExplicit = !!name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name\n\t\t\t?? `${this.table[SingleStoreTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,WAAW,GAAG,QAAa;AAC1C,KAAI,OAAO,GAAG,QACb,QAAO,IAAI,kBAAkB,OAAO,GAAG,SAAS,OAAO,GAAG,KAAK;AAEhE,QAAO,IAAI,kBAAkB,OAAO;;AAGrC,IAAa,oBAAb,MAA+B;CAC9B,QAAiBA,0BAAsB;;CAGvC;;CAGA;CAEA,YACC,SACA,MACC;AACD,OAAK,UAAU;AACf,OAAK,OAAO;;;CAIb,MAAM,OAAqC;AAC1C,SAAO,IAAI,WAAW,OAAO,KAAK,SAAS,KAAK,KAAK;;;AAIvD,IAAa,aAAb,MAAwB;CACvB,QAAiBA,0BAAsB;CAEvC,AAAS;CACT,AAAS;CACT,AAAS;CAET,YAAY,AAAS,OAAyB,SAA8B,MAAe;EAAtE;AACpB,OAAK,UAAU;AACf,OAAK,OAAO;AACZ,OAAK,iBAAiB,CAAC,CAAC;;CAGzB,UAAkB;AACjB,SAAO,KAAK,QACR,GAAG,KAAK,MAAMC,gDAAiB,OAAO,MAAM,GAAG,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK,CAAC,KAAK,IAAI,CAAC"}