UNPKG

turborepo-template-upgrade

Version:

Upgrade projects based on a Turborepo template using selective git diffs, with support for ignore paths and skipped packages.

3 lines (2 loc) 1.74 kB
import{existsSync as s,readFileSync as u}from"fs";import{execSync as m}from"child_process";import{resolve as a}from"path";import{resolveConflicts as l}from"git-json-resolver";import{DROP as f,StrategyStatus_OK as p}from"git-json-resolver/utils";var b=()=>{let e=process.cwd();for(;e!=="/"&&!(s(a(e,"pnpm-lock.yaml"))&&s(a(e,"pnpm-workspace.yaml")));)e=a(e,"..");return process.chdir(e),e},v="159692443c7a196d86c2612f752ae1d0786b004b",d=".turborepo-template.lst",w=()=>{var o;if(s(d))return(o=u(d,"utf8"))==null?void 0:o.trim();let e=m("git log --reverse --format=%ai | head -n 1",{encoding:"utf8"}).trim(),n=new Date(e),r=m("git log --format=%H::%ai template/main",{encoding:"utf8"}).trim().split(` `).map(t=>{let[g,i]=t.split("::");return{hash:g,date:new Date(i==null?void 0:i.trim())}}).reverse().find(t=>t.date>=n);return r?(console.info("Applying changes from ",r.hash," dated ",r.date),r.hash):v},j=async e=>{let n=s("scripts/rebrand.js"),c=s("typedoc.config.js"),r=s("scripts/templates");await l({include:["package.json"],defaultStrategy:["merge","ours"],rules:{"devDependencies.*":["ignore-removed","theirs"],"dependencies.*":["ignore-removed","theirs"]},customStrategies:{"ignore-removed":({theirs:o,path:t})=>!n&&/enquirer$/.test(t)||!c&&/typedoc/.test(t)||!r&&/plop/.test(t)?{status:p,value:f}:{status:p,value:o}},debug:e}),await l({include:["**/package.json"],exclude:["package.json","**/dist/**","**/.next/**"],defaultStrategy:["merge","ours"],rules:{"devDependencies.*":["semver-max"],"dependencies.*":["semver-max"]},loggerConfig:{logDir:".logs2",levels:{stdout:[]}},plugins:["git-json-resolver-semver"],pluginConfig:{"git-json-resolver-semver":{preferValid:!0}},includeNonConflicted:!0,debug:e})};export{b as a,w as b,j as c};