{"version":3,"file":"varbinary.cjs","names":["MsSqlColumnBuilder","entityKind","MsSqlColumn"],"sources":["../../../src/mssql-core/columns/varbinary.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMsSqlTable } from '~/mssql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MsSqlColumn, MsSqlColumnBuilder } from './common.ts';\n\nexport class MsSqlVarBinaryBuilder extends MsSqlColumnBuilder<{\n\tdataType: 'object buffer';\n\tdata: Buffer;\n\tdriverParam: Buffer;\n}, MsSqlVarbinaryOptions & { rawLength: MsSqlVarbinaryOptions['length'] | undefined }> {\n\tstatic override readonly [entityKind]: string = 'MsSqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: string, config?: MsSqlVarbinaryOptions) {\n\t\tsuper(name, 'object buffer', 'MsSqlVarBinary');\n\t\tthis.config.length = typeof config?.length === 'number' ? config.length : config?.length === 'max' ? 2147483647 : 1;\n\t\tthis.config.rawLength = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMsSqlTable<{ name: TTableName }>,\n\t) {\n\t\treturn new MsSqlVarBinary(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class MsSqlVarBinary<\n\tT extends ColumnBaseConfig<'object buffer'>,\n> extends MsSqlColumn<T, MsSqlVarbinaryOptions & { rawLength: MsSqlVarbinaryOptions['length'] | undefined }> {\n\tstatic override readonly [entityKind]: string = 'MsSqlVarBinary';\n\n\tgetSQLType(): string {\n\t\treturn this.config.rawLength === undefined ? `varbinary` : `varbinary(${this.config.rawLength})`;\n\t}\n}\n\nexport interface MsSqlVarbinaryOptions {\n\tlength: number | 'max';\n}\n\nexport function varbinary(\n\tconfig?: MsSqlVarbinaryOptions,\n): MsSqlVarBinaryBuilder;\nexport function varbinary(\n\tname: string,\n\tconfig?: MsSqlVarbinaryOptions,\n): MsSqlVarBinaryBuilder;\nexport function varbinary(a?: string | MsSqlVarbinaryOptions, b?: MsSqlVarbinaryOptions) {\n\tconst { name, config } = getColumnNameAndConfig<MsSqlVarbinaryOptions>(a, b);\n\treturn new MsSqlVarBinaryBuilder(name, config);\n}\n"],"mappings":";;;;;;;AAMA,IAAa,wBAAb,cAA2CA,qDAI4C;CACtF,QAA0BC,0BAAsB;;CAGhD,YAAY,MAAc,QAAgC;AACzD,QAAM,MAAM,iBAAiB,iBAAiB;AAC9C,OAAK,OAAO,SAAS,OAAO,QAAQ,WAAW,WAAW,OAAO,SAAS,QAAQ,WAAW,QAAQ,aAAa;AAClH,OAAK,OAAO,YAAY,QAAQ;;;CAIjC,AAAS,MACR,OACC;AACD,SAAO,IAAI,eACV,OACA,KAAK,OACL;;;AAIH,IAAa,iBAAb,cAEUC,8CAAmG;CAC5G,QAA0BD,0BAAsB;CAEhD,aAAqB;AACpB,SAAO,KAAK,OAAO,cAAc,SAAY,cAAc,aAAa,KAAK,OAAO,UAAU;;;AAehG,SAAgB,UAAU,GAAoC,GAA2B;CACxF,MAAM,EAAE,MAAM,kDAAyD,GAAG,EAAE;AAC5E,QAAO,IAAI,sBAAsB,MAAM,OAAO"}