UNPKG

require-it

Version:

This module extends the default Node.js require with capabilities to require nested modules, independent on where they are nested.

48 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readPackageJSON = exports.getFolder = exports.getNodeModulesOfFolder = exports.isNodeModule = exports.isScopedModule = exports.isFolder = exports.isFile = void 0; const fs_1 = require("fs"); const path_1 = require("path"); const isFile = (file) => { try { return (0, fs_1.statSync)(file).isFile(); } catch (e) { return false; } }; exports.isFile = isFile; const isFolder = (folder) => { try { return (0, fs_1.statSync)(folder).isDirectory(); } catch (e) { return false; } }; exports.isFolder = isFolder; const isScopedModule = (name) => { return (0, exports.isFolder)(name) && /@[^/\\@]+$/.test(name); }; exports.isScopedModule = isScopedModule; const isNodeModule = (name) => { return (0, exports.isFolder)(name) && ((0, exports.isFolder)((0, path_1.join)(name, "node_modules")) || (0, exports.isFile)((0, path_1.join)(name, "package.json"))); }; exports.isNodeModule = isNodeModule; const getNodeModulesOfFolder = (folder) => { try { return (0, fs_1.readdirSync)(folder).filter((subfolder) => { const path = (0, path_1.join)(folder, subfolder); return (0, exports.isNodeModule)(path) || (0, exports.isScopedModule)(path); }); } catch (e) { return []; } }; exports.getNodeModulesOfFolder = getNodeModulesOfFolder; const getFolder = (path) => path.split(/[\/\\]/).pop(); exports.getFolder = getFolder; const readPackageJSON = (folder) => require((0, path_1.join)(folder, "package.json")); exports.readPackageJSON = readPackageJSON; //# sourceMappingURL=utils.js.map