@jujulego/jill 1.1.19 → 2.0.0-beta.2
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/application.context.d.ts +28 -0
- package/dist/application.context.d.ts.map +1 -0
- package/dist/application.context.js +30 -0
- package/dist/application.context.js.map +1 -0
- package/dist/application.d.ts +7 -0
- package/dist/application.d.ts.map +1 -0
- package/dist/application.js +125 -0
- package/dist/application.js.map +1 -0
- package/dist/command.d.ts +8 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +24 -0
- package/dist/command.js.map +1 -0
- package/dist/commands/each.command.d.ts +14 -12
- package/dist/commands/each.command.d.ts.map +1 -1
- package/dist/commands/each.command.js +89 -116
- package/dist/commands/each.command.js.map +1 -1
- package/dist/commands/list.command.d.ts +17 -13
- package/dist/commands/list.command.d.ts.map +1 -1
- package/dist/commands/list.command.js +146 -145
- package/dist/commands/list.command.js.map +1 -1
- package/dist/commands/run.command.d.ts +10 -10
- package/dist/commands/run.command.d.ts.map +1 -1
- package/dist/commands/run.command.js +45 -62
- package/dist/commands/run.command.js.map +1 -1
- package/dist/commands/tree.command.d.ts +7 -0
- package/dist/commands/tree.command.d.ts.map +1 -0
- package/dist/commands/tree.command.js +35 -0
- package/dist/commands/tree.command.js.map +1 -0
- package/dist/components/StaticLogs.d.ts +2 -0
- package/dist/components/StaticLogs.d.ts.map +1 -0
- package/dist/components/StaticLogs.js +77 -0
- package/dist/components/StaticLogs.js.map +1 -0
- package/dist/components/WorkspaceTree.d.ts +8 -0
- package/dist/components/WorkspaceTree.d.ts.map +1 -0
- package/dist/components/WorkspaceTree.js +151 -0
- package/dist/components/WorkspaceTree.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +16 -21
- package/dist/main.js.map +1 -1
- package/dist/wrapper.d.ts +6 -0
- package/dist/wrapper.d.ts.map +1 -0
- package/dist/wrapper.js +30 -0
- package/dist/wrapper.js.map +1 -0
- package/dist/wrappers/project.wrapper.d.ts +7 -0
- package/dist/wrappers/project.wrapper.d.ts.map +1 -0
- package/dist/wrappers/project.wrapper.js +105 -0
- package/dist/wrappers/project.wrapper.js.map +1 -0
- package/dist/wrappers/workspace.wrapper.d.ts +5 -0
- package/dist/wrappers/workspace.wrapper.d.ts.map +1 -0
- package/dist/wrappers/workspace.wrapper.js +108 -0
- package/dist/wrappers/workspace.wrapper.js.map +1 -0
- package/package.json +44 -25
- package/dist/commands/info.command.d.ts +0 -8
- package/dist/commands/info.command.d.ts.map +0 -1
- package/dist/commands/info.command.js +0 -178
- package/dist/commands/info.command.js.map +0 -1
- package/dist/myr/commands/kill.command.d.ts +0 -10
- package/dist/myr/commands/kill.command.d.ts.map +0 -1
- package/dist/myr/commands/kill.command.js +0 -89
- package/dist/myr/commands/kill.command.js.map +0 -1
- package/dist/myr/commands/list.command.d.ts +0 -17
- package/dist/myr/commands/list.command.d.ts.map +0 -1
- package/dist/myr/commands/list.command.js +0 -167
- package/dist/myr/commands/list.command.js.map +0 -1
- package/dist/myr/commands/logs.command.d.ts +0 -10
- package/dist/myr/commands/logs.command.d.ts.map +0 -1
- package/dist/myr/commands/logs.command.js +0 -165
- package/dist/myr/commands/logs.command.js.map +0 -1
- package/dist/myr/commands/spawn.command.d.ts +0 -10
- package/dist/myr/commands/spawn.command.d.ts.map +0 -1
- package/dist/myr/commands/spawn.command.js +0 -84
- package/dist/myr/commands/spawn.command.js.map +0 -1
- package/dist/myr/commands/stop.command.d.ts +0 -6
- package/dist/myr/commands/stop.command.d.ts.map +0 -1
- package/dist/myr/commands/stop.command.js +0 -80
- package/dist/myr/commands/stop.command.js.map +0 -1
- package/dist/myr/myr-client.d.ts +0 -22
- package/dist/myr/myr-client.d.ts.map +0 -1
- package/dist/myr/myr-client.js +0 -378
- package/dist/myr/myr-client.js.map +0 -1
- package/dist/myr/myr.command.d.ts +0 -8
- package/dist/myr/myr.command.d.ts.map +0 -1
- package/dist/myr/myr.command.js +0 -42
- package/dist/myr/myr.command.js.map +0 -1
- package/dist/myr/myr.process.d.ts +0 -1
- package/dist/myr/myr.process.d.ts.map +0 -1
- package/dist/myr/myr.process.js +0 -77
- package/dist/myr/myr.process.js.map +0 -1
- package/dist/myr/watch.command.d.ts +0 -12
- package/dist/myr/watch.command.d.ts.map +0 -1
- package/dist/myr/watch.command.js +0 -169
- package/dist/myr/watch.command.js.map +0 -1
- package/dist/task-logger.d.ts +0 -14
- package/dist/task-logger.d.ts.map +0 -1
- package/dist/task-logger.js +0 -76
- package/dist/task-logger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/each.command.ts","commands/each.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","EachCommand","ProjectCommand","constructor","arguments","name","description","define","builder","y","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","run","args","_super","Object","create","get","e_1","_a","_b","pipeline","Pipeline","add","Filter","scripts","script","private","undefined","privateWorkspace","affected","AffectedFilter","workspaces","_c","filter","project","_d","wks","push","e_1_1","error","return","length","spinner","fail","stop","logger","verbose","map","join","set","TaskSet","tasks","task","arg","toString","buildDeps","tlogger","TaskLogger","on","count","tsk","includes","context","workspace","connect","start","waitFor","failed"],"mappings":"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","file":"each.command.js","sourcesContent":["import { AffectedFilter, Arguments, Builder, Filter, Pipeline, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { Task, TaskSet, Workspace, WorkspaceDepsMode } from '@jujulego/jill-core';\n\nimport { TaskLogger } from '../task-logger';\n\n// Types\nexport interface EachArgs extends ProjectArgs {\n script: string;\n 'deps-mode': WorkspaceDepsMode;\n\n private: boolean | undefined;\n affected: string | undefined;\n 'affected-rev-sort': string | undefined;\n 'affected-rev-fallback': string;\n}\n\n// Command\nexport class EachCommand extends ProjectCommand<EachArgs> {\n // Attributes\n readonly name = 'each <script>';\n readonly description = 'Run script on selected workspaces';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & EachArgs> {\n return super.define(y => builder(y)\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n );\n }\n\n protected async run(args: Arguments<EachArgs>): Promise<number> {\n await super.run(args);\n\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args['affected-rev-fallback'],\n args['affected-rev-sort']\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n if (workspaces.length === 0) {\n this.spinner.fail('No workspace found !');\n return 1;\n }\n\n this.spinner.stop();\n this.logger.verbose(`Will run ${args.script} in ${workspaces.map(wks => wks.name).join(', ')}`);\n\n // Run tasks\n const set = new TaskSet();\n const tasks: Task[] = [];\n\n for (const wks of workspaces) {\n const task = await wks.run(args.script, args['--']?.map(arg => arg.toString()), {\n buildDeps: args['deps-mode']\n });\n\n tasks.push(task);\n set.add(task);\n }\n\n const tlogger = new TaskLogger();\n tlogger.on('spin-multiple', (count) => `Working in ${count} packages ...`);\n tlogger.on('spin-simple', (tsk) => tasks.includes(tsk) ? `Running ${args.script} in ${tsk.context.workspace?.name} ...` : `Building ${tsk.context.workspace?.name} ...`);\n tlogger.on('fail', (tsk) => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);\n tlogger.on('succeed', (tsk) => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);\n tlogger.connect(set);\n\n set.start();\n const [result] = await set.waitFor('finished');\n return result.failed === 0 ? 0 : 1;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { AffectedFilter, Filter, Pipeline, ProjectCommand } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { TaskLogger } from '../task-logger';\n// Command\nexport class EachCommand extends ProjectCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = 'each <script>';\n this.description = 'Run script on selected workspaces';\n }\n // Methods\n define(builder) {\n return super.define(y => builder(y)\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all',\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n }));\n }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var e_1, _a;\n var _b;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));\n }\n // Filter\n const workspaces = [];\n try {\n for (var _c = __asyncValues(pipeline.filter(this.project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n workspaces.push(wks);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (workspaces.length === 0) {\n this.spinner.fail('No workspace found !');\n return 1;\n }\n this.spinner.stop();\n this.logger.verbose(`Will run ${args.script} in ${workspaces.map(wks => wks.name).join(', ')}`);\n // Run tasks\n const set = new TaskSet();\n const tasks = [];\n for (const wks of workspaces) {\n const task = yield wks.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), {\n buildDeps: args['deps-mode']\n });\n tasks.push(task);\n set.add(task);\n }\n const tlogger = new TaskLogger();\n tlogger.on('spin-multiple', (count) => `Working in ${count} packages ...`);\n tlogger.on('spin-simple', (tsk) => { var _a, _b; return tasks.includes(tsk) ? `Running ${args.script} in ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ...` : `Building ${(_b = tsk.context.workspace) === null || _b === void 0 ? void 0 : _b.name} ...`; });\n tlogger.on('fail', (tsk) => { var _a, _b; return tasks.includes(tsk) ? `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ${args.script} failed` : `Failed to build ${(_b = tsk.context.workspace) === null || _b === void 0 ? void 0 : _b.name}`; });\n tlogger.on('succeed', (tsk) => { var _a, _b; return tasks.includes(tsk) ? `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ${args.script} done` : `${(_b = tsk.context.workspace) === null || _b === void 0 ? void 0 : _b.name} built`; });\n tlogger.connect(set);\n set.start();\n const [result] = yield set.waitFor('finished');\n return result.failed === 0 ? 0 : 1;\n });\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["commands/each.command.js","commands/each.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","wrapper","useArgs","name","description","builder","yargs","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","EachCommand","args","project","exit","tasks","TaskSet","e_1","_a","_b","pipeline","Pipeline","add","Filter","scripts","script","private","undefined","privateWorkspace","affected","AffectedFilter","affectedRevFallback","affectedRevSort","_c","filter","workspaces","_d","wks","current","run","map","arg","toString","buildDeps","depsMode","e_1_1","error","return","start","waitFor","failed","Error","TaskSetSpinner","taskSet"],"mappings":";;;;;;;AAgBA;;AChBA;;AACA;;AACA;;AACA;;AAEA;;AACA;;ADNA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,WAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,WAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,MAAAA,OAAO,CAACD,KAAD,CAAP;AAAiB,KAA5C,CAApC;AAAoF;;AAC5G,SAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,aAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;AAA8B,OAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC3F,aAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;AAAkC,OAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC9F,aAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,MAAAA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;;AAC9GH,IAAAA,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACc,KAAV,CAAgBjB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;AACH,GALM,CAAP;AAMH,CARD;;AASA,IAAIO,aAAa,GAAI,UAAQ,SAAKA,aAAd,IAAgC,UAAUC,CAAV,EAAa;AAC7D,MAAI,CAACC,MAAM,CAACC,aAAZ,EAA2B,MAAM,IAAIC,SAAJ,CAAc,sCAAd,CAAN;AAC3B,MAAIC,CAAC,GAAGJ,CAAC,CAACC,MAAM,CAACC,aAAR,CAAT;AAAA,MAAiCG,CAAjC;AACA,SAAOD,CAAC,GAAGA,CAAC,CAACE,IAAF,CAAON,CAAP,CAAH,IAAgBA,CAAC,GAAG,OAAOO,QAAP,KAAoB,UAApB,GAAiCA,QAAQ,CAACP,CAAD,CAAzC,GAA+CA,CAAC,CAACC,MAAM,CAACO,QAAR,CAAD,EAAnD,EAAyEH,CAAC,GAAG,EAA7E,EAAiFI,IAAI,CAAC,MAAD,CAArF,EAA+FA,IAAI,CAAC,OAAD,CAAnG,EAA8GA,IAAI,CAAC,QAAD,CAAlH,EAA8HJ,CAAC,CAACJ,MAAM,CAACC,aAAR,CAAD,GAA0B,YAAY;AAAE,WAAO,IAAP;AAAc,GAApL,EAAsLG,CAAtM,CAAR;;AACA,WAASI,IAAT,CAAcC,CAAd,EAAiB;AAAEL,IAAAA,CAAC,CAACK,CAAD,CAAD,GAAOV,CAAC,CAACU,CAAD,CAAD,IAAQ,UAAUC,CAAV,EAAa;AAAE,aAAO,IAAIvB,OAAJ,CAAY,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AAAEsB,QAAAA,CAAC,GAAGX,CAAC,CAACU,CAAD,CAAD,CAAKC,CAAL,CAAJ,EAAaC,MAAM,CAACzB,OAAD,EAAUE,MAAV,EAAkBsB,CAAC,CAACf,IAApB,EAA0Be,CAAC,CAACzB,KAA5B,CAAnB;AAAwD,OAAjG,CAAP;AAA4G,KAA1I;AAA6I;;AAChK,WAAS0B,MAAT,CAAgBzB,OAAhB,EAAyBE,MAAzB,EAAiCwB,CAAjC,EAAoCF,CAApC,EAAuC;AAAEvB,IAAAA,OAAO,CAACD,OAAR,CAAgBwB,CAAhB,EAAmBd,IAAnB,CAAwB,UAASc,CAAT,EAAY;AAAExB,MAAAA,OAAO,CAAC;AAAED,QAAAA,KAAK,EAAEyB,CAAT;AAAYf,QAAAA,IAAI,EAAEiB;AAAlB,OAAD,CAAP;AAAiC,KAAvE,EAAyExB,MAAzE;AAAmF;AAC/H,CAND;;ACDA;AACA,MAAM;AAAEyB,EAAAA,OAAF;AAAWC,EAAAA;AAAX,IAAuB,0BAAY,sBAAQ;AAC/CC,EAAAA,IAAI,EAAE,eADyC;AAE/CC,EAAAA,WAAW,EAAE,mCAFkC;AAG/CC,EAAAA,OAAO,EAAEC,KAAK,IAAIA,KAAK,CACpBC,UADe,CACJ,QADI,EACM;AAAEC,IAAAA,IAAI,EAAE,QAAR;AAAkBC,IAAAA,YAAY,EAAE;AAAhC,GADN,EAEfC,MAFe,CAER,WAFQ,EAEK;AACnBC,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,MAAR,EAAgB,MAAhB,CADW;AAEnBC,IAAAA,OAAO,EAAE,KAFU;AAGnBC,IAAAA,IAAI,EAAE,iCACJ,6CADI,GAEJ,0BAFI,GAGJ;AANiB,GAFL,EAUfH,MAVe,CAUR,SAVQ,EAUG;AACjBF,IAAAA,IAAI,EAAE,SADW;AAEjBM,IAAAA,KAAK,EAAE,UAFU;AAGjBD,IAAAA,IAAI,EAAE;AAHW,GAVH,EAefH,MAfe,CAeR,UAfQ,EAeI;AAClBK,IAAAA,KAAK,EAAE,GADW;AAElBP,IAAAA,IAAI,EAAE,QAFY;AAGlBQ,IAAAA,MAAM,EAAGC,GAAD,IAAiBA,GAAG,KAAK,EAAR,GAAa,QAAb,GAAwBA,GAH/B;AAIlBH,IAAAA,KAAK,EAAE,WAJW;AAKlBD,IAAAA,IAAI,EAAE,wHACJ;AANgB,GAfJ,EAuBfH,MAvBe,CAuBR,mBAvBQ,EAuBa;AAC3BF,IAAAA,IAAI,EAAE,QADqB;AAE3BM,IAAAA,KAAK,EAAE,WAFoB;AAG3BD,IAAAA,IAAI,EAAE;AAHqB,GAvBb,EA4BfH,MA5Be,CA4BR,uBA5BQ,EA4BiB;AAC/BF,IAAAA,IAAI,EAAE,QADyB;AAE/BI,IAAAA,OAAO,EAAE,QAFsB;AAG/BE,IAAAA,KAAK,EAAE,WAHwB;AAI/BD,IAAAA,IAAI,EAAE;AAJyB,GA5BjB;AAH6B,CAAR,CAAZ,CAA7B,C,CAuCA;;AACO,MAAMK,WAAW,GAAGjB,OAAO,CAAC,SAASiB,WAAT,GAAoB;AACrD,QAAMC,IAAI,GAAGjB,OAAO,EAApB;AACA,QAAMkB,OAAO,GAAG,0BAAhB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAW,kBAAjB,CAHqD,CAKrD;;AACA,QAAMC,KAAK,GAAG,mBAAO,IAAIC,iBAAJ,EAAP,CAAd,CANqD,CAQrD;;AACA,wBAAU,MAAM,KAAK,CAAC,MAAWxD,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;ADa3B,QAAIyD,GAAJ,EAASC,EAAT;;AACA,QAAIC,EAAJ,CCd2B,CAC/B;;;AACA,UAAMC,QAAQ,GAAG,IAAIC,oBAAJ,EAAjB;AACAD,IAAAA,QAAQ,CAACE,GAAT,CAAaC,mBAAOC,OAAP,CAAe,CAACZ,IAAI,CAACa,MAAN,CAAf,CAAb;;AAEA,QAAIb,IAAI,CAACc,OAAL,KAAiBC,SAArB,EAAgC;AAC9BP,MAAAA,QAAQ,CAACE,GAAT,CAAaC,mBAAOK,gBAAP,CAAwBhB,IAAI,CAACc,OAA7B,CAAb;AACD;;AAED,QAAId,IAAI,CAACiB,QAAL,KAAkBF,SAAtB,EAAiC;AAC/BP,MAAAA,QAAQ,CAACE,GAAT,CAAa,IAAIQ,0BAAJ,CACXlB,IAAI,CAACiB,QADM,EAEXjB,IAAI,CAACmB,mBAFM,EAGXnB,IAAI,CAACoB,eAHM,CAAb;AAKD;;ADSG,QAAI;ACPR;AACA,WAAwB,IAAAC,EAAA,GAAAtD,aAAA,CAAAyC,QAAQ,CAACc,MAAT,CAAgBrB,OAAO,CAACsB,UAAR,EAAhB,CAAA,CAAA,EAAqCC,EAA7D,EAA6DA,EAAA,GAAA,MAAAH,EAAA,CAAA7D,IAAA,EAAA,EAAA,CAAAgE,EAAA,CAAA5D,IAA7D,GAA6D;AAAlD,cAAM6D,GAAG,GAAAD,EAAA,CAAAtE,KAAT;AACTiD,QAAAA,KAAK,CAACuB,OAAN,CAAchB,GAAd,CAAkB,MAAMe,GAAG,CAACE,GAAJ,CAAQ3B,IAAI,CAACa,MAAb,EAAqB,CAAAN,EAAA,GAAAP,IAAI,CAAC,IAAD,CAAJ,MAAU,IAAV,IAAUO,EAAA,KAAA,KAAA,CAAV,GAAU,KAAA,CAAV,GAAUA,EAAA,CAAEqB,GAAF,CAAMC,GAAG,IAAIA,GAAG,CAACC,QAAJ,EAAb,CAA/B,EAA6D;AACnFC,UAAAA,SAAS,EAAE/B,IAAI,CAACgC;AADmE,SAA7D,CAAxB;AAGD;ADUI,KARD,CASA,OAAOC,KAAP,EAAc;AAAE5B,MAAAA,GAAG,GAAG;AAAE6B,QAAAA,KAAK,EAAED;AAAT,OAAN;AAAyB,KATzC,SAUQ;AACJ,UAAI;AACA,YAAIT,EAAE,IAAI,CAACA,EAAE,CAAC5D,IAAV,KAAmB0C,EAAE,GAAGe,EAAE,CAACc,MAA3B,CAAJ,EAAwC,MAAM7B,EAAE,CAAChC,IAAH,CAAQ+C,EAAR,CAAN;AAC3C,OAFD,SAGQ;AAAE,YAAIhB,GAAJ,EAAS,MAAMA,GAAG,CAAC6B,KAAV;AAAkB;AACxC;;ACfL/B,IAAAA,KAAK,CAACuB,OAAN,CAAcU,KAAd,GAxB+B,CA0B/B;;AACA,UAAM,CAACzE,MAAD,IAAW,MAAMwC,KAAK,CAACuB,OAAN,CAAcW,OAAd,CAAsB,UAAtB,CAAvB;;AAEA,QAAI1E,MAAM,CAAC2E,MAAX,EAAmB;AACjBpC,MAAAA,IAAI,CAAC,IAAIqC,KAAJ,CAAU,uBAAV,CAAD,CAAJ;AACD;AACF,GAhCgC,CAAZ,GAArB,EAgCM,CAACvC,IAAD,EAAOC,OAAP,EAAgBC,IAAhB,CAhCN,EATqD,CA2CrD;;AACA,SACE,qBAACsC,0BAAD,EAAe;AAACC,IAAAA,OAAO,EAAEtC,KAAK,CAACuB;AAAhB,GAAf,CADF;AAGD,CA/CiC,CAA3B","file":"each.command.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { AffectedFilter, Filter, Pipeline, TaskSetSpinner } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { useApp } from 'ink';\nimport { useEffect, useRef } from 'react';\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: 'each <script>',\n description: 'Run script on selected workspaces',\n builder: yargs => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all',\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n}));\n// Component\nexport const EachCommand = wrapper(function EachCommand() {\n const args = useArgs();\n const project = useProject();\n const { exit } = useApp();\n // Refs\n const tasks = useRef(new TaskSet());\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n var e_1, _a;\n var _b;\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));\n }\n try {\n // Filter and create tasks\n for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n tasks.current.add(yield wks.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), {\n buildDeps: args.depsMode\n }));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n tasks.current.start();\n // Result end code\n const [result] = yield tasks.current.waitFor('finished');\n if (result.failed) {\n exit(new Error('Some tasks has failed'));\n }\n }))(), [args, project, exit]);\n // Render\n return (_jsx(TaskSetSpinner, { taskSet: tasks.current }));\n});","import { AffectedFilter, Filter, Pipeline, TaskSetSpinner } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useApp } from 'ink';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: 'each <script>',\n description: 'Run script on selected workspaces',\n builder: yargs => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n}));\n\n// Component\nexport const EachCommand = wrapper(function EachCommand() {\n const args = useArgs();\n const project = useProject();\n const { exit } = useApp();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Filter and create tasks\n for await (const wks of pipeline.filter(project.workspaces())) {\n tasks.current.add(await wks.run(args.script, args['--']?.map(arg => arg.toString()), {\n buildDeps: args.depsMode\n }));\n }\n\n tasks.current.start();\n\n // Result end code\n const [result] = await tasks.current.waitFor('finished');\n\n if (result.failed) {\n exit(new Error('Some tasks has failed'));\n }\n })(), [args, project, exit]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';
|
|
2
1
|
export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
|
|
3
2
|
export declare type Data = Partial<Record<Attribute, string>>;
|
|
4
|
-
export
|
|
3
|
+
export declare const ListCommand: import("../application.context").CommandComponent<Omit<{
|
|
5
4
|
private: boolean | undefined;
|
|
6
|
-
|
|
5
|
+
} & {
|
|
6
|
+
"with-script": string[] | undefined;
|
|
7
|
+
} & {
|
|
7
8
|
affected: string | undefined;
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
} & {
|
|
10
|
+
"affected-rev-sort": string | undefined;
|
|
11
|
+
} & {
|
|
12
|
+
"affected-rev-fallback": string;
|
|
13
|
+
} & {
|
|
10
14
|
attrs: Attribute[];
|
|
15
|
+
} & {
|
|
11
16
|
headers: boolean | undefined;
|
|
17
|
+
} & {
|
|
12
18
|
long: boolean | undefined;
|
|
19
|
+
} & {
|
|
13
20
|
json: boolean | undefined;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs>;
|
|
20
|
-
protected run(args: Arguments<ListArgs>): Promise<number | void>;
|
|
21
|
-
}
|
|
21
|
+
}, "project" | "package-manager"> & {
|
|
22
|
+
project: string | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
"package-manager": import("@jujulego/jill-core").PackageManager | undefined;
|
|
25
|
+
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/list.command.
|
|
1
|
+
{"version":3,"sources":["commands/list.command.tsx"],"names":[],"mappings":"AAYA,oBAAY,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,oBAAY,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AA0FtD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;EAwEtB,CAAC","file":"list.command.d.ts","sourcesContent":["import { AffectedFilter, Filter, List, Pipeline } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\n\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: wks => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\n default: [] as Attribute[],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }),\n}));\n\n// Component\nexport const ListCommand = wrapper(function ListComponent() {\n const args = useArgs();\n const project = useProject();\n\n // State\n const [workspaces, setWorkspaces] = useState<Workspace[]>();\n\n // Memo\n const attrs = useMemo(() => {\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n return attrs;\n }, [args]);\n\n const data = useMemo(() => {\n return workspaces?.map(wks => buildExtractor(attrs)(wks, args.json ?? false));\n }, [attrs, args, workspaces]);\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n setWorkspaces(workspaces);\n })(), [project, args]);\n\n // Render\n if (!data) {\n return <Text><Spinner /> Loading workspaces</Text>;\n }\n\n return (\n <List\n attrs={attrs}\n data={data}\n json={args.json}\n withoutHeaders={!(args.headers ?? (attrs.length > 1))}\n />\n );\n});\n"]}
|
|
@@ -5,13 +5,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ListCommand = void 0;
|
|
7
7
|
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
|
|
8
10
|
var _jillCommon = require("@jujulego/jill-common");
|
|
9
11
|
|
|
10
|
-
var
|
|
12
|
+
var _ink = require("ink");
|
|
13
|
+
|
|
14
|
+
var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
|
|
15
|
+
|
|
16
|
+
var path = _interopRequireWildcard(require("path"));
|
|
17
|
+
|
|
18
|
+
var _react = require("react");
|
|
11
19
|
|
|
12
20
|
var _slugify = _interopRequireDefault(require("slugify"));
|
|
13
21
|
|
|
14
|
-
var
|
|
22
|
+
var _command = require("../command");
|
|
23
|
+
|
|
24
|
+
var _project = require("../wrappers/project.wrapper");
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
29
|
|
|
16
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
31
|
|
|
@@ -79,173 +93,160 @@ const JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];
|
|
|
79
93
|
const DEFAULT_ATTRIBUTES = ['name'];
|
|
80
94
|
const EXTRACTORS = {
|
|
81
95
|
name: wks => wks.name,
|
|
82
|
-
version:
|
|
83
|
-
root: wks => wks.cwd,
|
|
96
|
+
version: wks => wks.manifest.version || undefined,
|
|
97
|
+
root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',
|
|
84
98
|
slug: wks => (0, _slugify.default)(wks.name)
|
|
85
|
-
}; //
|
|
86
|
-
|
|
87
|
-
class ListCommand extends _jillCommon.ProjectCommand {
|
|
88
|
-
constructor() {
|
|
89
|
-
super(...arguments); // Attributes
|
|
99
|
+
}; // Utils
|
|
90
100
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
101
|
+
function buildExtractor(attrs) {
|
|
102
|
+
return (wks, json) => {
|
|
103
|
+
const data = {};
|
|
94
104
|
|
|
105
|
+
for (const attr of attrs) {
|
|
106
|
+
data[attr] = EXTRACTORS[attr](wks, json);
|
|
107
|
+
}
|
|
95
108
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
return data;
|
|
110
|
+
};
|
|
111
|
+
} // Command
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
const {
|
|
115
|
+
wrapper,
|
|
116
|
+
useArgs
|
|
117
|
+
} = (0, _project.withProject)((0, _command.command)({
|
|
118
|
+
name: ['list', 'ls'],
|
|
119
|
+
description: 'List workspaces',
|
|
120
|
+
builder: yargs => yargs.option('private', {
|
|
121
|
+
type: 'boolean',
|
|
122
|
+
group: 'Filters:',
|
|
123
|
+
desc: 'Print only private workspaces'
|
|
124
|
+
}).option('with-script', {
|
|
125
|
+
type: 'array',
|
|
126
|
+
string: true,
|
|
127
|
+
group: 'Filters:',
|
|
128
|
+
desc: 'Print only workspaces having the given script'
|
|
129
|
+
}).option('affected', {
|
|
130
|
+
alias: 'a',
|
|
131
|
+
type: 'string',
|
|
132
|
+
coerce: rev => rev === '' ? 'master' : rev,
|
|
133
|
+
group: 'Affected:',
|
|
134
|
+
desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
|
|
135
|
+
}).option('affected-rev-sort', {
|
|
136
|
+
type: 'string',
|
|
137
|
+
group: 'Affected:',
|
|
138
|
+
desc: 'Sort applied to git tag / git branch command'
|
|
139
|
+
}).option('affected-rev-fallback', {
|
|
140
|
+
type: 'string',
|
|
141
|
+
default: 'master',
|
|
142
|
+
group: 'Affected:',
|
|
143
|
+
desc: 'Fallback revision, used if no revision matching the given format is found'
|
|
144
|
+
}).option('attrs', {
|
|
145
|
+
type: 'array',
|
|
146
|
+
choices: ['name', 'version', 'root', 'slug'],
|
|
147
|
+
default: [],
|
|
148
|
+
group: 'Format:',
|
|
149
|
+
desc: 'Select printed attributes'
|
|
150
|
+
}).option('headers', {
|
|
151
|
+
type: 'boolean',
|
|
152
|
+
group: 'Format:',
|
|
153
|
+
desc: 'Prints columns headers'
|
|
154
|
+
}).option('long', {
|
|
155
|
+
alias: 'l',
|
|
156
|
+
type: 'boolean',
|
|
157
|
+
group: 'Format:',
|
|
158
|
+
desc: 'Prints name, version and root of all workspaces'
|
|
159
|
+
}).option('json', {
|
|
160
|
+
type: 'boolean',
|
|
161
|
+
group: 'Format:',
|
|
162
|
+
desc: 'Prints data as a JSON array'
|
|
163
|
+
})
|
|
164
|
+
})); // Component
|
|
165
|
+
|
|
166
|
+
const ListCommand = wrapper(function ListComponent() {
|
|
167
|
+
var _a;
|
|
168
|
+
|
|
169
|
+
const args = useArgs();
|
|
170
|
+
const project = (0, _project.useProject)(); // State
|
|
171
|
+
|
|
172
|
+
const [workspaces, setWorkspaces] = (0, _react.useState)(); // Memo
|
|
173
|
+
|
|
174
|
+
const attrs = (0, _react.useMemo)(() => {
|
|
175
|
+
let attrs = args.attrs;
|
|
176
|
+
|
|
177
|
+
if (args.attrs.length === 0) {
|
|
178
|
+
if (args.long) {
|
|
179
|
+
attrs = LONG_ATTRIBUTES;
|
|
180
|
+
} else if (args.json) {
|
|
181
|
+
attrs = JSON_ATTRIBUTES;
|
|
182
|
+
} else {
|
|
183
|
+
attrs = DEFAULT_ATTRIBUTES;
|
|
102
184
|
}
|
|
185
|
+
}
|
|
103
186
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
187
|
+
return attrs;
|
|
188
|
+
}, [args]);
|
|
189
|
+
const data = (0, _react.useMemo)(() => {
|
|
190
|
+
return workspaces === null || workspaces === void 0 ? void 0 : workspaces.map(wks => {
|
|
191
|
+
var _a;
|
|
107
192
|
|
|
108
|
-
|
|
109
|
-
return super.define(y => builder(y).option('private', {
|
|
110
|
-
type: 'boolean',
|
|
111
|
-
group: 'Filters:',
|
|
112
|
-
desc: 'Print only private workspaces'
|
|
113
|
-
}).option('with-script', {
|
|
114
|
-
type: 'array',
|
|
115
|
-
string: true,
|
|
116
|
-
group: 'Filters:',
|
|
117
|
-
desc: 'Print only workspaces having the given script'
|
|
118
|
-
}).option('affected', {
|
|
119
|
-
alias: 'a',
|
|
120
|
-
type: 'string',
|
|
121
|
-
coerce: rev => rev === '' ? 'master' : rev,
|
|
122
|
-
group: 'Affected:',
|
|
123
|
-
desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
|
|
124
|
-
}).option('affected-rev-sort', {
|
|
125
|
-
type: 'string',
|
|
126
|
-
group: 'Affected:',
|
|
127
|
-
desc: 'Sort applied to git tag / git branch command'
|
|
128
|
-
}).option('affected-rev-fallback', {
|
|
129
|
-
type: 'string',
|
|
130
|
-
default: 'master',
|
|
131
|
-
group: 'Affected:',
|
|
132
|
-
desc: 'Fallback revision, used if no revision matching the given format is found'
|
|
133
|
-
}).option('attrs', {
|
|
134
|
-
type: 'array',
|
|
135
|
-
choices: ['name', 'version', 'root', 'slug'],
|
|
136
|
-
default: [],
|
|
137
|
-
group: 'Format:',
|
|
138
|
-
desc: 'Select printed attributes'
|
|
139
|
-
}).option('headers', {
|
|
140
|
-
type: 'boolean',
|
|
141
|
-
group: 'Format:',
|
|
142
|
-
desc: 'Prints columns headers'
|
|
143
|
-
}).option('long', {
|
|
144
|
-
alias: 'l',
|
|
145
|
-
type: 'boolean',
|
|
146
|
-
group: 'Format:',
|
|
147
|
-
desc: 'Prints name, version and root of all workspaces'
|
|
148
|
-
}).option('json', {
|
|
149
|
-
type: 'boolean',
|
|
150
|
-
group: 'Format:',
|
|
151
|
-
desc: 'Prints data as a JSON array'
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
run(args) {
|
|
156
|
-
const _super = Object.create(null, {
|
|
157
|
-
run: {
|
|
158
|
-
get: () => super.run
|
|
159
|
-
}
|
|
193
|
+
return buildExtractor(attrs)(wks, (_a = args.json) !== null && _a !== void 0 ? _a : false);
|
|
160
194
|
});
|
|
195
|
+
}, [attrs, args, workspaces]); // Effects
|
|
161
196
|
|
|
162
|
-
|
|
197
|
+
(0, _react.useEffect)(() => void (() => __awaiter(this, void 0, void 0, function* () {
|
|
198
|
+
var e_1, _b; // Setup pipeline
|
|
163
199
|
|
|
164
|
-
var _b;
|
|
165
200
|
|
|
166
|
-
|
|
167
|
-
yield _super.run.call(this, args); // Setup pipeline
|
|
201
|
+
const pipeline = new _jillCommon.Pipeline();
|
|
168
202
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
|
|
173
|
-
}
|
|
203
|
+
if (args.private !== undefined) {
|
|
204
|
+
pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
|
|
205
|
+
}
|
|
174
206
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
207
|
+
if (args.withScript !== undefined) {
|
|
208
|
+
pipeline.add(_jillCommon.Filter.scripts(args.withScript));
|
|
209
|
+
}
|
|
178
210
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
211
|
+
if (args.affected !== undefined) {
|
|
212
|
+
pipeline.add(new _jillCommon.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
|
|
213
|
+
} // Filter
|
|
182
214
|
|
|
183
215
|
|
|
184
|
-
|
|
216
|
+
const workspaces = [];
|
|
185
217
|
|
|
218
|
+
try {
|
|
219
|
+
for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {
|
|
220
|
+
const wks = _d.value;
|
|
221
|
+
workspaces.push(wks);
|
|
222
|
+
}
|
|
223
|
+
} catch (e_1_1) {
|
|
224
|
+
e_1 = {
|
|
225
|
+
error: e_1_1
|
|
226
|
+
};
|
|
227
|
+
} finally {
|
|
186
228
|
try {
|
|
187
|
-
|
|
188
|
-
const wks = _d.value;
|
|
189
|
-
workspaces.push(wks);
|
|
190
|
-
}
|
|
191
|
-
} catch (e_1_1) {
|
|
192
|
-
e_1 = {
|
|
193
|
-
error: e_1_1
|
|
194
|
-
};
|
|
229
|
+
if (_d && !_d.done && (_b = _c.return)) yield _b.call(_c);
|
|
195
230
|
} finally {
|
|
196
|
-
|
|
197
|
-
if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
|
|
198
|
-
} finally {
|
|
199
|
-
if (e_1) throw e_1.error;
|
|
200
|
-
}
|
|
231
|
+
if (e_1) throw e_1.error;
|
|
201
232
|
}
|
|
233
|
+
}
|
|
202
234
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
let attrs = args.attrs;
|
|
206
|
-
|
|
207
|
-
if (args.attrs.length === 0) {
|
|
208
|
-
if (args.long) {
|
|
209
|
-
attrs = LONG_ATTRIBUTES;
|
|
210
|
-
} else if (args.json) {
|
|
211
|
-
attrs = JSON_ATTRIBUTES;
|
|
212
|
-
} else {
|
|
213
|
-
attrs = DEFAULT_ATTRIBUTES;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false)); // Print data
|
|
218
|
-
|
|
219
|
-
if (args.json) {
|
|
220
|
-
if (process.stdout.isTTY) {
|
|
221
|
-
// Pretty print for ttys
|
|
222
|
-
this.log(JSON.stringify(data, null, 2));
|
|
223
|
-
} else {
|
|
224
|
-
this.log(JSON.stringify(data));
|
|
225
|
-
}
|
|
226
|
-
} else {
|
|
227
|
-
const list = new _jillCommon.CliList();
|
|
228
|
-
|
|
229
|
-
if ((_b = args.headers) !== null && _b !== void 0 ? _b : attrs.length > 1) {
|
|
230
|
-
list.setHeaders(attrs);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
for (const d of data) {
|
|
234
|
-
if (d.root) {
|
|
235
|
-
d.root = _path.default.relative(process.cwd(), d.root) || '.';
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
list.add(attrs.map(attr => d[attr] || ''));
|
|
239
|
-
}
|
|
235
|
+
setWorkspaces(workspaces);
|
|
236
|
+
}))(), [project, args]); // Render
|
|
240
237
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
238
|
+
if (!data) {
|
|
239
|
+
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
240
|
+
children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {}), " Loading workspaces"]
|
|
245
241
|
});
|
|
246
242
|
}
|
|
247
243
|
|
|
248
|
-
|
|
249
|
-
|
|
244
|
+
return (0, _jsxRuntime.jsx)(_jillCommon.List, {
|
|
245
|
+
attrs: attrs,
|
|
246
|
+
data: data,
|
|
247
|
+
json: args.json,
|
|
248
|
+
withoutHeaders: !((_a = args.headers) !== null && _a !== void 0 ? _a : attrs.length > 1)
|
|
249
|
+
});
|
|
250
|
+
});
|
|
250
251
|
exports.ListCommand = ListCommand;
|
|
251
252
|
//# sourceMappingURL=list.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/list.command.ts","commands/list.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","json","manifest","undefined","chalk","grey","root","cwd","slug","ListCommand","ProjectCommand","constructor","arguments","description","buildExtractor","attrs","data","attr","define","builder","y","option","type","group","desc","string","alias","coerce","rev","default","choices","run","args","_super","Object","create","get","e_1","_a","_b","pipeline","Pipeline","private","add","Filter","privateWorkspace","scripts","affected","AffectedFilter","workspaces","_c","filter","project","_d","push","e_1_1","error","return","spinner","stop","length","long","map","process","stdout","isTTY","log","JSON","stringify","list","CliList","headers","setHeaders","path","relative","lines"],"mappings":"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","file":"list.command.js","sourcesContent":["import { AffectedFilter, Arguments, Builder, CliList, Filter, Pipeline, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport chalk from 'chalk';\nimport slugify from 'slugify';\nimport path from 'path';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\nexport interface ListArgs extends ProjectArgs {\n private: boolean | undefined;\n 'with-script': string[] | undefined;\n\n affected: string | undefined;\n 'affected-rev-sort': string | undefined;\n 'affected-rev-fallback': string;\n\n attrs: Attribute[];\n headers: boolean | undefined;\n long: boolean | undefined;\n json: boolean | undefined;\n}\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Command\nexport class ListCommand extends ProjectCommand<ListArgs> {\n // Attributes\n readonly name = ['list', 'ls'];\n readonly description = 'List workspaces';\n\n // Methods\n private buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n }\n\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs> {\n return super.define(y => builder(y)\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\n default: [] as Attribute[],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n );\n }\n\n protected async run(args: Arguments<ListArgs>): Promise<number | void> {\n await super.run(args);\n\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args['with-script'] !== undefined) {\n pipeline.add(Filter.scripts(args['with-script']));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args['affected-rev-fallback'],\n args['affected-rev-sort']\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n this.spinner.stop();\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false));\n\n // Print data\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n this.log(JSON.stringify(data, null, 2));\n } else {\n this.log(JSON.stringify(data));\n }\n } else {\n const list = new CliList();\n\n if (args.headers ?? (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n\n list.add(attrs.map(attr => d[attr] || ''));\n }\n\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { AffectedFilter, CliList, Filter, Pipeline, ProjectCommand } from '@jujulego/jill-common';\nimport chalk from 'chalk';\nimport slugify from 'slugify';\nimport path from 'path';\n// Constants\nconst LONG_ATTRIBUTES = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES = ['name'];\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n// Command\nexport class ListCommand extends ProjectCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = ['list', 'ls'];\n this.description = 'List workspaces';\n }\n // Methods\n buildExtractor(attrs) {\n return (wks, json) => {\n const data = {};\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n return data;\n };\n }\n define(builder) {\n return super.define(y => builder(y)\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\n default: [],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }));\n }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var e_1, _a;\n var _b;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Setup pipeline\n const pipeline = new Pipeline();\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args['with-script'] !== undefined) {\n pipeline.add(Filter.scripts(args['with-script']));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));\n }\n // Filter\n const workspaces = [];\n try {\n for (var _c = __asyncValues(pipeline.filter(this.project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n workspaces.push(wks);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spinner.stop();\n // Build data\n let attrs = args.attrs;\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n }\n else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n }\n else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false));\n // Print data\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n this.log(JSON.stringify(data, null, 2));\n }\n else {\n this.log(JSON.stringify(data));\n }\n }\n else {\n const list = new CliList();\n if ((_b = args.headers) !== null && _b !== void 0 ? _b : (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n list.add(attrs.map(attr => d[attr] || ''));\n }\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n });\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["commands/list.command.js","commands/list.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","manifest","undefined","root","json","cwd","path","relative","process","slug","buildExtractor","attrs","data","attr","wrapper","useArgs","description","builder","yargs","option","type","group","desc","string","alias","coerce","rev","default","choices","ListCommand","ListComponent","_a","args","project","workspaces","setWorkspaces","length","long","map","e_1","_b","pipeline","Pipeline","private","add","Filter","privateWorkspace","withScript","scripts","affected","AffectedFilter","affectedRevFallback","affectedRevSort","_c","filter","_d","push","e_1_1","error","return","Text","children","Spinner","List","withoutHeaders","headers"],"mappings":"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","file":"list.command.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AffectedFilter, Filter, List, Pipeline } from '@jujulego/jill-common';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n// Constants\nconst LONG_ATTRIBUTES = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES = ['name'];\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: wks => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n// Utils\nfunction buildExtractor(attrs) {\n return (wks, json) => {\n const data = {};\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n return data;\n };\n}\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\n default: [],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }),\n}));\n// Component\nexport const ListCommand = wrapper(function ListComponent() {\n var _a;\n const args = useArgs();\n const project = useProject();\n // State\n const [workspaces, setWorkspaces] = useState();\n // Memo\n const attrs = useMemo(() => {\n let attrs = args.attrs;\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n }\n else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n }\n else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n return attrs;\n }, [args]);\n const data = useMemo(() => {\n return workspaces === null || workspaces === void 0 ? void 0 : workspaces.map(wks => { var _a; return buildExtractor(attrs)(wks, (_a = args.json) !== null && _a !== void 0 ? _a : false); });\n }, [attrs, args, workspaces]);\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n var e_1, _b;\n // Setup pipeline\n const pipeline = new Pipeline();\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(args.withScript));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));\n }\n // Filter\n const workspaces = [];\n try {\n for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n workspaces.push(wks);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) yield _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n setWorkspaces(workspaces);\n }))(), [project, args]);\n // Render\n if (!data) {\n return _jsxs(Text, { children: [_jsx(Spinner, {}), \" Loading workspaces\"] });\n }\n return (_jsx(List, { attrs: attrs, data: data, json: args.json, withoutHeaders: !((_a = args.headers) !== null && _a !== void 0 ? _a : (attrs.length > 1)) }));\n});","import { AffectedFilter, Filter, List, Pipeline } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\n\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: wks => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\n default: [] as Attribute[],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }),\n}));\n\n// Component\nexport const ListCommand = wrapper(function ListComponent() {\n const args = useArgs();\n const project = useProject();\n\n // State\n const [workspaces, setWorkspaces] = useState<Workspace[]>();\n\n // Memo\n const attrs = useMemo(() => {\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n return attrs;\n }, [args]);\n\n const data = useMemo(() => {\n return workspaces?.map(wks => buildExtractor(attrs)(wks, args.json ?? false));\n }, [attrs, args, workspaces]);\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n setWorkspaces(workspaces);\n })(), [project, args]);\n\n // Render\n if (!data) {\n return <Text><Spinner /> Loading workspaces</Text>;\n }\n\n return (\n <List\n attrs={attrs}\n data={data}\n json={args.json}\n withoutHeaders={!(args.headers ?? (attrs.length > 1))}\n />\n );\n});\n"]}
|