create-w3-app
Version:
Create ethereum dApps with w3 stack
37 lines (30 loc) • 982 B
text/typescript
import path from "path";
import fs from "fs-extra";
import sortPackageJson from "sort-package-json";
import { type PackageJson } from "type-fest";
import {
dependencyVersionMap,
type AvailableDependencies,
} from "~/installers/dependencyVersionMap.js";
export const addPackageDependency = (opts: {
dependencies: AvailableDependencies[];
devMode: boolean;
projectDir: string;
}) => {
const { dependencies, devMode, projectDir } = opts;
const pkgJson = fs.readJSONSync(
path.join(projectDir, "package.json")
) as PackageJson;
dependencies.forEach((pkgName) => {
const version = dependencyVersionMap[pkgName];
if (devMode && pkgJson.devDependencies) {
pkgJson.devDependencies[pkgName] = version;
} else if (pkgJson.dependencies) {
pkgJson.dependencies[pkgName] = version;
}
});
const sortedPkgJson = sortPackageJson(pkgJson);
fs.writeJSONSync(path.join(projectDir, "package.json"), sortedPkgJson, {
spaces: 2,
});
};