UNPKG

@archer-edu/dxp-directus-cli

Version:
58 lines 2.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.findNearestPackageJson = exports.resolveSiteId = void 0; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); function resolveSiteId({ optionSiteId, env = process.env, cwd = process.cwd(), } = {}) { const siteId = normalizeString(optionSiteId) || getPackageEnvSiteId(env) || getPackageJsonSiteId(cwd); if (!siteId) { throw new Error("A Directus site id is required. Pass --site-id, run through a package script with npm_package_siteId, or add siteId to package.json."); } return siteId; } exports.resolveSiteId = resolveSiteId; function findNearestPackageJson(cwd = process.cwd()) { let current = path_1.default.resolve(cwd); while (true) { const packagePath = path_1.default.join(current, "package.json"); if (fs_1.default.existsSync(packagePath)) return packagePath; const parent = path_1.default.dirname(current); if (parent === current) return undefined; current = parent; } } exports.findNearestPackageJson = findNearestPackageJson; function getPackageEnvSiteId(env) { return normalizeString(env.npm_package_siteId) || normalizeString(env.npm_package_siteid) || normalizeString(env.npm_package_site_id); } function getPackageJsonSiteId(cwd) { const packagePath = findNearestPackageJson(cwd); if (!packagePath) return undefined; const packageJson = JSON.parse(fs_1.default.readFileSync(packagePath, "utf8")); if (!isRecord(packageJson)) return undefined; const directSiteId = normalizeString(packageJson.siteId); if (directSiteId) return directSiteId; const directus = packageJson.directus; if (!isRecord(directus)) return undefined; return normalizeString(directus.siteId) || normalizeString(directus.site_id); } function normalizeString(value) { return typeof value === "string" && value.trim() ? value.trim() : undefined; } function isRecord(value) { return value != null && typeof value === "object" && !Array.isArray(value); } //# sourceMappingURL=package-config.js.map