@alexaegis/workspace-tools
Version:
Tools for working with javascript workspaces
66 lines (65 loc) • 2.6 kB
JavaScript
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