{"version":3,"file":"bigserial.cjs","names":["PgColumnBuilder","entityKind","PgColumn"],"sources":["../../../src/pg-core/columns/bigserial.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport type { PgTable } from '../table.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport class PgBigSerial53Builder extends PgColumnBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number;\n\tnotNull: true;\n\thasDefault: true;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgBigSerial53Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'PgBigSerial53');\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgBigSerial53(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgBigSerial53 extends PgColumn<'number int53'> {\n\tstatic override readonly [entityKind]: string = 'PgBigSerial53';\n\n\t/** @internal */\n\toverride readonly codec = 'bigserial:number';\n\n\tgetSQLType(): string {\n\t\treturn 'bigserial';\n\t}\n}\n\nexport class PgBigSerial64Builder extends PgColumnBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: string;\n\tnotNull: true;\n\thasDefault: true;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgBigSerial64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'PgBigSerial64');\n\t\tthis.config.hasDefault = true;\n\t\tthis.config.notNull = true;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgBigSerial64(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgBigSerial64 extends PgColumn<'bigint int64'> {\n\tstatic override readonly [entityKind]: string = 'PgBigSerial64';\n\n\t/** @internal */\n\toverride readonly codec = 'bigserial';\n\n\tgetSQLType(): string {\n\t\treturn 'bigserial';\n\t}\n}\n\nexport interface PgBigSerialConfig<T extends 'number' | 'bigint' = 'number' | 'bigint'> {\n\tmode: T;\n}\n\nexport function bigserial<TMode extends PgBigSerialConfig['mode']>(\n\tconfig: PgBigSerialConfig<TMode>,\n): TMode extends 'number' ? PgBigSerial53Builder : PgBigSerial64Builder;\nexport function bigserial<TMode extends PgBigSerialConfig['mode']>(\n\tname: string,\n\tconfig: PgBigSerialConfig<TMode>,\n): TMode extends 'number' ? PgBigSerial53Builder : PgBigSerial64Builder;\nexport function bigserial(a: string | PgBigSerialConfig, b?: PgBigSerialConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgBigSerialConfig>(a, b);\n\tif (config.mode === 'number') {\n\t\treturn new PgBigSerial53Builder(name);\n\t}\n\treturn new PgBigSerial64Builder(name);\n}\n"],"mappings":";;;;;;;AAKA,IAAa,uBAAb,cAA0CA,+CAMvC;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,gBAAgB;AAC5C,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,UAAU;;;CAIvB,AAAS,MAAM,OAAqB;AACnC,SAAO,IAAI,cACV,OACA,KAAK,OACL;;;AAIH,IAAa,gBAAb,cAAmCC,wCAAyB;CAC3D,QAA0BD,0BAAsB;;CAGhD,AAAkB,QAAQ;CAE1B,aAAqB;AACpB,SAAO;;;AAIT,IAAa,uBAAb,cAA0CD,+CAMvC;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,gBAAgB;AAC5C,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,UAAU;;;CAIvB,AAAS,MAAM,OAAqB;AACnC,SAAO,IAAI,cACV,OACA,KAAK,OACL;;;AAIH,IAAa,gBAAb,cAAmCC,wCAAyB;CAC3D,QAA0BD,0BAAsB;;CAGhD,AAAkB,QAAQ;CAE1B,aAAqB;AACpB,SAAO;;;AAeT,SAAgB,UAAU,GAA+B,GAAuB;CAC/E,MAAM,EAAE,MAAM,kDAAqD,GAAG,EAAE;AACxE,KAAI,OAAO,SAAS,SACnB,QAAO,IAAI,qBAAqB,KAAK;AAEtC,QAAO,IAAI,qBAAqB,KAAK"}