From 5519f589c55644cf57b77ffc0397075e40a5746d Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 27 Aug 2021 11:15:55 +0200 Subject: [PATCH] fix detection of import() --- packages/jest-runtime/src/index.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 26b8d19beb16..e11884a9c21e 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -5,6 +5,7 @@ * LICENSE file in the root directory of this source tree. */ +import {execSync} from 'child_process'; import * as nativeModule from 'module'; import * as path from 'path'; import {URL, fileURLToPath, pathToFileURL} from 'url'; @@ -159,16 +160,12 @@ const supportsNodeColonModulePrefixInRequire = (() => { } })(); -const supportsNodeColonModulePrefixInImport = (async () => { - try { - // @ts-expect-error - // eslint-disable-next-line import/no-unresolved - await import('node:fs'); +const supportsNodeColonModulePrefixInImport = (() => { + const res = execSync( + `node --eval 'import("node:fs").then(() => console.log(true), () => console.log(false));'`, + ); - return true; - } catch { - return false; - } + return res.toString().trim() === 'true'; })(); export default class Runtime { @@ -1378,7 +1375,7 @@ export default class Runtime { private async _importCoreModule(moduleName: string, context: VMContext) { const required = this._requireCoreModule( moduleName, - await supportsNodeColonModulePrefixInImport, + supportsNodeColonModulePrefixInImport, ); const module = new SyntheticModule(