{"version":3,"sources":["../src/pg-core/builder.ts","../src/pg-core/index.ts"],"sourcesContent":["import { createId } from '@paralleldrive/cuid2';\nimport {\n  type ColumnBuilderRuntimeConfig,\n  entityKind,\n  type ColumnBaseConfig,\n  type ColumnBuilderBaseConfig,\n  type MakeColumnConfig,\n  type HasDefault,\n} from 'drizzle-orm';\nimport {\n  PgColumn,\n  PgColumnBuilder,\n  type AnyPgTable,\n} from 'drizzle-orm/pg-core';\n\nexport type PgCuid2BuilderInitial<TName extends string> = Omit<\n  PgCuid2Builder<{\n    name: TName;\n    dataType: 'string';\n    columnType: 'PgCuid2';\n    data: string;\n    driverParam: string;\n    enumValues: undefined;\n  }>,\n  'default' | '$default' | '$defaultFn'\n>;\n\nexport class PgCuid2Builder<\n  T extends ColumnBuilderBaseConfig<'string', 'PgCuid2'>\n> extends PgColumnBuilder<T> {\n  static override readonly [entityKind]: string = 'PgCuid2Builder';\n\n  constructor(name: T['name']) {\n    super(name, 'string', 'PgCuid2');\n  }\n\n  build<TTableName extends string>(\n    table: AnyPgTable<{ name: TTableName }>\n  ): PgCuid2<MakeColumnConfig<T, TTableName>> {\n    return new PgCuid2<MakeColumnConfig<T, TTableName>>(\n      table,\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n      this.config as ColumnBuilderRuntimeConfig<any, any>\n    );\n  }\n\n  /***\n   * Creates a random `cuid2` value as the default value for the column.\n   * The function will be called when the row is inserted, and the returned value will be used as the column value.\n   */\n  defaultRandom(): HasDefault<this> {\n    this.config.defaultFn = () => createId();\n    this.config.hasDefault = true;\n    return this as HasDefault<this>;\n  }\n}\n\nexport class PgCuid2<\n  T extends ColumnBaseConfig<'string', 'PgCuid2'>\n> extends PgColumn<T> {\n  static override readonly [entityKind]: string = 'PgCuid2';\n\n  getSQLType(): string {\n    return `varchar(24)`;\n  }\n}\n","import { PgCuid2Builder, type PgCuid2BuilderInitial } from './builder';\n\nexport function cuid2(): PgCuid2BuilderInitial<''>;\nexport function cuid2<TName extends string>(\n  name: TName\n): PgCuid2BuilderInitial<TName>;\nexport function cuid2<TName extends string>(\n  name?: TName\n): PgCuid2BuilderInitial<TName> {\n  return new PgCuid2Builder(name ?? ('' as TName));\n}\n\nexport * from './builder';\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB;AAAA,EAEE;AAAA,OAKK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAcA,IAAM,iBAAN,cAEG,gBAAmB;AAAA,EAC3B,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC3B,UAAM,MAAM,UAAU,SAAS;AAAA,EACjC;AAAA,EAEA,MACE,OAC0C;AAC1C,WAAO,IAAI;AAAA,MACT;AAAA;AAAA,MAEA,KAAK;AAAA,IACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAkC;AAChC,SAAK,OAAO,YAAY,MAAM,SAAS;AACvC,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACT;AACF;AAEO,IAAM,UAAN,cAEG,SAAY;AAAA,EACpB,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACnB,WAAO;AAAA,EACT;AACF;;;AC3DO,SAAS,MACd,MAC8B;AAC9B,SAAO,IAAI,eAAe,QAAS,EAAY;AACjD;","names":[]}