| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { entityKind } from "../../entity.js";
- import { getColumnNameAndConfig } from "../../utils.js";
- import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
- class SQLiteCustomColumnBuilder extends SQLiteColumnBuilder {
- static [entityKind] = "SQLiteCustomColumnBuilder";
- constructor(name, fieldConfig, customTypeParams) {
- super(name, "custom", "SQLiteCustomColumn");
- this.config.fieldConfig = fieldConfig;
- this.config.customTypeParams = customTypeParams;
- }
- /** @internal */
- build(table) {
- return new SQLiteCustomColumn(
- table,
- this.config
- );
- }
- }
- class SQLiteCustomColumn extends SQLiteColumn {
- static [entityKind] = "SQLiteCustomColumn";
- sqlName;
- mapTo;
- mapFrom;
- constructor(table, config) {
- super(table, config);
- this.sqlName = config.customTypeParams.dataType(config.fieldConfig);
- this.mapTo = config.customTypeParams.toDriver;
- this.mapFrom = config.customTypeParams.fromDriver;
- }
- getSQLType() {
- return this.sqlName;
- }
- mapFromDriverValue(value) {
- return typeof this.mapFrom === "function" ? this.mapFrom(value) : value;
- }
- mapToDriverValue(value) {
- return typeof this.mapTo === "function" ? this.mapTo(value) : value;
- }
- }
- function customType(customTypeParams) {
- return (a, b) => {
- const { name, config } = getColumnNameAndConfig(a, b);
- return new SQLiteCustomColumnBuilder(
- name,
- config,
- customTypeParams
- );
- };
- }
- export {
- SQLiteCustomColumn,
- SQLiteCustomColumnBuilder,
- customType
- };
- //# sourceMappingURL=custom.js.map
|