{"version":3,"file":"bigint.cjs","names":["CockroachIntColumnBaseBuilder","entityKind","CockroachColumn"],"sources":["../../../src/cockroach-core/columns/bigint.ts"],"sourcesContent":["import type { AnyCockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachIntColumnBaseBuilder } from './int.common.ts';\n\nexport class CockroachBigInt53Builder extends CockroachIntColumnBaseBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number | string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachBigInt53Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'CockroachBigInt53');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachBigInt53(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachBigInt53<T extends ColumnBaseConfig<'number int53'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachBigInt53';\n\n\tgetSQLType(): string {\n\t\treturn 'int8';\n\t}\n\n\toverride mapFromDriverValue = (value: number | string): number => {\n\t\tif (typeof value === 'number') {\n\t\t\treturn value;\n\t\t}\n\t\treturn Number(value);\n\t};\n}\n\nexport class CockroachBigInt64Builder extends CockroachIntColumnBaseBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachBigInt64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'CockroachBigInt64');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachBigInt64(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachBigInt64';\n\n\tgetSQLType(): string {\n\t\treturn 'int8';\n\t}\n\n\t// eslint-disable-next-line unicorn/prefer-native-coercion-functions\n\toverride mapFromDriverValue = (value: string): bigint => {\n\t\treturn BigInt(value);\n\t};\n}\n\nexport interface CockroachBigIntConfig<T extends 'number' | 'bigint' = 'number' | 'bigint'> {\n\tmode: T;\n}\n\nexport function bigint<TMode extends CockroachBigIntConfig['mode']>(\n\tconfig: CockroachBigIntConfig<TMode>,\n): TMode extends 'number' ? CockroachBigInt53Builder : CockroachBigInt64Builder;\nexport function bigint<TMode extends CockroachBigIntConfig['mode']>(\n\tname: string,\n\tconfig: CockroachBigIntConfig<TMode>,\n): TMode extends 'number' ? CockroachBigInt53Builder : CockroachBigInt64Builder;\nexport function bigint(a: string | CockroachBigIntConfig, b?: CockroachBigIntConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachBigIntConfig>(a, b);\n\tif (config.mode === 'number') {\n\t\treturn new CockroachBigInt53Builder(name);\n\t}\n\treturn new CockroachBigInt64Builder(name);\n}\nexport function int8<TMode extends CockroachBigIntConfig['mode']>(\n\tconfig: CockroachBigIntConfig<TMode>,\n): TMode extends 'number' ? CockroachBigInt53Builder : CockroachBigInt64Builder;\nexport function int8<TMode extends CockroachBigIntConfig['mode']>(\n\tname: string,\n\tconfig: CockroachBigIntConfig<TMode>,\n): TMode extends 'number' ? CockroachBigInt53Builder : CockroachBigInt64Builder;\nexport function int8(a: string | CockroachBigIntConfig, b?: CockroachBigIntConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachBigIntConfig>(a, b);\n\tif (config.mode === 'number') {\n\t\treturn new CockroachBigInt53Builder(name);\n\t}\n\treturn new CockroachBigInt64Builder(name);\n}\n"],"mappings":";;;;;;;;AAOA,IAAa,2BAAb,cAA8CA,wEAI3C;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,oBAAoB;;;CAIjD,AAAS,MACR,OACC;AACD,SAAO,IAAI,kBACV,OACA,KAAK,OACL;;;AAIH,IAAa,oBAAb,cAAmFC,sDAAmB;CACrG,QAA0BD,0BAAsB;CAEhD,aAAqB;AACpB,SAAO;;CAGR,AAAS,sBAAsB,UAAmC;AACjE,MAAI,OAAO,UAAU,SACpB,QAAO;AAER,SAAO,OAAO,MAAM;;;AAItB,IAAa,2BAAb,cAA8CD,wEAI3C;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,oBAAoB;;;CAIjD,AAAS,MACR,OACC;AACD,SAAO,IAAI,kBACV,OACA,KAAK,OACL;;;AAIH,IAAa,oBAAb,cAAmFC,sDAAmB;CACrG,QAA0BD,0BAAsB;CAEhD,aAAqB;AACpB,SAAO;;CAIR,AAAS,sBAAsB,UAA0B;AACxD,SAAO,OAAO,MAAM;;;AAetB,SAAgB,OAAO,GAAmC,GAA2B;CACpF,MAAM,EAAE,MAAM,kDAAyD,GAAG,EAAE;AAC5E,KAAI,OAAO,SAAS,SACnB,QAAO,IAAI,yBAAyB,KAAK;AAE1C,QAAO,IAAI,yBAAyB,KAAK;;AAS1C,SAAgB,KAAK,GAAmC,GAA2B;CAClF,MAAM,EAAE,MAAM,kDAAyD,GAAG,EAAE;AAC5E,KAAI,OAAO,SAAS,SACnB,QAAO,IAAI,yBAAyB,KAAK;AAE1C,QAAO,IAAI,yBAAyB,KAAK"}