@farming-labs/orm-drizzle 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -127,6 +127,7 @@ function createDrizzleDriver(config) {
127
127
  client: config.db ?? config.client ?? runtimeClient,
128
128
  dialect: config.dialect,
129
129
  capabilities: {
130
+ numericIds: "generated",
130
131
  supportsJSON: true,
131
132
  supportsDates: true,
132
133
  supportsBooleans: true,
@@ -135,11 +136,29 @@ function createDrizzleDriver(config) {
135
136
  supportsTransactionalDDL: config.dialect !== "mysql",
136
137
  nativeRelationLoading: "partial",
137
138
  textComparison: "database-default",
139
+ textMatching: {
140
+ equality: "database-default",
141
+ contains: "database-default",
142
+ ordering: "database-default"
143
+ },
138
144
  upsert: "native",
139
145
  returning: {
140
146
  create: true,
141
147
  update: true,
142
148
  delete: false
149
+ },
150
+ returningMode: {
151
+ create: "record",
152
+ update: "record",
153
+ delete: "none"
154
+ },
155
+ nativeRelations: {
156
+ singularChains: true,
157
+ hasMany: true,
158
+ manyToMany: true,
159
+ filtered: false,
160
+ ordered: false,
161
+ paginated: false
143
162
  }
144
163
  }
145
164
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n createDriverHandle,\n type OrmDriver,\n type OrmDriverHandle,\n type SchemaDefinition,\n} from \"@farming-labs/orm\";\nimport {\n createMysqlDriver,\n createPgClientDriver,\n createPgPoolDriver,\n createSqliteDriver,\n type MysqlConnectionLike,\n type MysqlPoolLike,\n type PgClientLike,\n type PgPoolLike,\n type SqliteDatabaseLike,\n} from \"@farming-labs/orm-sql\";\n\nexport type DrizzleDialect = \"sqlite\" | \"mysql\" | \"postgres\";\n\nexport type DrizzleDatabaseLike = object & {\n $client?: unknown;\n};\n\nexport type DrizzleDriverConfig<TSchema extends SchemaDefinition<any>> = {\n db?: DrizzleDatabaseLike;\n client?: unknown;\n dialect: DrizzleDialect;\n};\n\nexport type DrizzleDriverHandle<TClient = unknown> = OrmDriverHandle<\n \"drizzle\",\n TClient,\n DrizzleDialect\n>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\";\n}\n\nfunction hasFunction<TName extends string>(\n value: unknown,\n name: TName,\n): value is Record<TName, (...args: any[]) => unknown> {\n return isRecord(value) && typeof value[name] === \"function\";\n}\n\nfunction resolveRuntimeClient(config: DrizzleDriverConfig<any>) {\n const client = config.client ?? config.db?.$client;\n\n if (!client) {\n throw new Error(\n 'Drizzle runtime requires a Drizzle database with a \"$client\" property or an explicit \"client\" option.',\n );\n }\n\n return client;\n}\n\nfunction wrapDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n driver: OrmDriver<TSchema, any>,\n handle: DrizzleDriverHandle<TClient>,\n): OrmDriver<TSchema, DrizzleDriverHandle<TClient>> {\n return {\n handle,\n findMany(schema, model, args) {\n return driver.findMany(schema, model, args);\n },\n findFirst(schema, model, args) {\n return driver.findFirst(schema, model, args);\n },\n findUnique(schema, model, args) {\n return driver.findUnique(schema, model, args);\n },\n count(schema, model, args) {\n return driver.count(schema, model, args);\n },\n create(schema, model, args) {\n return driver.create(schema, model, args);\n },\n createMany(schema, model, args) {\n return driver.createMany(schema, model, args);\n },\n update(schema, model, args) {\n return driver.update(schema, model, args);\n },\n updateMany(schema, model, args) {\n return driver.updateMany(schema, model, args);\n },\n upsert(schema, model, args) {\n return driver.upsert(schema, model, args);\n },\n delete(schema, model, args) {\n return driver.delete(schema, model, args);\n },\n deleteMany(schema, model, args) {\n return driver.deleteMany(schema, model, args);\n },\n transaction(schema, run) {\n return driver.transaction(schema, async (txDriver) =>\n run(wrapDrizzleDriver(txDriver, handle)),\n );\n },\n };\n}\n\nfunction createPostgresDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"connect\") && hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgPoolDriver<TSchema>(runtimeClient as PgPoolLike), handle);\n }\n\n if (hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgClientDriver<TSchema>(runtimeClient as PgClientLike), handle);\n }\n\n throw new Error(\n \"Drizzle postgres runtime expects a node-postgres Pool or Client under db.$client.\",\n );\n}\n\nfunction createMysqlDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"getConnection\") && hasFunction(runtimeClient, \"execute\")) {\n return wrapDrizzleDriver(createMysqlDriver<TSchema>(runtimeClient as MysqlPoolLike), handle);\n }\n\n if (\n hasFunction(runtimeClient, \"execute\") &&\n hasFunction(runtimeClient, \"beginTransaction\") &&\n hasFunction(runtimeClient, \"commit\") &&\n hasFunction(runtimeClient, \"rollback\")\n ) {\n return wrapDrizzleDriver(\n createMysqlDriver<TSchema>(runtimeClient as MysqlConnectionLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle mysql runtime expects a mysql2 Pool or transactional Connection under db.$client.\",\n );\n}\n\nfunction createSqliteDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"prepare\") && hasFunction(runtimeClient, \"exec\")) {\n return wrapDrizzleDriver(\n createSqliteDriver<TSchema>(runtimeClient as SqliteDatabaseLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle sqlite runtime expects a sqlite-compatible database with prepare() and exec() under db.$client.\",\n );\n}\n\nexport function createDrizzleDriver<TSchema extends SchemaDefinition<any>>(\n config: DrizzleDriverConfig<TSchema>,\n): OrmDriver<TSchema, DrizzleDriverHandle<DrizzleDatabaseLike | unknown>> {\n const runtimeClient = resolveRuntimeClient(config);\n const handle: DrizzleDriverHandle<DrizzleDatabaseLike | unknown> = createDriverHandle({\n kind: \"drizzle\",\n client: config.db ?? config.client ?? runtimeClient,\n dialect: config.dialect,\n capabilities: {\n supportsJSON: true,\n supportsDates: true,\n supportsBooleans: true,\n supportsTransactions: true,\n supportsSchemaNamespaces: config.dialect === \"postgres\",\n supportsTransactionalDDL: config.dialect !== \"mysql\",\n nativeRelationLoading: \"partial\",\n textComparison: \"database-default\",\n upsert: \"native\",\n returning: {\n create: true,\n update: true,\n delete: false,\n },\n },\n });\n\n switch (config.dialect) {\n case \"postgres\":\n return createPostgresDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"mysql\":\n return createMysqlDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"sqlite\":\n return createSqliteDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n createDriverHandle,\n type OrmDriver,\n type OrmDriverHandle,\n type SchemaDefinition,\n} from \"@farming-labs/orm\";\nimport {\n createMysqlDriver,\n createPgClientDriver,\n createPgPoolDriver,\n createSqliteDriver,\n type MysqlConnectionLike,\n type MysqlPoolLike,\n type PgClientLike,\n type PgPoolLike,\n type SqliteDatabaseLike,\n} from \"@farming-labs/orm-sql\";\n\nexport type DrizzleDialect = \"sqlite\" | \"mysql\" | \"postgres\";\n\nexport type DrizzleDatabaseLike = object & {\n $client?: unknown;\n};\n\nexport type DrizzleDriverConfig<TSchema extends SchemaDefinition<any>> = {\n db?: DrizzleDatabaseLike;\n client?: unknown;\n dialect: DrizzleDialect;\n};\n\nexport type DrizzleDriverHandle<TClient = unknown> = OrmDriverHandle<\n \"drizzle\",\n TClient,\n DrizzleDialect\n>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\";\n}\n\nfunction hasFunction<TName extends string>(\n value: unknown,\n name: TName,\n): value is Record<TName, (...args: any[]) => unknown> {\n return isRecord(value) && typeof value[name] === \"function\";\n}\n\nfunction resolveRuntimeClient(config: DrizzleDriverConfig<any>) {\n const client = config.client ?? config.db?.$client;\n\n if (!client) {\n throw new Error(\n 'Drizzle runtime requires a Drizzle database with a \"$client\" property or an explicit \"client\" option.',\n );\n }\n\n return client;\n}\n\nfunction wrapDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n driver: OrmDriver<TSchema, any>,\n handle: DrizzleDriverHandle<TClient>,\n): OrmDriver<TSchema, DrizzleDriverHandle<TClient>> {\n return {\n handle,\n findMany(schema, model, args) {\n return driver.findMany(schema, model, args);\n },\n findFirst(schema, model, args) {\n return driver.findFirst(schema, model, args);\n },\n findUnique(schema, model, args) {\n return driver.findUnique(schema, model, args);\n },\n count(schema, model, args) {\n return driver.count(schema, model, args);\n },\n create(schema, model, args) {\n return driver.create(schema, model, args);\n },\n createMany(schema, model, args) {\n return driver.createMany(schema, model, args);\n },\n update(schema, model, args) {\n return driver.update(schema, model, args);\n },\n updateMany(schema, model, args) {\n return driver.updateMany(schema, model, args);\n },\n upsert(schema, model, args) {\n return driver.upsert(schema, model, args);\n },\n delete(schema, model, args) {\n return driver.delete(schema, model, args);\n },\n deleteMany(schema, model, args) {\n return driver.deleteMany(schema, model, args);\n },\n transaction(schema, run) {\n return driver.transaction(schema, async (txDriver) =>\n run(wrapDrizzleDriver(txDriver, handle)),\n );\n },\n };\n}\n\nfunction createPostgresDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"connect\") && hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgPoolDriver<TSchema>(runtimeClient as PgPoolLike), handle);\n }\n\n if (hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgClientDriver<TSchema>(runtimeClient as PgClientLike), handle);\n }\n\n throw new Error(\n \"Drizzle postgres runtime expects a node-postgres Pool or Client under db.$client.\",\n );\n}\n\nfunction createMysqlDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"getConnection\") && hasFunction(runtimeClient, \"execute\")) {\n return wrapDrizzleDriver(createMysqlDriver<TSchema>(runtimeClient as MysqlPoolLike), handle);\n }\n\n if (\n hasFunction(runtimeClient, \"execute\") &&\n hasFunction(runtimeClient, \"beginTransaction\") &&\n hasFunction(runtimeClient, \"commit\") &&\n hasFunction(runtimeClient, \"rollback\")\n ) {\n return wrapDrizzleDriver(\n createMysqlDriver<TSchema>(runtimeClient as MysqlConnectionLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle mysql runtime expects a mysql2 Pool or transactional Connection under db.$client.\",\n );\n}\n\nfunction createSqliteDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"prepare\") && hasFunction(runtimeClient, \"exec\")) {\n return wrapDrizzleDriver(\n createSqliteDriver<TSchema>(runtimeClient as SqliteDatabaseLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle sqlite runtime expects a sqlite-compatible database with prepare() and exec() under db.$client.\",\n );\n}\n\nexport function createDrizzleDriver<TSchema extends SchemaDefinition<any>>(\n config: DrizzleDriverConfig<TSchema>,\n): OrmDriver<TSchema, DrizzleDriverHandle<DrizzleDatabaseLike | unknown>> {\n const runtimeClient = resolveRuntimeClient(config);\n const handle: DrizzleDriverHandle<DrizzleDatabaseLike | unknown> = createDriverHandle({\n kind: \"drizzle\",\n client: config.db ?? config.client ?? runtimeClient,\n dialect: config.dialect,\n capabilities: {\n numericIds: \"generated\",\n supportsJSON: true,\n supportsDates: true,\n supportsBooleans: true,\n supportsTransactions: true,\n supportsSchemaNamespaces: config.dialect === \"postgres\",\n supportsTransactionalDDL: config.dialect !== \"mysql\",\n nativeRelationLoading: \"partial\",\n textComparison: \"database-default\",\n textMatching: {\n equality: \"database-default\",\n contains: \"database-default\",\n ordering: \"database-default\",\n },\n upsert: \"native\",\n returning: {\n create: true,\n update: true,\n delete: false,\n },\n returningMode: {\n create: \"record\",\n update: \"record\",\n delete: \"none\",\n },\n nativeRelations: {\n singularChains: true,\n hasMany: true,\n manyToMany: true,\n filtered: false,\n ordered: false,\n paginated: false,\n },\n },\n });\n\n switch (config.dialect) {\n case \"postgres\":\n return createPostgresDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"mysql\":\n return createMysqlDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"sqlite\":\n return createSqliteDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -110,6 +110,7 @@ function createDrizzleDriver(config) {
110
110
  client: config.db ?? config.client ?? runtimeClient,
111
111
  dialect: config.dialect,
112
112
  capabilities: {
113
+ numericIds: "generated",
113
114
  supportsJSON: true,
114
115
  supportsDates: true,
115
116
  supportsBooleans: true,
@@ -118,11 +119,29 @@ function createDrizzleDriver(config) {
118
119
  supportsTransactionalDDL: config.dialect !== "mysql",
119
120
  nativeRelationLoading: "partial",
120
121
  textComparison: "database-default",
122
+ textMatching: {
123
+ equality: "database-default",
124
+ contains: "database-default",
125
+ ordering: "database-default"
126
+ },
121
127
  upsert: "native",
122
128
  returning: {
123
129
  create: true,
124
130
  update: true,
125
131
  delete: false
132
+ },
133
+ returningMode: {
134
+ create: "record",
135
+ update: "record",
136
+ delete: "none"
137
+ },
138
+ nativeRelations: {
139
+ singularChains: true,
140
+ hasMany: true,
141
+ manyToMany: true,
142
+ filtered: false,
143
+ ordered: false,
144
+ paginated: false
126
145
  }
127
146
  }
128
147
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n createDriverHandle,\n type OrmDriver,\n type OrmDriverHandle,\n type SchemaDefinition,\n} from \"@farming-labs/orm\";\nimport {\n createMysqlDriver,\n createPgClientDriver,\n createPgPoolDriver,\n createSqliteDriver,\n type MysqlConnectionLike,\n type MysqlPoolLike,\n type PgClientLike,\n type PgPoolLike,\n type SqliteDatabaseLike,\n} from \"@farming-labs/orm-sql\";\n\nexport type DrizzleDialect = \"sqlite\" | \"mysql\" | \"postgres\";\n\nexport type DrizzleDatabaseLike = object & {\n $client?: unknown;\n};\n\nexport type DrizzleDriverConfig<TSchema extends SchemaDefinition<any>> = {\n db?: DrizzleDatabaseLike;\n client?: unknown;\n dialect: DrizzleDialect;\n};\n\nexport type DrizzleDriverHandle<TClient = unknown> = OrmDriverHandle<\n \"drizzle\",\n TClient,\n DrizzleDialect\n>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\";\n}\n\nfunction hasFunction<TName extends string>(\n value: unknown,\n name: TName,\n): value is Record<TName, (...args: any[]) => unknown> {\n return isRecord(value) && typeof value[name] === \"function\";\n}\n\nfunction resolveRuntimeClient(config: DrizzleDriverConfig<any>) {\n const client = config.client ?? config.db?.$client;\n\n if (!client) {\n throw new Error(\n 'Drizzle runtime requires a Drizzle database with a \"$client\" property or an explicit \"client\" option.',\n );\n }\n\n return client;\n}\n\nfunction wrapDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n driver: OrmDriver<TSchema, any>,\n handle: DrizzleDriverHandle<TClient>,\n): OrmDriver<TSchema, DrizzleDriverHandle<TClient>> {\n return {\n handle,\n findMany(schema, model, args) {\n return driver.findMany(schema, model, args);\n },\n findFirst(schema, model, args) {\n return driver.findFirst(schema, model, args);\n },\n findUnique(schema, model, args) {\n return driver.findUnique(schema, model, args);\n },\n count(schema, model, args) {\n return driver.count(schema, model, args);\n },\n create(schema, model, args) {\n return driver.create(schema, model, args);\n },\n createMany(schema, model, args) {\n return driver.createMany(schema, model, args);\n },\n update(schema, model, args) {\n return driver.update(schema, model, args);\n },\n updateMany(schema, model, args) {\n return driver.updateMany(schema, model, args);\n },\n upsert(schema, model, args) {\n return driver.upsert(schema, model, args);\n },\n delete(schema, model, args) {\n return driver.delete(schema, model, args);\n },\n deleteMany(schema, model, args) {\n return driver.deleteMany(schema, model, args);\n },\n transaction(schema, run) {\n return driver.transaction(schema, async (txDriver) =>\n run(wrapDrizzleDriver(txDriver, handle)),\n );\n },\n };\n}\n\nfunction createPostgresDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"connect\") && hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgPoolDriver<TSchema>(runtimeClient as PgPoolLike), handle);\n }\n\n if (hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgClientDriver<TSchema>(runtimeClient as PgClientLike), handle);\n }\n\n throw new Error(\n \"Drizzle postgres runtime expects a node-postgres Pool or Client under db.$client.\",\n );\n}\n\nfunction createMysqlDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"getConnection\") && hasFunction(runtimeClient, \"execute\")) {\n return wrapDrizzleDriver(createMysqlDriver<TSchema>(runtimeClient as MysqlPoolLike), handle);\n }\n\n if (\n hasFunction(runtimeClient, \"execute\") &&\n hasFunction(runtimeClient, \"beginTransaction\") &&\n hasFunction(runtimeClient, \"commit\") &&\n hasFunction(runtimeClient, \"rollback\")\n ) {\n return wrapDrizzleDriver(\n createMysqlDriver<TSchema>(runtimeClient as MysqlConnectionLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle mysql runtime expects a mysql2 Pool or transactional Connection under db.$client.\",\n );\n}\n\nfunction createSqliteDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"prepare\") && hasFunction(runtimeClient, \"exec\")) {\n return wrapDrizzleDriver(\n createSqliteDriver<TSchema>(runtimeClient as SqliteDatabaseLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle sqlite runtime expects a sqlite-compatible database with prepare() and exec() under db.$client.\",\n );\n}\n\nexport function createDrizzleDriver<TSchema extends SchemaDefinition<any>>(\n config: DrizzleDriverConfig<TSchema>,\n): OrmDriver<TSchema, DrizzleDriverHandle<DrizzleDatabaseLike | unknown>> {\n const runtimeClient = resolveRuntimeClient(config);\n const handle: DrizzleDriverHandle<DrizzleDatabaseLike | unknown> = createDriverHandle({\n kind: \"drizzle\",\n client: config.db ?? config.client ?? runtimeClient,\n dialect: config.dialect,\n capabilities: {\n supportsJSON: true,\n supportsDates: true,\n supportsBooleans: true,\n supportsTransactions: true,\n supportsSchemaNamespaces: config.dialect === \"postgres\",\n supportsTransactionalDDL: config.dialect !== \"mysql\",\n nativeRelationLoading: \"partial\",\n textComparison: \"database-default\",\n upsert: \"native\",\n returning: {\n create: true,\n update: true,\n delete: false,\n },\n },\n });\n\n switch (config.dialect) {\n case \"postgres\":\n return createPostgresDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"mysql\":\n return createMysqlDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"sqlite\":\n return createSqliteDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n createDriverHandle,\n type OrmDriver,\n type OrmDriverHandle,\n type SchemaDefinition,\n} from \"@farming-labs/orm\";\nimport {\n createMysqlDriver,\n createPgClientDriver,\n createPgPoolDriver,\n createSqliteDriver,\n type MysqlConnectionLike,\n type MysqlPoolLike,\n type PgClientLike,\n type PgPoolLike,\n type SqliteDatabaseLike,\n} from \"@farming-labs/orm-sql\";\n\nexport type DrizzleDialect = \"sqlite\" | \"mysql\" | \"postgres\";\n\nexport type DrizzleDatabaseLike = object & {\n $client?: unknown;\n};\n\nexport type DrizzleDriverConfig<TSchema extends SchemaDefinition<any>> = {\n db?: DrizzleDatabaseLike;\n client?: unknown;\n dialect: DrizzleDialect;\n};\n\nexport type DrizzleDriverHandle<TClient = unknown> = OrmDriverHandle<\n \"drizzle\",\n TClient,\n DrizzleDialect\n>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\";\n}\n\nfunction hasFunction<TName extends string>(\n value: unknown,\n name: TName,\n): value is Record<TName, (...args: any[]) => unknown> {\n return isRecord(value) && typeof value[name] === \"function\";\n}\n\nfunction resolveRuntimeClient(config: DrizzleDriverConfig<any>) {\n const client = config.client ?? config.db?.$client;\n\n if (!client) {\n throw new Error(\n 'Drizzle runtime requires a Drizzle database with a \"$client\" property or an explicit \"client\" option.',\n );\n }\n\n return client;\n}\n\nfunction wrapDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n driver: OrmDriver<TSchema, any>,\n handle: DrizzleDriverHandle<TClient>,\n): OrmDriver<TSchema, DrizzleDriverHandle<TClient>> {\n return {\n handle,\n findMany(schema, model, args) {\n return driver.findMany(schema, model, args);\n },\n findFirst(schema, model, args) {\n return driver.findFirst(schema, model, args);\n },\n findUnique(schema, model, args) {\n return driver.findUnique(schema, model, args);\n },\n count(schema, model, args) {\n return driver.count(schema, model, args);\n },\n create(schema, model, args) {\n return driver.create(schema, model, args);\n },\n createMany(schema, model, args) {\n return driver.createMany(schema, model, args);\n },\n update(schema, model, args) {\n return driver.update(schema, model, args);\n },\n updateMany(schema, model, args) {\n return driver.updateMany(schema, model, args);\n },\n upsert(schema, model, args) {\n return driver.upsert(schema, model, args);\n },\n delete(schema, model, args) {\n return driver.delete(schema, model, args);\n },\n deleteMany(schema, model, args) {\n return driver.deleteMany(schema, model, args);\n },\n transaction(schema, run) {\n return driver.transaction(schema, async (txDriver) =>\n run(wrapDrizzleDriver(txDriver, handle)),\n );\n },\n };\n}\n\nfunction createPostgresDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"connect\") && hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgPoolDriver<TSchema>(runtimeClient as PgPoolLike), handle);\n }\n\n if (hasFunction(runtimeClient, \"query\")) {\n return wrapDrizzleDriver(createPgClientDriver<TSchema>(runtimeClient as PgClientLike), handle);\n }\n\n throw new Error(\n \"Drizzle postgres runtime expects a node-postgres Pool or Client under db.$client.\",\n );\n}\n\nfunction createMysqlDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"getConnection\") && hasFunction(runtimeClient, \"execute\")) {\n return wrapDrizzleDriver(createMysqlDriver<TSchema>(runtimeClient as MysqlPoolLike), handle);\n }\n\n if (\n hasFunction(runtimeClient, \"execute\") &&\n hasFunction(runtimeClient, \"beginTransaction\") &&\n hasFunction(runtimeClient, \"commit\") &&\n hasFunction(runtimeClient, \"rollback\")\n ) {\n return wrapDrizzleDriver(\n createMysqlDriver<TSchema>(runtimeClient as MysqlConnectionLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle mysql runtime expects a mysql2 Pool or transactional Connection under db.$client.\",\n );\n}\n\nfunction createSqliteDrizzleDriver<TSchema extends SchemaDefinition<any>, TClient>(\n runtimeClient: unknown,\n handle: DrizzleDriverHandle<TClient>,\n) {\n if (hasFunction(runtimeClient, \"prepare\") && hasFunction(runtimeClient, \"exec\")) {\n return wrapDrizzleDriver(\n createSqliteDriver<TSchema>(runtimeClient as SqliteDatabaseLike),\n handle,\n );\n }\n\n throw new Error(\n \"Drizzle sqlite runtime expects a sqlite-compatible database with prepare() and exec() under db.$client.\",\n );\n}\n\nexport function createDrizzleDriver<TSchema extends SchemaDefinition<any>>(\n config: DrizzleDriverConfig<TSchema>,\n): OrmDriver<TSchema, DrizzleDriverHandle<DrizzleDatabaseLike | unknown>> {\n const runtimeClient = resolveRuntimeClient(config);\n const handle: DrizzleDriverHandle<DrizzleDatabaseLike | unknown> = createDriverHandle({\n kind: \"drizzle\",\n client: config.db ?? config.client ?? runtimeClient,\n dialect: config.dialect,\n capabilities: {\n numericIds: \"generated\",\n supportsJSON: true,\n supportsDates: true,\n supportsBooleans: true,\n supportsTransactions: true,\n supportsSchemaNamespaces: config.dialect === \"postgres\",\n supportsTransactionalDDL: config.dialect !== \"mysql\",\n nativeRelationLoading: \"partial\",\n textComparison: \"database-default\",\n textMatching: {\n equality: \"database-default\",\n contains: \"database-default\",\n ordering: \"database-default\",\n },\n upsert: \"native\",\n returning: {\n create: true,\n update: true,\n delete: false,\n },\n returningMode: {\n create: \"record\",\n update: \"record\",\n delete: \"none\",\n },\n nativeRelations: {\n singularChains: true,\n hasMany: true,\n manyToMany: true,\n filtered: false,\n ordered: false,\n paginated: false,\n },\n },\n });\n\n switch (config.dialect) {\n case \"postgres\":\n return createPostgresDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"mysql\":\n return createMysqlDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n case \"sqlite\":\n return createSqliteDrizzleDriver<TSchema, DrizzleDatabaseLike | unknown>(\n runtimeClient,\n handle,\n );\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/orm-drizzle",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -19,8 +19,8 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@farming-labs/orm": "0.0.22",
23
- "@farming-labs/orm-sql": "0.0.22"
22
+ "@farming-labs/orm-sql": "0.0.24",
23
+ "@farming-labs/orm": "0.0.24"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/pg": "^8.15.6",