fix: resolve provider path before requiring it (#9601)
This commit is contained in:
1 parent
3388764af4
commit
20428dac71
2 files changed
+31
-15
No files matched your search
@@ -67,7 +67,9 @@ function getCustomModuleResolution(
|
|||||||
const originalPath = normalizeImportPathWithSource(
|
const originalPath = normalizeImportPathWithSource(
|
||||||
(isString(moduleConfig) ? moduleConfig : moduleConfig.resolve) as string
|
(isString(moduleConfig) ? moduleConfig : moduleConfig.resolve) as string
|
||||||
)
|
)
|
||||||
const resolutionPath = require.resolve(originalPath)
|
const resolutionPath = require.resolve(originalPath, {
|
||||||
|
paths: [process.cwd()],
|
||||||
|
})
|
||||||
|
|
||||||
const conf = isObject(moduleConfig)
|
const conf = isObject(moduleConfig)
|
||||||
? moduleConfig
|
? moduleConfig
|
||||||
@@ -142,7 +144,9 @@ function getInternalModuleResolution(
|
|||||||
const originalPath = normalizeImportPathWithSource(
|
const originalPath = normalizeImportPathWithSource(
|
||||||
(isString(moduleConfig) ? moduleConfig : moduleConfig.resolve) as string
|
(isString(moduleConfig) ? moduleConfig : moduleConfig.resolve) as string
|
||||||
)
|
)
|
||||||
resolutionPath = require.resolve(originalPath)
|
resolutionPath = require.resolve(originalPath, {
|
||||||
|
paths: [process.cwd()],
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const moduleDeclaration = isObj ? moduleConfig : {}
|
const moduleDeclaration = isObj ? moduleConfig : {}
|
||||||
|
|||||||
@@ -143,7 +143,11 @@ async function loadInternalProvider(
|
|||||||
...resolution.definition,
|
...resolution.definition,
|
||||||
key: provider.id,
|
key: provider.id,
|
||||||
},
|
},
|
||||||
resolutionPath: isString(provider.resolve) ? provider.resolve : false,
|
resolutionPath: isString(provider.resolve)
|
||||||
|
? require.resolve(provider.resolve, {
|
||||||
|
paths: [process.cwd()],
|
||||||
|
})
|
||||||
|
: false,
|
||||||
},
|
},
|
||||||
logger,
|
logger,
|
||||||
migrationOnly,
|
migrationOnly,
|
||||||
@@ -368,9 +372,17 @@ export async function loadModuleMigrations(
|
|||||||
revertMigration?: MigrationFunction
|
revertMigration?: MigrationFunction
|
||||||
generateMigration?: MigrationFunction
|
generateMigration?: MigrationFunction
|
||||||
}> {
|
}> {
|
||||||
|
const runMigrationsFn: ((...args) => Promise<any>)[] = []
|
||||||
|
const revertMigrationFn: ((...args) => Promise<any>)[] = []
|
||||||
|
const generateMigrationFn: ((...args) => Promise<any>)[] = []
|
||||||
|
|
||||||
|
try {
|
||||||
const mainLoadedModule = await resolveModuleExports({
|
const mainLoadedModule = await resolveModuleExports({
|
||||||
resolution: { ...resolution, moduleExports },
|
resolution: { ...resolution, moduleExports },
|
||||||
})
|
})
|
||||||
|
if ("error" in mainLoadedModule) {
|
||||||
|
throw mainLoadedModule.error
|
||||||
|
}
|
||||||
|
|
||||||
const loadedServices = [mainLoadedModule] as (
|
const loadedServices = [mainLoadedModule] as (
|
||||||
| ResolvedModule
|
| ResolvedModule
|
||||||
@@ -396,22 +408,20 @@ export async function loadModuleMigrations(
|
|||||||
...resolution.definition,
|
...resolution.definition,
|
||||||
key: provider.id,
|
key: provider.id,
|
||||||
},
|
},
|
||||||
resolutionPath: isString(provider.resolve) ? provider.resolve : false,
|
resolutionPath: isString(provider.resolve)
|
||||||
|
? provider.resolve
|
||||||
|
: false,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if ("error" in loadedProvider) {
|
||||||
|
throw loadedProvider.error
|
||||||
|
}
|
||||||
|
|
||||||
loadedServices.push(loadedProvider as ResolvedModuleProvider)
|
loadedServices.push(loadedProvider as ResolvedModuleProvider)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("error" in mainLoadedModule) {
|
|
||||||
throw mainLoadedModule.error
|
|
||||||
}
|
|
||||||
|
|
||||||
const runMigrationsFn: ((...args) => Promise<any>)[] = []
|
|
||||||
const revertMigrationFn: ((...args) => Promise<any>)[] = []
|
|
||||||
const generateMigrationFn: ((...args) => Promise<any>)[] = []
|
|
||||||
|
|
||||||
try {
|
|
||||||
const migrationScripts: any[] = []
|
const migrationScripts: any[] = []
|
||||||
for (const loadedModule of loadedServices) {
|
for (const loadedModule of loadedServices) {
|
||||||
let runMigrationsCustom = loadedModule.runMigrations
|
let runMigrationsCustom = loadedModule.runMigrations
|
||||||
@@ -476,8 +486,10 @@ export async function loadModuleMigrations(
|
|||||||
revertMigration,
|
revertMigration,
|
||||||
generateMigration,
|
generateMigration,
|
||||||
}
|
}
|
||||||
} catch {
|
} catch (e) {
|
||||||
return {}
|
throw new Error(
|
||||||
|
`Unable to resolve the migration scripts for the module ${resolution.definition.key}\n${e.message}\n${e.stack}`
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user