Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/esbuild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Esbuild plugin
Expand All @@ -18,6 +18,6 @@ import { DrizzleORMMigrations } from './index'
* })
* ```
*/
const esbuild = DrizzleORMMigrations.esbuild as typeof DrizzleORMMigrations.esbuild
const esbuild = newPlugin().esbuild
export default esbuild
export { esbuild as 'module.exports' }
24 changes: 14 additions & 10 deletions packages/unplugin-drizzle-orm-migrations/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,19 @@ import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { cwd, env } from 'node:process'

import { loadConfig } from 'c12'
import { subtle } from 'uncrypto'
import { createUnplugin, type UnpluginInstance } from 'unplugin'

const VirtualModuleID = 'virtual:drizzle-migrations.sql'
const ResolvedVirtualModuleId = `\0${VirtualModuleID}`

const VirtualModuleIDPlain = 'drizzle-migrations:sql'
const ResolvedVirtualModuleIDPlain = `\0${VirtualModuleIDPlain}`
export function newPlugin(isRolldownLike = false) {
// https://github.com/rolldown/rolldown/issues/1115
const VirtualModuleID = 'virtual:drizzle-migrations.sql'
const ResolvedVirtualModuleId = !isRolldownLike ? `\0${VirtualModuleID}` : VirtualModuleID

import { loadConfig } from 'c12'
const VirtualModuleIDPlain = 'drizzle-migrations:sql'
const ResolvedVirtualModuleIDPlain = !isRolldownLike ? `\0${VirtualModuleIDPlain}` : VirtualModuleIDPlain

export const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefined, false>
const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefined, false>
= createUnplugin((rawOptions = { root: cwd() }) => {
const options = rawOptions || { root: cwd() }

Expand Down Expand Up @@ -46,7 +47,7 @@ export const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefine
if (!_drizzleConfig.out)
return

const journalJSONContent = (await readFile(join(_drizzleConfig.out, 'meta/_journal.json'))).toString('utf-8')
const journalJSONContent = (await readFile(join(rawOptions.root, _drizzleConfig.out, 'meta/_journal.json'))).toString('utf-8')
const journal = JSON.parse(journalJSONContent) as {
entries: {
idx: number
Expand All @@ -59,7 +60,7 @@ export const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefine

for (let index = 0; index < journal.entries.length; index++) {
const { when, idx, tag } = journal.entries[index]
const migrateSQLFilePath = join(_drizzleConfig.out, `${tag}.sql`)
const migrateSQLFilePath = join(rawOptions.root, _drizzleConfig.out, `${tag}.sql`)
const migrateSQLFileContent = (await readFile(migrateSQLFilePath)).toString('utf-8')

migrateSQLFileContents.push({
Expand All @@ -76,7 +77,7 @@ export const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefine
},
resolveId(source) {
if (source.startsWith(VirtualModuleID) || source.startsWith(VirtualModuleIDPlain))
return `\0${source}`
return !isRolldownLike ? `\0${source}` : source
},
load(id) {
if (!id.startsWith(ResolvedVirtualModuleId) && !id.startsWith(ResolvedVirtualModuleIDPlain))
Expand All @@ -88,3 +89,6 @@ export const DrizzleORMMigrations: UnpluginInstance<{ root?: string } | undefine
},
}
})

return DrizzleORMMigrations
}
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/rolldown.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Rolldown plugin
Expand All @@ -19,6 +19,6 @@ import { DrizzleORMMigrations } from './index'
* }
* ```
*/
const rolldown = DrizzleORMMigrations.rolldown as typeof DrizzleORMMigrations.rolldown
const rolldown = newPlugin(true).rolldown
export default rolldown
export { rolldown as 'module.exports' }
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/rollup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Rollup plugin
Expand All @@ -19,6 +19,6 @@ import { DrizzleORMMigrations } from './index'
* }
* ```
*/
const rollup = DrizzleORMMigrations.rollup as typeof DrizzleORMMigrations.rollup
const rollup = newPlugin().rollup
export default rollup
export { rollup as 'module.exports' }
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/rspack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Rspack plugin
Expand All @@ -17,6 +17,6 @@ import { DrizzleORMMigrations } from './index'
* }
* ```
*/
const rspack = DrizzleORMMigrations.rspack as typeof DrizzleORMMigrations.rspack
const rspack = newPlugin().rspack
export default rspack
export { rspack as 'module.exports' }
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/vite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Vite plugin
Expand All @@ -19,6 +19,6 @@ import { DrizzleORMMigrations } from './index'
* })
* ```
*/
const vite = DrizzleORMMigrations.vite as typeof DrizzleORMMigrations.vite
const vite = newPlugin().vite
export default vite
export { vite as 'module.exports' }
4 changes: 2 additions & 2 deletions packages/unplugin-drizzle-orm-migrations/src/webpack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @module
*/

import { DrizzleORMMigrations } from './index'
import { newPlugin } from './index'

/**
* Webpack plugin
Expand All @@ -17,6 +17,6 @@ import { DrizzleORMMigrations } from './index'
* }
* ```
*/
const webpack = DrizzleORMMigrations.webpack as typeof DrizzleORMMigrations.webpack
const webpack = newPlugin().webpack
export default webpack
export { webpack as 'module.exports' }