eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 884 B
JavaScript
import{reconcileNodeEngine}from"../../node-engine.js";import{readFile,writeFile}from"node:fs/promises";function isJsonObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function patchPackageJson(e,t){let n=await readFile(e,`utf8`),r=JSON.parse(n),i=!1,a;if(t.dependencies!==void 0&&(r.dependencies={...r.dependencies,...t.dependencies},i=!0),t.devDependencies!==void 0&&(r.devDependencies={...r.devDependencies,...t.devDependencies},i=!0),t.scripts!==void 0&&(r.scripts={...r.scripts,...t.scripts},i=!0),t.nodeEngineRequirement!==void 0){let e=isJsonObject(r.engines)?r.engines:{},n=reconcileNodeEngine(e.node,t.nodeEngineRequirement);(n.kind===`added`||n.kind===`overridden`)&&(r.engines={...e,node:n.next},i=!0),n.kind===`overridden`&&(a=n)}return i&&await writeFile(e,`${JSON.stringify(r,null,2)}\n`,`utf8`),{changed:i,nodeEngineOverride:a}}export{patchPackageJson};