This commit is contained in:
David Kale
2020-09-08 13:25:36 -04:00
parent e4246d2b5b
commit 91fcbb0108
4227 changed files with 416837 additions and 457884 deletions

View File

@@ -13,6 +13,8 @@ yarn add -D jest-pnp-resolver
## Usage
As of `jest@^24.4.0` you don't need to manually add this package anymore. The default resolver will already use PnP.
Simply add the resolver to your configuration. For example, a minimal `jest.config.js` would be as such:
```js

25
node_modules/jest-pnp-resolver/createRequire.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
const nativeModule = require(`module`);
module.exports = (filename) => {
// Added in Node v12.2.0
if (nativeModule.createRequire) {
return nativeModule.createRequire(filename);
}
// Added in Node v10.12.0 and deprecated since Node v12.2.0
if (nativeModule.createRequireFromPath) {
return nativeModule.createRequireFromPath(filename);
}
// Polyfill
return _createRequire(filename);
};
// Polyfill
function _createRequire (filename) {
const mod = new nativeModule.Module(filename, null)
mod.filename = filename
mod.paths = nativeModule.Module._nodeModulePaths(path.dirname(filename))
mod._compile(`module.exports = require;`, filename)
return mod.exports
}

13
node_modules/jest-pnp-resolver/getDefaultResolver.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
let defaultResolver;
module.exports = () => {
if (!defaultResolver) {
try {
defaultResolver = require(`jest-resolve/build/defaultResolver`).default;
} catch (error) {
defaultResolver = require(`jest-resolve/build/default_resolver`).default;
}
}
return defaultResolver;
};

View File

@@ -1,41 +1,49 @@
let pnp;
let globalPnpApi;
try {
pnp = require(`pnpapi`);
} catch (error) {
// not in PnP; not a problem
globalPnpApi = require(`pnpapi`);
} catch {
// Just ignore if we don't have a global PnP instance - perhaps
// we'll eventually find one at runtime due to multi-tree
}
let defaultResolver;
function requireDefaultResolver() {
if (!defaultResolver) {
try {
defaultResolver = require(`jest-resolve/build/defaultResolver`).default;
} catch (error) {
defaultResolver = require(`jest-resolve/build/default_resolver`).default;
}
}
return defaultResolver;
}
const createRequire = require(`./createRequire`);
const getDefaultResolver = require(`./getDefaultResolver`);
module.exports = (request, options) => {
const {basedir, defaultResolver, extensions} = options;
if (pnp) {
const resolution = pnp.resolveRequest(request, `${basedir}/`, {extensions});
if (process.versions.pnp) {
let pnpApi = globalPnpApi;
// When the request is a native module, Jest expects to get the string back unmodified, but pnp returns null instead.
if (resolution === null)
return request;
// While technically it would be more correct to run this code
// everytime (since they file being run *may* belong to a
// different dependency tree than the one owning Jest), in
// practice this doesn't happen anywhere else than on the Jest
// repository itself (in the test env). So in order to preserve
// the performances, we can afford a slight incoherence here.
if (!pnpApi) {
try {
const baseReq = createRequire(`${basedir}/internal.js`);
pnpApi = baseReq(`pnpapi`);
} catch {
// The file isn't part of a PnP dependency tree, so we can
// just use the default Jest resolver.
}
}
return resolution;
} else {
if (!defaultResolver)
defaultResolver = requireDefaultResolver();
if (pnpApi) {
const resolution = pnpApi.resolveRequest(request, `${basedir}/`, {extensions});
return defaultResolver(request, options);
// When the request is a native module, Jest expects to get the string back unmodified, but pnp returns null instead.
if (resolution === null)
return request;
return resolution;
}
}
if (!defaultResolver)
defaultResolver = getDefaultResolver();
return defaultResolver(request, {...options, allowPnp: false});
};

View File

@@ -1,36 +1,32 @@
{
"_args": [
[
"jest-pnp-resolver@1.2.1",
"/Users/pjquirk/Source/GitHub/actions/labeler"
]
],
"_development": true,
"_from": "jest-pnp-resolver@1.2.1",
"_id": "jest-pnp-resolver@1.2.1",
"_from": "jest-pnp-resolver@^1.2.1",
"_id": "jest-pnp-resolver@1.2.2",
"_inBundle": false,
"_integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==",
"_integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
"_location": "/jest-pnp-resolver",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "jest-pnp-resolver@1.2.1",
"raw": "jest-pnp-resolver@^1.2.1",
"name": "jest-pnp-resolver",
"escapedName": "jest-pnp-resolver",
"rawSpec": "1.2.1",
"rawSpec": "^1.2.1",
"saveSpec": null,
"fetchSpec": "1.2.1"
"fetchSpec": "^1.2.1"
},
"_requiredBy": [
"/jest-resolve"
],
"_resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz",
"_spec": "1.2.1",
"_where": "/Users/pjquirk/Source/GitHub/actions/labeler",
"_resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
"_shasum": "b704ac0ae028a89108a4d040b3f919dfddc8e33c",
"_spec": "jest-pnp-resolver@^1.2.1",
"_where": "/Users/dakale/dev/GitHub/actions/labeler/node_modules/jest-resolve",
"bugs": {
"url": "https://github.com/arcanis/jest-pnp-resolver/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "plug'n'play resolver for Webpack",
"engines": {
"node": ">=6"
@@ -56,5 +52,5 @@
"type": "git",
"url": "git+https://github.com/arcanis/jest-pnp-resolver.git"
},
"version": "1.2.1"
"version": "1.2.2"
}