{"version":3,"file":"index.cjs","names":["Table","CockroachTable","IndexBuilder","CheckBuilder","UniqueConstraintBuilder","PrimaryKeyBuilder","ForeignKeyBuilder","CockroachPolicy","ViewBaseConfig","CockroachMaterializedViewConfig"],"sources":["../../../src/cockroach-core/utils/index.ts"],"sourcesContent":["import { CockroachTable } from '~/cockroach-core/table.ts';\nimport { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from '../checks.ts';\nimport type { AnyCockroachColumn } from '../columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from '../foreign-keys.ts';\nimport type { Index } from '../indexes.ts';\nimport { IndexBuilder } from '../indexes.ts';\nimport { CockroachPolicy } from '../policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from '../primary-keys.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from '../unique-constraint.ts';\nimport { type CockroachMaterializedView, CockroachMaterializedViewConfig, type CockroachView } from '../view.ts';\n\nexport * from './array.ts';\n\nexport function getTableConfig<TTable extends CockroachTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[CockroachTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: CockroachPolicy[] = [];\n\tconst enableRLS: boolean = table[CockroachTable.Symbol.EnableRLS];\n\n\tconst extraConfigBuilder = table[CockroachTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, CockroachPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: CockroachView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: CockroachMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[CockroachMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyCockroachColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyCockroachColumn<{ tableName: TForeignTableName }> };\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,SAAgB,eAA8C,OAAe;CAC5E,MAAM,UAAU,OAAO,OAAO,MAAMA,iBAAM,OAAO,SAAS;CAC1D,MAAM,UAAmB,EAAE;CAC3B,MAAM,SAAkB,EAAE;CAC1B,MAAM,cAA4B,EAAE;CACpC,MAAM,cAA4B,OAAO,OAAO,MAAMC,yCAAe,OAAO,mBAAmB;CAC/F,MAAM,oBAAwC,EAAE;CAChD,MAAM,OAAO,MAAMD,iBAAM,OAAO;CAChC,MAAM,SAAS,MAAMA,iBAAM,OAAO;CAClC,MAAM,WAA8B,EAAE;CACtC,MAAM,YAAqB,MAAMC,yCAAe,OAAO;CAEvD,MAAM,qBAAqB,MAAMA,yCAAe,OAAO;AAEvD,KAAI,uBAAuB,QAAW;EACrC,MAAM,cAAc,mBAAmB,MAAMD,iBAAM,OAAO,oBAAoB;EAC9E,MAAM,cAAc,MAAM,QAAQ,YAAY,GAAG,YAAY,KAAK,EAAE,GAAY,OAAO,OAAO,YAAY;AAC1G,OAAK,MAAM,WAAW,YACrB,yBAAO,SAASE,4CAAa,CAC5B,SAAQ,KAAK,QAAQ,MAAM,MAAM,CAAC;+BACrB,SAASC,2CAAa,CACnC,QAAO,KAAK,QAAQ,MAAM,MAAM,CAAC;+BACpB,SAASC,iEAAwB,CAC9C,mBAAkB,KAAK,QAAQ,MAAM,MAAM,CAAC;+BAC/B,SAASC,sDAAkB,CACxC,aAAY,KAAK,QAAQ,MAAM,MAAM,CAAC;+BACzB,SAASC,sDAAkB,CACxC,aAAY,KAAK,QAAQ,MAAM,MAAM,CAAC;+BACzB,SAASC,gDAAgB,CACtC,UAAS,KAAK,QAAQ;;AAKzB,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,SAAgB,cAGd,MAAuC;AACxC,QAAO,EACN,GAAG,KAAKC,kCACR;;AAGF,SAAgB,0BAGd,MAAmD;AACpD,QAAO;EACN,GAAG,KAAKA;EACR,GAAG,KAAKC;EACR"}