UNPKG

@vendure/cli

Version:

A modern, headless ecommerce framework

72 lines 2.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MONOREPO_PACKAGE_DIRS = void 0; exports.detectMonorepoStructure = detectMonorepoStructure; exports.findPackageJsonWithDependency = findPackageJsonWithDependency; exports.findTsConfigInDir = findTsConfigInDir; const fs_extra_1 = __importDefault(require("fs-extra")); const node_path_1 = __importDefault(require("node:path")); exports.MONOREPO_PACKAGE_DIRS = ['packages', 'apps', 'libs', 'services', 'modules']; function detectMonorepoStructure(dirPath) { const normalizedPath = node_path_1.default.normalize(dirPath); for (const dir of exports.MONOREPO_PACKAGE_DIRS) { const pattern = node_path_1.default.sep + dir + node_path_1.default.sep; if (normalizedPath.includes(pattern)) { const parts = normalizedPath.split(pattern); return { isMonorepo: true, root: parts[0], packageDir: dir, }; } } return { isMonorepo: false }; } function findPackageJsonWithDependency(rootDir, dependencyName) { const rootPackageJsonPath = node_path_1.default.join(rootDir, 'package.json'); if (hasNamedDependency(rootPackageJsonPath, dependencyName)) { return rootPackageJsonPath; } for (const dir of exports.MONOREPO_PACKAGE_DIRS) { const monorepoDir = node_path_1.default.join(rootDir, dir); if (fs_extra_1.default.existsSync(monorepoDir)) { for (const subDir of fs_extra_1.default.readdirSync(monorepoDir)) { const packageJsonPath = node_path_1.default.join(monorepoDir, subDir, 'package.json'); if (hasNamedDependency(packageJsonPath, dependencyName)) { return packageJsonPath; } } } } return null; } function hasNamedDependency(packageJsonPath, dependencyName) { var _a; if (!fs_extra_1.default.existsSync(packageJsonPath)) { return false; } try { const packageJson = fs_extra_1.default.readJsonSync(packageJsonPath); return !!((_a = packageJson.dependencies) === null || _a === void 0 ? void 0 : _a[dependencyName]); } catch (_b) { return false; } } function findTsConfigInDir(dir) { if (!fs_extra_1.default.existsSync(dir)) { return null; } const tsConfigCandidates = fs_extra_1.default.readdirSync(dir).filter(f => /^tsconfig.*\.json$/.test(f)); if (tsConfigCandidates.includes('tsconfig.json')) { return node_path_1.default.join(dir, 'tsconfig.json'); } if (tsConfigCandidates.length > 0) { return node_path_1.default.join(dir, tsConfigCandidates[0]); } return null; } //# sourceMappingURL=monorepo-utils.js.map