@turbo/workspaces 1.9.6 → 1.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +22 -22
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -72,7 +72,7 @@ ${t.message}`:D,m=[v,a,f].filter(Boolean).join(`
|
|
|
72
72
|
${l.workspaceData.globs.map(r=>` - "${r}"`).join(`
|
|
73
73
|
`)}`))),f&&(Ye({workspace:{name:"root",paths:l.paths},project:l,to:n,logger:i,options:s}),i.workspaceHeader(),l.workspaceData.workspaces.forEach(r=>Ye({workspace:r,project:l,to:n,logger:i,options:s})))}async function Mp(e){let{project:l,logger:n,options:i}=e,s=l.workspaceData.globs.length>0;n.mainStep(Ze({action:"remove",packageManager:"pnpm",project:l}));let f=je({workspaceRoot:l.paths.root});if(l.paths.workspaceConfig&&s&&(n.subStep('removing "pnpm-workspace.yaml"'),i!=null&&i.dry||ze.default.rmSync(l.paths.workspaceConfig,{force:!0})),n.subStep(`removing "packageManager" field in ${l.name} root "package.json"`),delete f.packageManager,!(i!=null&&i.dry)){ze.default.writeJSONSync(l.paths.packageJson,f,{spaces:2});let a=[l.paths.nodeModules,...l.workspaceData.workspaces.map(r=>r.paths.nodeModules)];try{n.subStep('removing "node_modules"'),await Promise.all(a.map(r=>ze.default.rm(r,{recursive:!0,force:!0})))}catch{throw new xe("Failed to remove node_modules",{type:"error_removing_node_modules"})}}}async function jp(e){let{project:l,logger:n,options:i}=e;n.subStep(`removing ${Dt.default.relative(l.paths.root,l.paths.lockfile)}`),i!=null&&i.dry||ze.default.rmSync(l.paths.lockfile,{force:!0})}async function Np(e){let{project:l,logger:n,options:i}=e;if(l.packageManager!=="pnpm"&&(n.subStep(`converting ${Dt.default.relative(l.paths.root,l.paths.lockfile)} to pnpm-lock.yaml`),!(i!=null&&i.dry)&&ze.default.existsSync(l.paths.lockfile)))try{await(0,qi.default)("pnpm",["import"],{stdio:"ignore",cwd:l.paths.root})}finally{ze.default.rmSync(l.paths.lockfile,{force:!0})}}var $p={detect:zi,read:Lp,create:Ip,remove:Mp,clean:jp,convertLock:Np},Wi=$p;var st=Oe(require("fs-extra")),jt=Oe(require("path"));async function Vi(e){let l=jt.default.join(e.workspaceRoot,"package-lock.json"),n=_t({workspaceRoot:e.workspaceRoot});return st.default.existsSync(l)||n==="npm"}async function Hp(e){if(!await Vi(e))throw new xe("Not an npm project",{type:"package_manager-unexpected"});let n=je(e),{name:i,description:s}=ht(e);return{name:i,description:s,packageManager:"npm",paths:Et({root:e.workspaceRoot,lockFile:"package-lock.json"}),workspaceData:{globs:n.workspaces||[],workspaces:wt({workspaceGlobs:n.workspaces,...e})}}}async function Up(e){let{project:l,options:n,to:i,logger:s}=e,f=l.workspaceData.globs.length>0;s.mainStep(Ze({packageManager:"npm",action:"create",project:l}));let a=je({workspaceRoot:l.paths.root});s.rootHeader(),s.rootStep(`adding "packageManager" field to ${jt.default.relative(l.paths.root,l.paths.packageJson)}`),a.packageManager=`${i.name}@${i.version}`,f?(s.rootStep(`adding "workspaces" field to ${jt.default.relative(l.paths.root,l.paths.packageJson)}`),a.workspaces=l.workspaceData.globs,n!=null&&n.dry||st.default.writeJSONSync(l.paths.packageJson,a,{spaces:2}),Ye({workspace:{name:"root",paths:l.paths},project:l,to:i,logger:s,options:n}),s.workspaceHeader(),l.workspaceData.workspaces.forEach(r=>Ye({workspace:r,project:l,to:i,logger:s,options:n}))):n!=null&&n.dry||st.default.writeJSONSync(l.paths.packageJson,a,{spaces:2})}async function Gp(e){let{project:l,logger:n,options:i}=e,s=l.workspaceData.globs.length>0;n.mainStep(Ze({packageManager:"npm",action:"remove",project:l}));let f=je({workspaceRoot:l.paths.root});if(s&&(n.subStep(`removing "workspaces" field in ${l.name} root "package.json"`),delete f.workspaces),n.subStep(`removing "packageManager" field in ${l.name} root "package.json"`),delete f.packageManager,!(i!=null&&i.dry)){st.default.writeJSONSync(l.paths.packageJson,f,{spaces:2});let a=[l.paths.nodeModules,...l.workspaceData.workspaces.map(r=>r.paths.nodeModules)];try{n.subStep('removing "node_modules"'),await Promise.all(a.map(r=>st.default.rm(r,{recursive:!0,force:!0})))}catch{throw new xe("Failed to remove node_modules",{type:"error_removing_node_modules"})}}}async function qp(e){let{project:l,logger:n,options:i}=e;n.subStep(`removing ${jt.default.relative(l.paths.root,l.paths.lockfile)}`),i!=null&&i.dry||st.default.rmSync(l.paths.lockfile,{force:!0})}async function zp(e){let{project:l,options:n}=e;l.packageManager!=="npm"&&(n!=null&&n.dry||st.default.rmSync(l.paths.lockfile,{force:!0}))}var Wp={detect:Vi,read:Hp,create:Up,remove:Gp,clean:qp,convertLock:zp},Yi=Wp;var ot=Oe(require("fs-extra")),Nt=Oe(require("path"));async function Ji(e){let l=Nt.default.join(e.workspaceRoot,"yarn.lock"),n=_t({workspaceRoot:e.workspaceRoot});return ot.default.existsSync(l)||n==="yarn"}async function Vp(e){if(!await Ji(e))throw new xe("Not a yarn project",{type:"package_manager-unexpected"});let n=je(e),{name:i,description:s}=ht(e);return{name:i,description:s,packageManager:"yarn",paths:Et({root:e.workspaceRoot,lockFile:"yarn.lock"}),workspaceData:{globs:n.workspaces||[],workspaces:wt({workspaceGlobs:n.workspaces,...e})}}}async function Yp(e){let{project:l,to:n,logger:i,options:s}=e,f=l.workspaceData.globs.length>0;i.mainStep(Ze({packageManager:"yarn",action:"create",project:l}));let a=je({workspaceRoot:l.paths.root});i.rootHeader(),i.rootStep(`adding "packageManager" field to ${Nt.default.relative(l.paths.root,l.paths.packageJson)}`),a.packageManager=`${n.name}@${n.version}`,f?(i.rootStep(`adding "workspaces" field to ${Nt.default.relative(l.paths.root,l.paths.packageJson)}`),a.workspaces=l.workspaceData.globs,s!=null&&s.dry||ot.default.writeJSONSync(l.paths.packageJson,a,{spaces:2}),Ye({workspace:{name:"root",paths:l.paths},project:l,to:n,logger:i,options:s}),i.workspaceHeader(),l.workspaceData.workspaces.forEach(r=>Ye({workspace:r,project:l,to:n,logger:i,options:s}))):s!=null&&s.dry||ot.default.writeJSONSync(l.paths.packageJson,a,{spaces:2})}async function Jp(e){let{project:l,logger:n,options:i}=e,s=l.workspaceData.globs.length>0;n.mainStep(Ze({packageManager:"yarn",action:"remove",project:l}));let f=je({workspaceRoot:l.paths.root});if(s&&(n.subStep(`removing "workspaces" field in ${l.name} root "package.json"`),delete f.workspaces),n.subStep(`removing "packageManager" field in ${l.name} root "package.json"`),delete f.packageManager,!(i!=null&&i.dry)){ot.default.writeJSONSync(l.paths.packageJson,f,{spaces:2});let a=[l.paths.nodeModules,...l.workspaceData.workspaces.map(r=>r.paths.nodeModules)];try{n.subStep('removing "node_modules"'),await Promise.all(a.map(r=>ot.default.rm(r,{recursive:!0,force:!0})))}catch{throw new xe("Failed to remove node_modules",{type:"error_removing_node_modules"})}}}async function Kp(e){let{project:l,logger:n,options:i}=e;n.subStep(`removing ${Nt.default.relative(l.paths.root,l.paths.lockfile)}`),i!=null&&i.dry||ot.default.rmSync(l.paths.lockfile,{force:!0})}async function Zp(e){let{project:l,options:n}=e;l.packageManager!=="yarn"&&(n!=null&&n.dry||ot.default.rmSync(l.paths.lockfile,{force:!0}))}var Xp={detect:Ji,read:Vp,create:Yp,remove:Jp,clean:Kp,convertLock:Zp},Ki=Xp;var Qp={pnpm:Wi,yarn:Ki,npm:Yi},Xe=Qp;async function ur({root:e}){let{exists:l,absolute:n}=$i({directory:e});if(!l)throw new xe(`Could not find directory at ${n}. Ensure the directory exists.`,{type:"invalid_directory"});for(let{detect:i,read:s}of Object.values(Xe))if(await i({workspaceRoot:n}))return s({workspaceRoot:n});throw new xe("Could not determine package manager. Add `packageManager` to `package.json` or ensure a lockfile is present.",{type:"package_manager-unable_to_detect"})}var rs=Oe(require("chalk"));var Qi=Oe(require("execa")),es=Oe(require("ora")),ts=require("semver");var Ge=Oe(require("chalk")),Zi=Oe(require("gradient-string")),St=2,At=class{constructor({interactive:l,dry:n}={}){this.interactive=l!=null?l:!0,this.dry=n!=null?n:!1,this.step=1}logger(...l){this.interactive&&console.log(...l)}indented(l,...n){this.logger(" ".repeat(St*l),...n)}header(l){this.blankLine(),this.logger(Ge.default.bold(l))}installerFrames(){let l=`${" ".repeat(St)} - ${this.dry?Ge.default.yellow("SKIPPED | "):Ge.default.green("OK | ")}`;return[`${l} `,`${l}> `,`${l}>> `,`${l}>>>`]}gradient(l){return(0,Zi.default)("#0099F7","#F11712")(l.toString())}hero(){this.logger(Ge.default.bold(this.gradient(`
|
|
74
74
|
>>> TURBOREPO
|
|
75
|
-
`)))}info(...l){this.logger(...l)}mainStep(l){this.blankLine(),this.logger(`${this.step}. ${Ge.default.underline(l)}`),this.step+=1}subStep(...l){this.logger(" ".repeat(St),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}subStepFailure(...l){this.logger(" ".repeat(St),"-",Ge.default.red("ERROR |"),...l)}rootHeader(){this.blankLine(),this.indented(2,"Root:")}rootStep(...l){this.logger(" ".repeat(St*3),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}workspaceHeader(){this.blankLine(),this.indented(2,"Workspaces:")}workspaceStep(...l){this.logger(" ".repeat(St*3),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}blankLine(){this.logger()}error(...l){console.error(...l)}};var Xi={npm:[{name:"npm",template:"npm",command:"npm",installArgs:["install"],version:"latest",executable:"npx",semver:"*",default:!0}],pnpm:[{name:"pnpm6",template:"pnpm",command:"pnpm",installArgs:["install"],version:"latest-6",executable:"pnpx",semver:"6.x"},{name:"pnpm",template:"pnpm",command:"pnpm",installArgs:["install"],version:"latest",executable:"pnpm dlx",semver:">=7",default:!0}],yarn:[{name:"yarn",template:"yarn",command:"yarn",installArgs:["install"],version:"1.x",executable:"npx",semver:"<2",default:!0},{name:"berry",template:"berry",command:"yarn",installArgs:["install","--no-immutable"],version:"stable",executable:"yarn dlx",semver:">=2"}]};function Vr(e){let{version:l,name:n}=e;return l?Xi[n].find(i=>(0,ts.satisfies)(l,i.semver)):Xi[n].find(i=>i.default)}async function $t(e){let{to:l,logger:n,options:i}=e,s=n!=null?n:new At(i),f=Vr(l);if(!f)throw new xe("Unsupported package manager version.",{type:"package_manager-unsupported_version"});if(s.subStep(`running "${f.command} ${f.installArgs}"`),!(i!=null&&i.dry)){let a;s!=null&&s.interactive&&(a=(0,es.default)({text:"installing dependencies...",spinner:{frames:s.installerFrames()}}).start());try{await(0,Qi.default)(f.command,f.installArgs,{cwd:e.project.paths.root}),a&&a.stop(),s.subStep("dependencies installed")}catch(r){throw s.subStepFailure("failed to install dependencies"),r}}}async function ns({project:e,to:l,logger:n,options:i}){if(n.header(`Converting project from ${e.packageManager} to ${l.name}.`),e.packageManager==l.name)throw new xe("You are already using this package manager",{type:"package_manager-already_in_use"});await Xe[e.packageManager].remove({project:e,to:l,logger:n,options:i}),await Xe[l.name].create({project:e,to:l,logger:n,options:i}),n.mainStep("Installing dependencies"),i!=null&&i.skipInstall?n.subStep(rs.default.yellow("Skipping install")):(await Xe[l.name].convertLock({project:e,logger:n,options:i}),await $t({project:e,to:l,logger:n,options:i})),n.mainStep(`Cleaning up ${e.packageManager} workspaces`),await Xe[e.packageManager].clean({project:e,logger:n})}async function ef({root:e,to:l,options:n}){let i=new At({...n,interactive:!1}),[s,f]=await Promise.all([ur({root:e}),wr()]);await ns({project:s,to:{name:l,version:f[l].version},logger:i,options:n})}0&&(module.exports={ConvertError,MANAGERS,convert,getPackageManagerMeta,getWorkspaceDetails,install});
|
|
75
|
+
`)))}info(...l){this.logger(...l)}mainStep(l){this.blankLine(),this.logger(`${this.step}. ${Ge.default.underline(l)}`),this.step+=1}subStep(...l){this.logger(" ".repeat(St),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}subStepFailure(...l){this.logger(" ".repeat(St),"-",Ge.default.red("ERROR |"),...l)}rootHeader(){this.blankLine(),this.indented(2,"Root:")}rootStep(...l){this.logger(" ".repeat(St*3),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}workspaceHeader(){this.blankLine(),this.indented(2,"Workspaces:")}workspaceStep(...l){this.logger(" ".repeat(St*3),"-",this.dry?Ge.default.yellow("SKIPPED |"):Ge.default.green("OK |"),...l)}blankLine(){this.logger()}error(...l){console.error(...l)}};var Xi={npm:[{name:"npm",template:"npm",command:"npm",installArgs:["install"],version:"latest",executable:"npx",semver:"*",default:!0}],pnpm:[{name:"pnpm6",template:"pnpm",command:"pnpm",installArgs:["install"],version:"latest-6",executable:"pnpx",semver:"6.x"},{name:"pnpm",template:"pnpm",command:"pnpm",installArgs:["install","--fix-lockfile"],version:"latest",executable:"pnpm dlx",semver:">=7",default:!0}],yarn:[{name:"yarn",template:"yarn",command:"yarn",installArgs:["install"],version:"1.x",executable:"npx",semver:"<2",default:!0},{name:"berry",template:"berry",command:"yarn",installArgs:["install","--no-immutable"],version:"stable",executable:"yarn dlx",semver:">=2"}]};function Vr(e){let{version:l,name:n}=e;return l?Xi[n].find(i=>(0,ts.satisfies)(l,i.semver)):Xi[n].find(i=>i.default)}async function $t(e){let{to:l,logger:n,options:i}=e,s=n!=null?n:new At(i),f=Vr(l);if(!f)throw new xe("Unsupported package manager version.",{type:"package_manager-unsupported_version"});if(s.subStep(`running "${f.command} ${f.installArgs}"`),!(i!=null&&i.dry)){let a;s!=null&&s.interactive&&(a=(0,es.default)({text:"installing dependencies...",spinner:{frames:s.installerFrames()}}).start());try{await(0,Qi.default)(f.command,f.installArgs,{cwd:e.project.paths.root}),a&&a.stop(),s.subStep("dependencies installed")}catch(r){throw s.subStepFailure("failed to install dependencies"),r}}}async function ns({project:e,to:l,logger:n,options:i}){if(n.header(`Converting project from ${e.packageManager} to ${l.name}.`),e.packageManager==l.name)throw new xe("You are already using this package manager",{type:"package_manager-already_in_use"});await Xe[e.packageManager].remove({project:e,to:l,logger:n,options:i}),await Xe[l.name].create({project:e,to:l,logger:n,options:i}),n.mainStep("Installing dependencies"),i!=null&&i.skipInstall?n.subStep(rs.default.yellow("Skipping install")):(await Xe[l.name].convertLock({project:e,logger:n,options:i}),await $t({project:e,to:l,logger:n,options:i})),n.mainStep(`Cleaning up ${e.packageManager} workspaces`),await Xe[e.packageManager].clean({project:e,logger:n})}async function ef({root:e,to:l,options:n}){let i=new At({...n,interactive:!1}),[s,f]=await Promise.all([ur({root:e}),wr()]);await ns({project:s,to:{name:l,version:f[l].version},logger:i,options:n})}0&&(module.exports={ConvertError,MANAGERS,convert,getPackageManagerMeta,getWorkspaceDetails,install});
|
|
76
76
|
/*!
|
|
77
77
|
* fill-range <https://github.com/jonschlinkert/fill-range>
|
|
78
78
|
*
|