UNPKG

require-it

Version:

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

49 lines 1.75 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 node_fs_1 = require("node:fs"); const node_path_1 = require("node:path"); const isFile = (file) => { try { return (0, node_fs_1.statSync)(file).isFile(); } catch (_a) { return false; } }; exports.isFile = isFile; const isFolder = (folder) => { try { return (0, node_fs_1.statSync)(folder).isDirectory(); } catch (_a) { 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, node_path_1.join)(name, "node_modules")) || (0, exports.isFile)((0, node_path_1.join)(name, "package.json")))); }; exports.isNodeModule = isNodeModule; const getNodeModulesOfFolder = (folder) => { try { return (0, node_fs_1.readdirSync)(folder).filter((subfolder) => { const path = (0, node_path_1.join)(folder, subfolder); return (0, exports.isNodeModule)(path) || (0, exports.isScopedModule)(path); }); } catch (_a) { return []; } }; exports.getNodeModulesOfFolder = getNodeModulesOfFolder; const getFolder = (path) => path.split(/[\/\\]/).pop(); exports.getFolder = getFolder; const readPackageJSON = (folder) => require((0, node_path_1.join)(folder, "package.json")); exports.readPackageJSON = readPackageJSON; //# sourceMappingURL=utils.js.map