Skip to content

Commit 47decbd

Browse files
authored
fix(migrate): seed - await exported function (#7139)
1 parent 2fa7bcc commit 47decbd

File tree

6 files changed

+37
-13
lines changed

6 files changed

+37
-13
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"compilerOptions": {
3+
"lib": ["DOM", "ES2016"]
4+
}
5+
}

src/packages/migrate/src/__tests__/fixtures/seed-sqlite-js-ts-named-export/prisma/seed.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
function seed() {
2-
return 'hello from "seed" named export from seed.js'
1+
async function seed() {
2+
await new Promise((_) => null) // eslint-disable-line @typescript-eslint/no-unused-vars
3+
return 'hello from async "seed" named export from seed.js'
34
}
45

56
if (require.main === module) {

src/packages/migrate/src/__tests__/fixtures/seed-sqlite-js-ts-named-export/prisma/seed.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
declare const require: any
33
declare const module: any
44

5-
function seed() {
6-
return 'hello from "seed" named export from seed.ts'
5+
async function seed() {
6+
await new Promise((_) => null) // eslint-disable-line @typescript-eslint/no-unused-vars
7+
return 'hello from async "seed" named export from seed.ts'
78
}
89

910
if (require.main === module) {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"compilerOptions": {
3+
"lib": ["DOM", "ES2016"]
4+
}
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"compilerOptions": {
3+
"lib": ["DOM", "ES2016"]
4+
}
5+
}

src/packages/migrate/src/utils/seed.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,26 @@ export function detectSeedFiles(schemaPath) {
6969

7070
function getSeedScript(type: 'TS' | 'JS', seedFilepath: string) {
7171
let script = `
72+
console.info('Result:')
73+
7274
const __seed = require('./${seedFilepath}')
7375
const __keys = Object.keys(__seed)
7476
75-
// Execute "seed" named export or default export
76-
if (__keys && __keys.length) {
77-
if (__keys.indexOf('seed') !== -1) {
78-
__seed.seed()
79-
} else if (__keys.indexOf('default') !== -1) {
80-
__seed.default()
77+
async function runSeed() {
78+
// Execute "seed" named export or default export
79+
if (__keys && __keys.length) {
80+
if (__keys.indexOf('seed') !== -1) {
81+
return await __seed.seed()
82+
} else if (__keys.indexOf('default') !== -1) {
83+
return await __seed.default()
84+
}
85+
} else {
86+
return ''
8187
}
82-
} else {
83-
''
84-
}`
88+
}
89+
90+
runSeed()
91+
`
8592

8693
if (type === 'TS') {
8794
script = `

0 commit comments

Comments
 (0)