UNPKG

@alexaegis/workspace-tools

Version:

Tools for working with javascript workspaces

66 lines (65 loc) 2.6 kB
const require_get_workspace_root_function = require("./get-workspace-root.function-BKR-FeN5.cjs"); let node_path = require("node:path"); let _alexaegis_fs = require("@alexaegis/fs"); let _alexaegis_logging = require("@alexaegis/logging"); //#region src/npm/get-root-package-json.function.options.ts var normalizeGetRootPackageJsonOptions = (options) => { return { ...(0, _alexaegis_fs.normalizeCwdOption)(options), ...(0, _alexaegis_logging.normalizeLoggerOption)(options) }; }; //#endregion //#region src/npm/normalize-package-json-workspaces-field.function.ts var normalizePackageJsonWorkspacesField = (packageJsonWorkspaces) => { if (Array.isArray(packageJsonWorkspaces)) return packageJsonWorkspaces; else if (packageJsonWorkspaces) return [...packageJsonWorkspaces.packages ?? [], ...packageJsonWorkspaces.nohoist ?? []]; else return []; }; //#endregion //#region src/npm/get-root-package-json.function.ts var getRootPackageJson = async (rawOptions) => { const options = normalizeGetRootPackageJsonOptions(rawOptions); const rootWorkspace = require_get_workspace_root_function.getWorkspaceRoot(options); if (!rootWorkspace) { options.logger.error("No package json was found! Cannot collect workspace packages!"); return; } const packageJsonPath = (0, node_path.join)(rootWorkspace, require_get_workspace_root_function.PACKAGE_JSON_NAME); const packageJson = await (0, _alexaegis_fs.readJson)(packageJsonPath).catch(() => void 0); if (!packageJson) { options.logger.error("Failed to read packageJson!", packageJsonPath); return; } let workspaces = normalizePackageJsonWorkspacesField(packageJson.workspaces); const pnpmWorkspace = await (0, _alexaegis_fs.readYaml)((0, node_path.join)(rootWorkspace, require_get_workspace_root_function.PNPM_WORKSPACE_FILE_NAME)); if (pnpmWorkspace?.packages) workspaces = [...workspaces, ...pnpmWorkspace.packages]; return { packageJson, packageKind: "root", workspacePackagePatterns: workspaces, packageJsonPath, packagePath: rootWorkspace, packagePathFromRootPackage: "." }; }; //#endregion Object.defineProperty(exports, "getRootPackageJson", { enumerable: true, get: function() { return getRootPackageJson; } }); Object.defineProperty(exports, "normalizeGetRootPackageJsonOptions", { enumerable: true, get: function() { return normalizeGetRootPackageJsonOptions; } }); Object.defineProperty(exports, "normalizePackageJsonWorkspacesField", { enumerable: true, get: function() { return normalizePackageJsonWorkspacesField; } }); //# sourceMappingURL=get-root-package-json.function-DWdZuWlE.cjs.map