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) • 2.46 kB
JavaScript
;var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var n in t)l(e,n,{get:t[n],enumerable:!0})},C=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of v(t))!y.call(e,r)&&r!==n&&l(e,r,{get:()=>t[r],enumerable:!(s=f(t,r))||s.enumerable});return e};var S=e=>C(l({},"__esModule",{value:!0}),e);var j={};x(j,{cdToRepoRoot:()=>h,getBaseCommit:()=>b,resolvePackageJSONConflicts:()=>w});module.exports=S(j);var o=require("fs"),p=require("child_process"),c=require("path"),d=require("git-json-resolver"),a=require("git-json-resolver/utils"),h=()=>{let e=process.cwd();for(;e!=="/"&&!((0,o.existsSync)((0,c.resolve)(e,"pnpm-lock.yaml"))&&(0,o.existsSync)((0,c.resolve)(e,"pnpm-workspace.yaml")));)e=(0,c.resolve)(e,"..");return process.chdir(e),e},D="159692443c7a196d86c2612f752ae1d0786b004b",g=".turborepo-template.lst",b=()=>{var r;if((0,o.existsSync)(g))return(r=(0,o.readFileSync)(g,"utf8"))==null?void 0:r.trim();let e=(0,p.execSync)("git log --reverse --format=%ai | head -n 1",{encoding:"utf8"}).trim(),t=new Date(e),s=(0,p.execSync)("git log --format=%H::%ai template/main",{encoding:"utf8"}).trim().split(`
`).map(i=>{let[u,m]=i.split("::");return{hash:u,date:new Date(m==null?void 0:m.trim())}}).reverse().find(i=>i.date>=t);return s?(console.info("Applying changes from ",s.hash," dated ",s.date),s.hash):D},w=async e=>{let t=(0,o.existsSync)("scripts/rebrand.js"),n=(0,o.existsSync)("typedoc.config.js"),s=(0,o.existsSync)("scripts/templates");await(0,d.resolveConflicts)({include:["package.json"],defaultStrategy:["merge","ours"],rules:{"devDependencies.*":["ignore-removed","theirs"],"dependencies.*":["ignore-removed","theirs"]},customStrategies:{"ignore-removed":({theirs:r,path:i})=>!t&&/enquirer$/.test(i)||!n&&/typedoc/.test(i)||!s&&/plop/.test(i)?{status:a.StrategyStatus_OK,value:a.DROP}:{status:a.StrategyStatus_OK,value:r}},debug:e}),await(0,d.resolveConflicts)({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})};0&&(module.exports={cdToRepoRoot,getBaseCommit,resolvePackageJSONConflicts});