UNPKG

@storm-software/workspace-tools

Version:

Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.

94 lines (91 loc) 2.58 kB
import { parseCargoToml } from "./chunk-GEN563U4.mjs"; import { ProjectTagConstants, isEqualProjectTag } from "./chunk-AQ7B26V3.mjs"; import { joinPaths } from "./chunk-TBW5MCN6.mjs"; // src/utils/package-helpers.ts import { joinPathFragments, readJsonFile } from "@nx/devkit"; import { execFileSync } from "child_process"; import { existsSync } from "node:fs"; import { readFile, writeFile } from "node:fs/promises"; import { dirname, resolve } from "path"; import { format } from "prettier"; var PackageManagerTypes = { PackageJson: "package.json", CargoToml: "Cargo.toml" }; var getPackageInfo = (project) => { if (isEqualProjectTag( project, ProjectTagConstants.Language.TAG_ID, ProjectTagConstants.Language.RUST ) && existsSync(joinPathFragments(project.root, "Cargo.toml"))) { return { type: "Cargo.toml", content: parseCargoToml(joinPathFragments(project.root, "Cargo.toml")) }; } else if (isEqualProjectTag( project, ProjectTagConstants.Language.TAG_ID, ProjectTagConstants.Language.TYPESCRIPT ) && existsSync(joinPathFragments(project.root, "package.json"))) { return { type: "package.json", content: readJsonFile( joinPathFragments(project.root, "package.json") ) }; } return null; }; async function addPackageJsonGitHead(packageRoot) { const packageJsonPath = joinPaths(packageRoot, "package.json"); if (!packageJsonPath) { throw new Error( "No file path provided. Please provide a valid path to the package.json file." ); } const packageJsonValue = JSON.parse(await readFile(packageJsonPath, "utf8")); if (!packageJsonValue || typeof packageJsonValue !== "object") { throw new Error( `Invalid package.json file at ${packageJsonPath}. Please ensure it is a valid JSON file.` ); } const gitHead = execFileSync("git", ["rev-parse", "HEAD"], { cwd: dirname(resolve(packageJsonPath)), encoding: "utf8" }).trim(); packageJsonValue.gitHead = gitHead; return writeFile( packageJsonPath, await format(JSON.stringify(packageJsonValue), { parser: "json", proseWrap: "preserve", trailingComma: "none", tabWidth: 2, semi: true, singleQuote: false, quoteProps: "as-needed", insertPragma: false, bracketSameLine: true, printWidth: 80, bracketSpacing: true, arrowParens: "avoid", endOfLine: "lf", plugins: ["prettier-plugin-packagejson"] }) ); } export { PackageManagerTypes, getPackageInfo, addPackageJsonGitHead };