@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
74 lines (62 loc) • 4.93 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunk7YRW5HNXjs = require('./chunk-7YRW5HNX.js');
var _chunk3GQAWCBQjs = require('./chunk-3GQAWCBQ.js');
// src/utils/plugin-helpers.ts
var _devkit = require('@nx/devkit');
var _defu = require('defu'); var _defu2 = _interopRequireDefault(_defu);
var _fs = require('fs');
var _path = require('path');
var getProjectPlatform = /* @__PURE__ */ _chunk3GQAWCBQjs.__name.call(void 0, (project, ignoreTags = false) => {
const tsconfigJson = _devkit.readJsonFile.call(void 0, _path.join.call(void 0, project.root, "tsconfig.json"));
if (!tsconfigJson) {
throw new Error(`No tsconfig.json found in project root: ${project.root}`);
}
const packageJson = _devkit.readJsonFile.call(void 0, _path.join.call(void 0, project.root, "package.json"));
if (!packageJson) {
throw new Error(`No package.json found in project root: ${project.root}`);
}
let platformTag = void 0;
if (!ignoreTags) {
platformTag = _chunk7YRW5HNXjs.getProjectTag.call(void 0, project, _chunk7YRW5HNXjs.ProjectTagConstants.Platform.TAG_ID);
}
if (platformTag !== _chunk7YRW5HNXjs.ProjectTagConstants.Platform.NEUTRAL) {
const types = Array.isArray(_optionalChain([tsconfigJson, 'access', _ => _.compilerOptions, 'optionalAccess', _2 => _2.types])) ? tsconfigJson.compilerOptions.types : [];
if (platformTag === _chunk7YRW5HNXjs.ProjectTagConstants.Platform.WORKER || types.some((type) => type.toLowerCase() === "@cloudflare/workers-types") || _optionalChain([packageJson, 'access', _3 => _3.devDependencies, 'optionalAccess', _4 => _4["@cloudflare/workers-types"]]) || _optionalChain([packageJson, 'access', _5 => _5.devDependencies, 'optionalAccess', _6 => _6["wrangler"]])) {
return "worker";
}
if (platformTag === _chunk7YRW5HNXjs.ProjectTagConstants.Platform.NODE || _optionalChain([types, 'optionalAccess', _7 => _7.some, 'call', _8 => _8((type) => type.toLowerCase() === "node")]) || _optionalChain([packageJson, 'access', _9 => _9.devDependencies, 'optionalAccess', _10 => _10["@types/node"]])) {
return "node";
}
if (platformTag === _chunk7YRW5HNXjs.ProjectTagConstants.Platform.BROWSER || _optionalChain([types, 'optionalAccess', _11 => _11.some, 'call', _12 => _12((type) => type.toLowerCase() === "dom")]) || packageJson.dependencies && Object.keys(packageJson.dependencies).some((dependency) => dependency.includes("react")) || packageJson.devDependencies && Object.keys(packageJson.devDependencies).some((devDependency) => devDependency.includes("react"))) {
return "browser";
}
}
return "neutral";
}, "getProjectPlatform");
var getProjectConfigFromProjectJsonPath = /* @__PURE__ */ _chunk3GQAWCBQjs.__name.call(void 0, (projectJsonPath, packageJson) => {
return getProjectConfigFromProjectRoot(_path.dirname.call(void 0, projectJsonPath), packageJson);
}, "getProjectConfigFromProjectJsonPath");
var getProjectConfigFromProjectRoot = /* @__PURE__ */ _chunk3GQAWCBQjs.__name.call(void 0, (projectRoot, packageJson) => {
const { nx, name } = packageJson;
const projectJson = _devkit.readJsonFile.call(void 0, _path.join.call(void 0, projectRoot, "project.json"));
return _defu2.default.call(void 0, _nullishCoalesce(nx, () => ( {})), projectJson, {
targets: {},
tags: [],
name,
root: projectRoot
});
}, "getProjectConfigFromProjectRoot");
var getProjectRoot = /* @__PURE__ */ _chunk3GQAWCBQjs.__name.call(void 0, (configPath, workspaceRoot) => {
try {
const root = _path.dirname.call(void 0, configPath);
const projectRoot = _path.join.call(void 0, workspaceRoot, root);
if (!_fs.existsSync.call(void 0, _path.join.call(void 0, projectRoot, "package.json")) && !_fs.existsSync.call(void 0, _path.join.call(void 0, projectRoot, "project.json"))) {
return null;
}
return projectRoot;
} catch (error_) {
console.error(error_);
return null;
}
}, "getProjectRoot");
exports.getProjectPlatform = getProjectPlatform; exports.getProjectConfigFromProjectJsonPath = getProjectConfigFromProjectJsonPath; exports.getProjectConfigFromProjectRoot = getProjectConfigFromProjectRoot; exports.getProjectRoot = getProjectRoot;