@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 +19 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
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
|
});
|
package/dist/index.cjs.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/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.
|
|
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.
|
|
23
|
-
"@farming-labs/orm
|
|
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",
|