{"version":3,"sources":["../../../src/mysql-core/columns/json.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 { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlJsonBuilderInitial = MySqlJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'MySqlJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlJsonBuilder> extends MySqlColumnBuilder {\n\tstatic override readonly [entityKind]: string = 'MySqlJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'MySqlJson');\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlJson> {\n\t\treturn new MySqlJson>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class MySqlJson> extends MySqlColumn {\n\tstatic override readonly [entityKind]: string = 'MySqlJson';\n\n\tgetSQLType(): string {\n\t\treturn 'json';\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport function json(): MySqlJsonBuilderInitial<''>;\nexport function json(name: TName): MySqlJsonBuilderInitial;\nexport function json(name?: string) {\n\treturn new MySqlJsonBuilder(name ?? '');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAAgD;AAWzC,MAAM,yBAAiF,iCAAsB;AAAA,EACnH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAmE,0BAAe;AAAA,EAC9F,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAIO,SAAS,KAAK,MAAe;AACnC,SAAO,IAAI,iBAAiB,QAAQ,EAAE;AACvC;","names":[]}