Skip to content

Commit 57dbf73

Browse files
fix: update adapter imports and enhance build configuration for module support
1 parent c3905ae commit 57dbf73

File tree

4 files changed

+72
-14
lines changed

4 files changed

+72
-14
lines changed

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ You'll also need to install the specific database driver or ORM you plan to use.
113113
### Basic Usage
114114

115115
```typescript
116-
import { memoryAdapter } from 'unadapter/adapters/memory'
116+
import { memoryAdapter } from 'unadapter/memory'
117117

118118
// Create an in-memory database for testing
119119
const db = {
@@ -125,7 +125,7 @@ const db = {
125125
const adapter = memoryAdapter(db)
126126

127127
// Now you can use the adapter to perform database operations
128-
const user = await adapter.create({
128+
const user = await adapter({}).create({
129129
model: 'user',
130130
data: {
131131
name: 'John Doe',
@@ -177,13 +177,13 @@ await adapter.delete({
177177

178178
```typescript
179179
import { PrismaClient } from '@prisma/client'
180-
import { prismaAdapter } from 'unadapter/adapters/prisma'
180+
import { prismaAdapter } from 'unadapter/prisma'
181181

182182
const prisma = new PrismaClient()
183183
const adapter = prismaAdapter(prisma)
184184

185185
// Now you can use the same adapter interface with Prisma
186-
const user = await adapter.create({
186+
const user = await adapter({}).create({
187187
model: 'user',
188188
data: {
189189
name: 'Jane Doe',
@@ -199,7 +199,7 @@ const user = await adapter.create({
199199

200200
```typescript
201201
import { MongoClient } from 'mongodb'
202-
import { mongodbAdapter } from 'unadapter/adapters/mongodb'
202+
import { mongodbAdapter } from 'unadapter/mongodb'
203203

204204
const client = new MongoClient('mongodb://localhost:27017')
205205
await client.connect()
@@ -208,7 +208,7 @@ const db = client.db('myDatabase')
208208
const adapter = mongodbAdapter(db)
209209

210210
// Now you can use the same adapter interface with MongoDB
211-
const user = await adapter.create({
211+
const user = await adapter({}).create({
212212
model: 'user',
213213
data: {
214214
name: 'Alex Smith',
@@ -224,7 +224,7 @@ const user = await adapter.create({
224224

225225
```typescript
226226
import { drizzle } from 'drizzle-orm/...' // Import appropriate driver
227-
import { drizzleAdapter } from 'unadapter/adapters/drizzle'
227+
import { drizzleAdapter } from 'unadapter/drizzle'
228228

229229
const db = drizzle(/* your DB connection */)
230230
const adapter = drizzleAdapter(db, {
@@ -233,7 +233,7 @@ const adapter = drizzleAdapter(db, {
233233
})
234234

235235
// Now you can use the same adapter interface with Drizzle
236-
const user = await adapter.create({
236+
const user = await adapter({}).create({
237237
model: 'user',
238238
data: {
239239
name: 'Taylor Swift',
@@ -249,7 +249,7 @@ const user = await adapter.create({
249249

250250
```typescript
251251
import { Kysely } from 'kysely'
252-
import { kyselyAdapter } from 'unadapter/adapters/kysely'
252+
import { kyselyAdapter } from 'unadapter/kysely'
253253

254254
const db = new Kysely(/* your DB connection */)
255255
const adapter = kyselyAdapter(db, {
@@ -258,7 +258,7 @@ const adapter = kyselyAdapter(db, {
258258
})
259259

260260
// Now you can use the same adapter interface with Kysely
261-
const user = await adapter.create({
261+
const user = await adapter({}).create({
262262
model: 'user',
263263
data: {
264264
name: 'Chris Evans',
@@ -361,7 +361,7 @@ interface Where {
361361
You can create your own adapters using the `createAdapter` function:
362362

363363
```typescript
364-
import { createAdapter } from 'unadapter/adapters/create'
364+
import { createAdapter } from 'unadapter/create'
365365

366366
const myCustomAdapter = createAdapter({
367367
config: {

build.config.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { glob, readFile, rm, writeFile } from 'node:fs/promises'
2+
import { resolve } from 'pathe'
13
import { defineBuildConfig } from 'unbuild'
24
import packagejson from './package.json'
35

@@ -26,6 +28,26 @@ export default defineBuildConfig({
2628
ignore: ['**/*.test.ts', '**/*.spec.ts', '**/test/**'],
2729
},
2830
cleanDist: true,
31+
ext: 'mjs',
2932
},
3033
],
34+
hooks: {
35+
'build:done': async function (ctx) {
36+
for await (const file of glob(resolve(ctx.options.outDir, '**/*.d.ts'))) {
37+
const dtsContents = (await readFile(file, 'utf8')).replaceAll(
38+
/from ['"]\.\/([^'"]+?)(?:\.ts)?['"];?\s*$/gm,
39+
(_, relativePath) => ` from "./${relativePath}.mjs";`,
40+
)
41+
await writeFile(file.replace(/\.d.ts$/, '.d.mts'), dtsContents)
42+
}
43+
44+
for await (const file of glob(resolve(ctx.options.outDir, '**/*.mjs'))) {
45+
const mjsContents = (await readFile(file, 'utf8')).replaceAll(
46+
/from ['"]\.\/([^'"]+?)(?:\.ts)?['"];?\s*$/gm,
47+
(_, relativePath) => ` from "./${relativePath}.mjs";`,
48+
)
49+
await writeFile(file, mjsContents)
50+
}
51+
},
52+
},
3153
})

package.json

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,45 @@
2929
"types": "./dist/index.d.ts",
3030
"import": "./dist/index.mjs"
3131
},
32-
"./adapters/*": {
33-
"types": "./dist/adapters/*.d.ts",
34-
"import": "./dist/adapters/*.mjs"
32+
"./drizzle": {
33+
"types": "./dist/adapters/drizzle/index.d.ts",
34+
"import": "./dist/adapters/drizzle/index.mjs"
35+
},
36+
"./kysely": {
37+
"types": "./dist/adapters/kysely/index.d.ts",
38+
"import": "./dist/adapters/kysely/index.mjs"
39+
},
40+
"./memory": {
41+
"types": "./dist/adapters/memory/index.d.ts",
42+
"import": "./dist/adapters/memory/index.mjs"
43+
},
44+
"./mongodb": {
45+
"types": "./dist/adapters/mongodb/index.d.ts",
46+
"import": "./dist/adapters/mongodb/index.mjs"
47+
},
48+
"./prisma": {
49+
"types": "./dist/adapters/prisma/index.d.ts",
50+
"import": "./dist/adapters/prisma/index.mjs"
51+
},
52+
"./create": {
53+
"types": "./dist/adapters/create/index.d.ts",
54+
"import": "./dist/adapters/create/index.mjs"
3555
},
3656
"./types": {
3757
"types": "./dist/types/index.d.ts",
3858
"import": "./dist/types/index.mjs"
59+
},
60+
"./db": {
61+
"types": "./dist/db/index.d.ts",
62+
"import": "./dist/db/index.mjs"
63+
},
64+
"./error": {
65+
"types": "./dist/error/index.d.ts",
66+
"import": "./dist/error/index.mjs"
67+
},
68+
"./utils": {
69+
"types": "./dist/utils/index.d.ts",
70+
"import": "./dist/utils/index.mjs"
3971
}
4072
},
4173
"module": "dist/index.mjs",
@@ -66,6 +98,7 @@
6698
},
6799
"dependencies": {
68100
"defu": "^6.1.4",
101+
"pathe": "^2.0.3",
69102
"zod": "^3.24.2"
70103
},
71104
"devDependencies": {

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)