UNPKG

geenee-spell

Version:

regenerates project code based upon settings and a template

39 lines (38 loc) 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updatePackageJson = void 0; const { removeNpmDependencyPrefix } = require('magicalstrings').removeNpmDependencyPrefix; const fs = require('fs-extra'); const semverGt = require('semver/functions/gt'); async function updatePackageJson(codeDir, starter) { const codePackageJsonPath = `${codeDir}/package.json`; if (await fs.pathExists(codePackageJsonPath)) { const codePackageJson = await fs.readJson(codePackageJsonPath); const starterPackageJsonPath = `${starter}/package.json`; const starterPackageJson = await fs.readJson(starterPackageJsonPath); const codeDependencies = codePackageJson.dependencies; const starterDependencies = starterPackageJson.dependencies; Object.keys(starterDependencies).map(dependencyFile => { const starterDependency = removeNpmDependencyPrefix(starterDependencies[dependencyFile]); const codeDependency = removeNpmDependencyPrefix(codeDependencies[dependencyFile]); if (codeDependency === '*') return; if (!codeDependency || semverGt(starterDependency, codeDependency)) { codeDependencies[dependencyFile] = starterDependencies[dependencyFile]; } }); const codeDevDependencies = codePackageJson.devDependencies; const starterDevDependencies = starterPackageJson.devDependencies; Object.keys(starterDevDependencies).map(dependencyFile => { const starterDependency = removeNpmDependencyPrefix(starterDevDependencies[dependencyFile]); const codeDependency = removeNpmDependencyPrefix(codeDevDependencies[dependencyFile]); if (codeDependency === '*') return; if (!codeDependency || semverGt(starterDependency, codeDependency)) { codeDevDependencies[dependencyFile] = starterDevDependencies[dependencyFile]; } }); await fs.writeJson(codePackageJsonPath, codePackageJson, { spaces: 2 }); } } exports.updatePackageJson = updatePackageJson;