UNPKG

@eristack/entity-id

Version:

UUID v7 entity identifiers — sortable, parseable, Drizzle column helper

40 lines (39 loc) • 1.18 kB
import { generateEntityId } from "../chunk-7V2KY5JP.js"; // src/drizzle/column.ts import { uuid } from "drizzle-orm/pg-core"; import { char as mysqlChar } from "drizzle-orm/mysql-core"; import { text } from "drizzle-orm/sqlite-core"; function pgsqlEntityIdColumn(sqlName) { return uuid(sqlName).$defaultFn(() => generateEntityId()); } function mysqlEntityIdColumn(sqlName) { return mysqlChar(sqlName, { length: 36 }).$defaultFn(() => generateEntityId()); } function sqliteEntityIdColumn(sqlName) { return text(sqlName).$defaultFn(() => generateEntityId()); } function entityIdColumn(dialect, name, options) { const sqlName = options?.sqlName ?? name; switch (dialect) { case "pgsql": return pgsqlEntityIdColumn(sqlName); case "mysql": return mysqlEntityIdColumn(sqlName); case "sqlite": return sqliteEntityIdColumn(sqlName); default: { const _exhaustive = dialect; throw new Error(`Unsupported dialect: ${String(_exhaustive)}`); } } } function entityIdPgColumn(name, options) { return entityIdColumn("pgsql", name, options); } export { entityIdColumn, entityIdPgColumn }; //# sourceMappingURL=index.js.map