| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- let globalPnpApi;
 
- try {
 
-     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
 
- }
 
- const createRequire = require(`./createRequire`);
 
- const getDefaultResolver = require(`./getDefaultResolver`);
 
- module.exports = (request, options) => {
 
-   const {
 
-     basedir,
 
-     defaultResolver = getDefaultResolver(),
 
-     extensions,
 
-   } = options;
 
-   if (process.versions.pnp) {
 
-     let pnpApi = globalPnpApi;
 
-     // 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.
 
-       }
 
-     }
 
-     if (pnpApi) {
 
-       const resolution = pnpApi.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;
 
-     }
 
-   }
 
-   return defaultResolver(request, {...options, allowPnp: false});
 
- };
 
 
  |