{"version":3,"file":"date.cjs","names":["SingleStoreColumnBuilder","entityKind","SingleStoreColumn"],"sources":["../../../src/singlestore-core/columns/date.ts"],"sourcesContent":["import type { ColumnBuilderRuntimeConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder } from './common.ts';\n\nexport class SingleStoreDateBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDate');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDate(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDate<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDate';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']>,\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n\n\toverride mapFromDriverValue = (value: string): Date => {\n\t\treturn new Date(value);\n\t};\n}\n\nexport class SingleStoreDateStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string | number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'SingleStoreDateString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateString<T extends ColumnBaseConfig<'string date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']>,\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n}\n\nexport interface SingleStoreDateConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function date<TMode extends SingleStoreDateConfig['mode'] & {}>(\n\tconfig?: SingleStoreDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateStringBuilder : SingleStoreDateBuilder;\nexport function date<TMode extends SingleStoreDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateStringBuilder\n\t: SingleStoreDateBuilder;\nexport function date(a?: string | SingleStoreDateConfig, b?: SingleStoreDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDateConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateStringBuilder(name);\n\t}\n\treturn new SingleStoreDateBuilder(name);\n}\n"],"mappings":";;;;;;;AAOA,IAAa,yBAAb,cAA4CA,iEAIzC;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,eAAe,kBAAkB;;;CAI9C,AAAS,MAAM,OAAyB;AACvC,SAAO,IAAI,gBACV,OACA,KAAK,OACL;;;AAIH,IAAa,kBAAb,cAAgFC,0DAAqB;CACpG,QAA0BD,0BAAsB;CAEhD,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;;CAGrB,aAAqB;AACpB,SAAO;;CAGR,AAAS,sBAAsB,UAAwB;AACtD,SAAO,IAAI,KAAK,MAAM;;;AAIxB,IAAa,+BAAb,cAAkDD,iEAI/C;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,eAAe,wBAAwB;;;CAIpD,AAAS,MAAM,OAAyB;AACvC,SAAO,IAAI,sBACV,OACA,KAAK,OACL;;;AAIH,IAAa,wBAAb,cAAsFC,0DAAqB;CAC1G,QAA0BD,0BAAsB;CAEhD,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;;CAGrB,aAAqB;AACpB,SAAO;;;AAgBT,SAAgB,KAAK,GAAoC,GAA2B;CACnF,MAAM,EAAE,MAAM,kDAAqE,GAAG,EAAE;AACxF,KAAI,QAAQ,SAAS,SACpB,QAAO,IAAI,6BAA6B,KAAK;AAE9C,QAAO,IAAI,uBAAuB,KAAK"}