diff --git a/package-lock.json b/package-lock.json index 2070546..a113853 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1282,18 +1282,6 @@ "@babel/plugin-transform-typescript": "^7.12.1" } }, - "@babel/register": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.10.tgz", - "integrity": "sha512-EvX/BvMMJRAA3jZgILWgbsrHwBQvllC5T8B29McyME8DvkdOxk4ujESfrMvME8IHSDvWXrmMXxPvA/lx2gqPLQ==", - "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - } - }, "@babel/runtime": { "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", @@ -3926,7 +3914,8 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "buffer-xor": { "version": "1.0.3", @@ -4347,7 +4336,8 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true }, "compare-func": { "version": "2.0.0", @@ -6029,6 +6019,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -8898,6 +8889,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -13807,7 +13799,8 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, "pirates": { "version": "4.0.1", @@ -13876,6 +13869,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, "requires": { "find-up": "^3.0.0" } @@ -15567,7 +15561,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-resolve": { "version": "0.5.3", @@ -15586,6 +15581,7 @@ "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" diff --git a/package.json b/package.json index 938fe1a..56b00d3 100644 --- a/package.json +++ b/package.json @@ -40,11 +40,11 @@ "dependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", - "@babel/register": "^7.12.10", "babel-plugin-module-resolver": "^4.1.0", "loader-utils": "^2.0.0", "lodash": "^4.17.20", "pirates": "^4.0.1", + "regenerator-runtime": "^0.13.7", "require-from-string": "^2.0.2", "tsconfig-paths": "^3.9.0" }, diff --git a/src/loader.ts b/src/loader.ts index a4650df..c672f8d 100644 --- a/src/loader.ts +++ b/src/loader.ts @@ -44,7 +44,11 @@ export async function _prevalLoader( extensions, resolvePath: (sourcePath: string, currentFile: string, opts: any) => { if (matchPath) { - return matchPath(sourcePath, require, fs.existsSync, extensions); + try { + return matchPath(sourcePath, require, fs.existsSync, extensions); + } catch { + return defaultResolvePath(sourcePath, currentFile, opts); + } } return defaultResolvePath(sourcePath, currentFile, opts); @@ -53,14 +57,20 @@ export async function _prevalLoader( ] as const); const hook = (code: string, filename?: string) => { - const result = transform(code, { - filename: filename || 'preval-file.ts', - presets: ['next/babel'], - plugins: [ - // conditionally add - ...(moduleResolver ? [moduleResolver] : []), - ], - }); + const result = transform( + `require('regenerator-runtime/runtime');\n${code}`, + { + filename: filename || 'preval-file.ts', + presets: [ + ['@babel/preset-env', { targets: 'node 10' }], + 'next/babel', + ], + plugins: [ + // conditionally add + ...(moduleResolver ? [moduleResolver] : []), + ], + } + ); if (!result?.code) { throw new PrevalError(