drizzle-orm
Version:
Drizzle ORM package for SQL databases
1 lines • 2.91 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/mysql-core/columns/time.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlTimeBuilderInitial<TName extends string> = MySqlTimeBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlTime';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlTimeBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlTime'>> extends MySqlColumnBuilder<\n\tT,\n\tTimeConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlTimeBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tconfig: TimeConfig | undefined,\n\t) {\n\t\tsuper(name, 'string', 'MySqlTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlTime<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlTime<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlTime<\n\tT extends ColumnBaseConfig<'string', 'MySqlTime'>,\n> extends MySqlColumn<T, TimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlTime';\n\n\treadonly fsp: number | undefined = this.config.fsp;\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `time${precision}`;\n\t}\n}\n\nexport type TimeConfig = {\n\tfsp?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n};\n\nexport function time(): MySqlTimeBuilderInitial<''>;\nexport function time(\n\tconfig?: TimeConfig,\n): MySqlTimeBuilderInitial<''>;\nexport function time<TName extends string>(\n\tname: TName,\n\tconfig?: TimeConfig,\n): MySqlTimeBuilderInitial<TName>;\nexport function time(a?: string | TimeConfig, b?: TimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<TimeConfig>(a, b);\n\treturn new MySqlTimeBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAuC;AACvC,oBAAgD;AAWzC,MAAM,yBAAmF,iCAG9F;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,QACC;AACD,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAEH,0BAA2B;AAAA,EACpC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,MAA0B,KAAK,OAAO;AAAA,EAE/C,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,OAAO,SAAS;AAAA,EACxB;AACD;AAcO,SAAS,KAAK,GAAyB,GAAgB;AAC7D,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAmC,GAAG,CAAC;AAChE,SAAO,IAAI,iBAAiB,MAAM,MAAM;AACzC;","names":[]}