{"version":3,"file":"float.cjs","names":["MySqlColumnBuilderWithAutoIncrement","entityKind","MySqlColumnWithAutoIncrement"],"sources":["../../../src/mysql-core/columns/float.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';\n\nexport class MySqlFloatBuilder<TUnsigned extends boolean | undefined> extends MySqlColumnBuilderWithAutoIncrement<{\n\tdataType: Equal<TUnsigned, true> extends true ? 'number ufloat' : 'number float';\n\tdata: number;\n\tdriverParam: number | string;\n}, MySqlFloatConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlFloatBuilder';\n\n\tconstructor(name: string, config: MySqlFloatConfig | undefined) {\n\t\tsuper(name, config?.unsigned ? 'number ufloat' : 'number float' as any, 'MySqlFloat');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t\tthis.config.unsigned = config?.unsigned;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlFloat(table, this.config as any);\n\t}\n}\n\nexport class MySqlFloat<T extends ColumnBaseConfig<'number float' | 'number ufloat'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlFloatConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlFloat';\n\n\t/** @internal */\n\toverride readonly codec = 'float';\n\n\treadonly precision: number | undefined = this.config.precision;\n\treadonly scale: number | undefined = this.config.scale;\n\treadonly unsigned: boolean | undefined = this.config.unsigned;\n\n\tgetSQLType(): string {\n\t\tlet type = '';\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\ttype += `float(${this.precision},${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\ttype += 'float';\n\t\t} else {\n\t\t\ttype += `float(${this.precision})`;\n\t\t}\n\t\treturn this.unsigned ? `${type} unsigned` : type;\n\t}\n}\n\nexport interface MySqlFloatConfig<TUnsigned extends boolean | undefined = boolean | undefined> {\n\tprecision?: number;\n\tscale?: number;\n\tunsigned?: TUnsigned;\n}\n\nexport function float<TUnsigned extends boolean | undefined>(\n\tconfig?: MySqlFloatConfig<TUnsigned>,\n): MySqlFloatBuilder<TUnsigned>;\nexport function float<TUnsigned extends boolean | undefined>(\n\tname: string,\n\tconfig?: MySqlFloatConfig<TUnsigned>,\n): MySqlFloatBuilder<TUnsigned>;\nexport function float(a?: string | MySqlFloatConfig, b?: MySqlFloatConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlFloatConfig>(a, b);\n\treturn new MySqlFloatBuilder(name, config);\n}\n"],"mappings":";;;;;;;AAMA,IAAa,oBAAb,cAA8EA,sEAIzD;CACpB,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc,QAAsC;AAC/D,QAAM,MAAM,QAAQ,WAAW,kBAAkB,gBAAuB,aAAa;AACrF,OAAK,OAAO,YAAY,QAAQ;AAChC,OAAK,OAAO,QAAQ,QAAQ;AAC5B,OAAK,OAAO,WAAW,QAAQ;;;CAIhC,AAAS,MAAM,OAAmB;AACjC,SAAO,IAAI,WAAW,OAAO,KAAK,OAAc;;;AAIlD,IAAa,aAAb,cACSC,+DACT;CACC,QAA0BD,0BAAsB;;CAGhD,AAAkB,QAAQ;CAE1B,AAAS,YAAgC,KAAK,OAAO;CACrD,AAAS,QAA4B,KAAK,OAAO;CACjD,AAAS,WAAgC,KAAK,OAAO;CAErD,aAAqB;EACpB,IAAI,OAAO;AACX,MAAI,KAAK,cAAc,UAAa,KAAK,UAAU,OAClD,SAAQ,SAAS,KAAK,UAAU,GAAG,KAAK,MAAM;WACpC,KAAK,cAAc,OAC7B,SAAQ;MAER,SAAQ,SAAS,KAAK,UAAU;AAEjC,SAAO,KAAK,WAAW,GAAG,KAAK,aAAa;;;AAiB9C,SAAgB,MAAM,GAA+B,GAAsB;CAC1E,MAAM,EAAE,MAAM,kDAAoD,GAAG,EAAE;AACvE,QAAO,IAAI,kBAAkB,MAAM,OAAO"}