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
JavaScript
;
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