UNPKG

parcel-bundler

Version:

Blazing fast, zero configuration web application bundler

68 lines (50 loc) 1.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); const _require = require('path'), dirname = _require.dirname; const promisify = require('../utils/promisify'); const resolve = promisify(require('resolve')); const installPackage = require('./installPackage'); const cache = new Map(); function localRequire(_x, _x2) { return _localRequire.apply(this, arguments); } function _localRequire() { _localRequire = (0, _asyncToGenerator2.default)(function* (name, path, triedInstall = false) { let _ref = yield localResolve(name, path, triedInstall), _ref2 = (0, _slicedToArray2.default)(_ref, 1), resolved = _ref2[0]; return require(resolved); }); return _localRequire.apply(this, arguments); } function localResolve(_x3, _x4) { return _localResolve.apply(this, arguments); } function _localResolve() { _localResolve = (0, _asyncToGenerator2.default)(function* (name, path, triedInstall = false) { let basedir = dirname(path); let key = basedir + ':' + name; let resolved = cache.get(key); if (!resolved) { try { resolved = yield resolve(name, { basedir }); } catch (e) { if (e.code === 'MODULE_NOT_FOUND' && !triedInstall) { yield installPackage(name, path); return yield localResolve(name, path, true); } throw e; } cache.set(key, resolved); } return resolved; }); return _localResolve.apply(this, arguments); } localRequire.resolve = localResolve; module.exports = localRequire;