{"version":3,"file":"text.cjs","names":["MsSqlColumnBuilder","entityKind","MsSqlColumn"],"sources":["../../../src/mssql-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderRuntimeConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMsSqlTable, MsSqlTable } from '~/mssql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MsSqlColumn, MsSqlColumnBuilder } from './common.ts';\n\nexport class MsSqlTextBuilder<TEnum extends [string, ...string[]]> extends MsSqlColumnBuilder<\n\t{\n\t\tdataType: Equal<TEnum, [string, ...string[]]> extends true ? 'string' : 'string enum';\n\t\tdata: TEnum[number];\n\t\tdriverParam: string;\n\t\tenumValues: TEnum;\n\t},\n\t{ enumValues: TEnum | undefined; nonUnicode: boolean }\n> {\n\tstatic override readonly [entityKind]: string = 'MsSqlTextBuilder';\n\n\tconstructor(name: string, config: MsSqlTextConfig<TEnum> & { nonUnicode: boolean }) {\n\t\tsuper(name, config.enum?.length ? 'string enum' : 'string', 'MsSqlText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.nonUnicode = config.nonUnicode;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMsSqlTable<{ name: TTableName }>,\n\t) {\n\t\treturn new MsSqlText(table, this.config);\n\t}\n}\n\nexport class MsSqlText<T extends ColumnBaseConfig<'string' | 'string enum'>>\n\textends MsSqlColumn<T, { enumValues: T['enumValues'] | undefined; nonUnicode: boolean }>\n{\n\tstatic override readonly [entityKind]: string = 'MsSqlText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly nonUnicode: boolean = this.config.nonUnicode;\n\n\tconstructor(\n\t\ttable: MsSqlTable<any>,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & { enumValues: T['enumValues'] | undefined; nonUnicode: boolean },\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.nonUnicode ? 'n' : ''}text`;\n\t}\n}\n\nexport type MsSqlTextConfig<\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> = {\n\tenum?: TEnum;\n};\n\nexport function text<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MsSqlTextConfig<T | Writable<T>>,\n): MsSqlTextBuilder<Writable<T>>;\nexport function text<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: string,\n\tconfig?: MsSqlTextConfig<T | Writable<T>>,\n): MsSqlTextBuilder<Writable<T>>;\nexport function text(\n\ta?: string | MsSqlTextConfig,\n\tb?: MsSqlTextConfig,\n): any {\n\tconst { name, config } = getColumnNameAndConfig<MsSqlTextConfig>(a, b);\n\n\treturn new MsSqlTextBuilder(name, { ...config, nonUnicode: false } as any);\n}\n\nexport function ntext<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MsSqlTextConfig<T | Writable<T>>,\n): MsSqlTextBuilder<Writable<T>>;\nexport function ntext<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: string,\n\tconfig?: MsSqlTextConfig<T | Writable<T>>,\n): MsSqlTextBuilder<Writable<T>>;\nexport function ntext(\n\ta?: string | MsSqlTextConfig,\n\tb?: MsSqlTextConfig,\n): any {\n\tconst { name, config } = getColumnNameAndConfig<MsSqlTextConfig>(a, b);\n\n\treturn new MsSqlTextBuilder(name, { ...config, nonUnicode: true } as any);\n}\n"],"mappings":";;;;;;;AAOA,IAAa,mBAAb,cAA2EA,qDAQzE;CACD,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc,QAA0D;AACnF,QAAM,MAAM,OAAO,MAAM,SAAS,gBAAgB,UAAU,YAAY;AACxE,OAAK,OAAO,aAAa,OAAO;AAChC,OAAK,OAAO,aAAa,OAAO;;;CAIjC,AAAS,MACR,OACC;AACD,SAAO,IAAI,UAAU,OAAO,KAAK,OAAO;;;AAI1C,IAAa,YAAb,cACSC,8CACT;CACC,QAA0BD,0BAAsB;CAEhD,AAAkB,aAAa,KAAK,OAAO;CAE3C,AAAS,aAAsB,KAAK,OAAO;CAE3C,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;;CAGrB,aAAqB;AACpB,SAAO,GAAG,KAAK,aAAa,MAAM,GAAG;;;AAiBvC,SAAgB,KACf,GACA,GACM;CACN,MAAM,EAAE,MAAM,kDAAmD,GAAG,EAAE;AAEtE,QAAO,IAAI,iBAAiB,MAAM;EAAE,GAAG;EAAQ,YAAY;EAAO,CAAQ;;AAU3E,SAAgB,MACf,GACA,GACM;CACN,MAAM,EAAE,MAAM,kDAAmD,GAAG,EAAE;AAEtE,QAAO,IAAI,iBAAiB,MAAM;EAAE,GAAG;EAAQ,YAAY;EAAM,CAAQ"}