@nxrocks/common
Version:
Common library to share code among the `@nxrocks/*` plugins.
48 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProjectRoot = getProjectRoot;
exports.getProjectFilePath = getProjectFilePath;
exports.hasProjectFile = hasProjectFile;
exports.getProjectFileContent = getProjectFileContent;
exports.getNameAndRoot = getNameAndRoot;
exports.getProjectRootFromFile = getProjectRootFromFile;
exports.isNxCrystalEnabled = isNxCrystalEnabled;
const path_1 = require("path");
const devkit_1 = require("@nx/devkit");
const fs_1 = require("fs");
const semver_1 = require("semver");
function getProjectRoot(project) {
return (0, path_1.resolve)(devkit_1.workspaceRoot, project.root);
}
function getProjectFilePath(project, relativeFile) {
return (0, path_1.join)(getProjectRoot(project), ...relativeFile.split(/[/\\]/));
}
function hasProjectFile(project, relativeFile) {
const filePath = getProjectFilePath(project, relativeFile);
return (0, fs_1.existsSync)(filePath);
}
function getProjectFileContent(project, relativeFile) {
const filePath = getProjectFilePath(project, relativeFile);
return (0, fs_1.readFileSync)(filePath, 'utf8');
}
function getNameAndRoot(cwd) {
const name = (0, path_1.basename)((0, path_1.resolve)(cwd));
const root = (0, path_1.dirname)(cwd);
return { name, root };
}
function getProjectRootFromFile(filePath) {
const absoluteFilePath = (0, path_1.isAbsolute)(filePath)
? filePath
: (0, path_1.resolve)(devkit_1.workspaceRoot, filePath);
const projectRootFilePath = (0, path_1.relative)(devkit_1.workspaceRoot, absoluteFilePath);
return (0, devkit_1.normalizePath)((0, path_1.dirname)(projectRootFilePath));
}
function isNxCrystalEnabled() {
const nxJson = (0, devkit_1.readJsonFile)(`${devkit_1.workspaceRoot}/nx.json`);
if ((0, semver_1.lt)(devkit_1.NX_VERSION, '18.1.0')) {
return process.env['NX_ADD_PLUGINS'] !== 'false';
}
return (process.env['NX_ADD_PLUGINS'] !== 'false' &&
nxJson.useInferencePlugins !== false);
}
//# sourceMappingURL=utils.js.map