UNPKG

@alexaegis/workspace-tools

Version:

Tools for working with javascript workspaces

49 lines (48 loc) 2.11 kB
import { a as PACKAGE_JSON_NAME, o as PNPM_WORKSPACE_FILE_NAME, t as getWorkspaceRoot } from "./get-workspace-root.function-DnORClbN.js"; import { join } from "node:path"; import { normalizeCwdOption, readJson, readYaml } from "@alexaegis/fs"; import { normalizeLoggerOption } from "@alexaegis/logging"; //#region src/npm/get-root-package-json.function.options.ts var normalizeGetRootPackageJsonOptions = (options) => { return { ...normalizeCwdOption(options), ...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 = getWorkspaceRoot(options); if (!rootWorkspace) { options.logger.error("No package json was found! Cannot collect workspace packages!"); return; } const packageJsonPath = join(rootWorkspace, PACKAGE_JSON_NAME); const packageJson = await readJson(packageJsonPath).catch(() => void 0); if (!packageJson) { options.logger.error("Failed to read packageJson!", packageJsonPath); return; } let workspaces = normalizePackageJsonWorkspacesField(packageJson.workspaces); const pnpmWorkspace = await readYaml(join(rootWorkspace, PNPM_WORKSPACE_FILE_NAME)); if (pnpmWorkspace?.packages) workspaces = [...workspaces, ...pnpmWorkspace.packages]; return { packageJson, packageKind: "root", workspacePackagePatterns: workspaces, packageJsonPath, packagePath: rootWorkspace, packagePathFromRootPackage: "." }; }; //#endregion export { normalizePackageJsonWorkspacesField as n, normalizeGetRootPackageJsonOptions as r, getRootPackageJson as t }; //# sourceMappingURL=get-root-package-json.function-CFklF0V2.js.map