{"version":3,"file":"smallint.cjs","names":["MySqlColumnBuilderWithAutoIncrement","entityKind","MySqlColumnWithAutoIncrement"],"sources":["../../../src/mysql-core/columns/smallint.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from './common.ts';\nimport type { MySqlIntConfig } from './int.ts';\n\nexport class MySqlSmallIntBuilder<TUnsigned extends boolean | undefined> extends MySqlColumnBuilderWithAutoIncrement<{\n\tdataType: Equal<TUnsigned, true> extends true ? 'number uint16' : 'number int16';\n\tdata: number;\n\tdriverParam: number | string;\n}, MySqlIntConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlSmallIntBuilder';\n\n\tconstructor(name: string, config?: MySqlIntConfig) {\n\t\tsuper(name, config?.unsigned ? 'number uint16' : 'number int16' as any, 'MySqlSmallInt');\n\t\tthis.config.unsigned = config ? config.unsigned : false;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlSmallInt(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlSmallInt<T extends ColumnBaseConfig<'number int16' | 'number uint16'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlIntConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlSmallInt';\n\n\t/** @internal */\n\toverride readonly codec = 'smallint';\n\n\tgetSQLType(): string {\n\t\treturn `smallint${this.config.unsigned ? ' unsigned' : ''}`;\n\t}\n}\n\nexport function smallint<TUnsigned extends boolean | undefined>(\n\tconfig?: MySqlIntConfig<TUnsigned>,\n): MySqlSmallIntBuilder<TUnsigned>;\nexport function smallint<TUnsigned extends boolean | undefined>(\n\tname: string,\n\tconfig?: MySqlIntConfig<TUnsigned>,\n): MySqlSmallIntBuilder<TUnsigned>;\nexport function smallint(a?: string | MySqlIntConfig, b?: MySqlIntConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlIntConfig>(a, b);\n\treturn new MySqlSmallIntBuilder(name, config);\n}\n"],"mappings":";;;;;;;AAOA,IAAa,uBAAb,cAAiFA,sEAI9D;CAClB,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc,QAAyB;AAClD,QAAM,MAAM,QAAQ,WAAW,kBAAkB,gBAAuB,gBAAgB;AACxF,OAAK,OAAO,WAAW,SAAS,OAAO,WAAW;;;CAInD,AAAS,MAAM,OAAmB;AACjC,SAAO,IAAI,cACV,OACA,KAAK,OACL;;;AAIH,IAAa,gBAAb,cACSC,+DACT;CACC,QAA0BD,0BAAsB;;CAGhD,AAAkB,QAAQ;CAE1B,aAAqB;AACpB,SAAO,WAAW,KAAK,OAAO,WAAW,cAAc;;;AAWzD,SAAgB,SAAS,GAA6B,GAAoB;CACzE,MAAM,EAAE,MAAM,kDAAkD,GAAG,EAAE;AACrE,QAAO,IAAI,qBAAqB,MAAM,OAAO"}