setup-python/node_modules/jest-pnp-resolver/index.js
Danny McCormick 39c08a0eaa Initial pass
2019-06-26 21:12:00 -04:00

42 lines
944 B
JavaScript

let pnp;
try {
pnp = require(`pnpapi`);
} catch (error) {
// not in PnP; not a problem
}
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;
}
module.exports = (request, options) => {
const {basedir, defaultResolver, extensions} = options;
if (pnp) {
const resolution = pnp.resolveRequest(request, `${basedir}/`, {extensions});
// 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;
} else {
if (!defaultResolver)
defaultResolver = requireDefaultResolver();
return defaultResolver(request, options);
}
};