@jujulego/jill 2.0.0-beta.1 → 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/commands/each.command.d.ts.map +1 -1
- package/dist/commands/each.command.js +2 -4
- package/dist/commands/each.command.js.map +1 -1
- package/dist/commands/list.command.d.ts.map +1 -1
- package/dist/commands/list.command.js +2 -4
- package/dist/commands/list.command.js.map +1 -1
- package/dist/commands/run.command.d.ts.map +1 -1
- package/dist/commands/run.command.js +3 -3
- package/dist/commands/run.command.js.map +1 -1
- package/dist/components/WorkspaceTree.d.ts.map +1 -1
- package/dist/components/WorkspaceTree.js +5 -7
- package/dist/components/WorkspaceTree.js.map +1 -1
- package/dist/wrapper.d.ts.map +1 -1
- package/dist/wrapper.js +1 -1
- package/dist/wrapper.js.map +1 -1
- package/dist/wrappers/workspace.wrapper.d.ts.map +1 -1
- package/dist/wrappers/workspace.wrapper.js +1 -1
- package/dist/wrappers/workspace.wrapper.js.map +1 -1
- package/package.json +15 -13
- package/dist/components/List.d.ts +0 -9
- package/dist/components/List.d.ts.map +0 -1
- package/dist/components/List.js +0 -57
- package/dist/components/List.js.map +0 -1
- package/dist/components/TaskSetSpinner.d.ts +0 -6
- package/dist/components/TaskSetSpinner.d.ts.map +0 -1
- package/dist/components/TaskSetSpinner.js +0 -41
- package/dist/components/TaskSetSpinner.js.map +0 -1
- package/dist/components/TaskSpinner.d.ts +0 -6
- package/dist/components/TaskSpinner.d.ts.map +0 -1
- package/dist/components/TaskSpinner.js +0 -72
- package/dist/components/TaskSpinner.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/each.command.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"sources":["commands/each.command.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgDjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;EA+CtB,CAAC","file":"each.command.d.ts","sourcesContent":["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"]}
|
|
@@ -17,8 +17,6 @@ var _react = require("react");
|
|
|
17
17
|
|
|
18
18
|
var _command = require("../command");
|
|
19
19
|
|
|
20
|
-
var _TaskSetSpinner = require("../components/TaskSetSpinner");
|
|
21
|
-
|
|
22
20
|
var _project = require("../wrappers/project.wrapper");
|
|
23
21
|
|
|
24
22
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
@@ -168,9 +166,9 @@ const EachCommand = wrapper(function EachCommand() {
|
|
|
168
166
|
if (result.failed) {
|
|
169
167
|
exit(new Error('Some tasks has failed'));
|
|
170
168
|
}
|
|
171
|
-
}))(), [args]); // Render
|
|
169
|
+
}))(), [args, project, exit]); // Render
|
|
172
170
|
|
|
173
|
-
return (0, _jsxRuntime.jsx)(
|
|
171
|
+
return (0, _jsxRuntime.jsx)(_jillCommon.TaskSetSpinner, {
|
|
174
172
|
taskSet: tasks.current
|
|
175
173
|
});
|
|
176
174
|
});
|
|
@@ -1 +1 @@
|
|
|
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":"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","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 } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { useApp } from 'ink';\nimport { useEffect, useRef } from 'react';\nimport { command } from '../command';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\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]);\n // Render\n return (_jsx(TaskSetSpinner, { taskSet: tasks.current }));\n});","import { AffectedFilter, Filter, Pipeline } 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 { TaskSetSpinner } from '../components/TaskSetSpinner';\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]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/list.command.tsx"],"names":[],"mappings":"
|
|
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"]}
|
|
@@ -23,8 +23,6 @@ var _command = require("../command");
|
|
|
23
23
|
|
|
24
24
|
var _project = require("../wrappers/project.wrapper");
|
|
25
25
|
|
|
26
|
-
var _List = require("../components/List");
|
|
27
|
-
|
|
28
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); }
|
|
29
27
|
|
|
30
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; }
|
|
@@ -235,7 +233,7 @@ const ListCommand = wrapper(function ListComponent() {
|
|
|
235
233
|
}
|
|
236
234
|
|
|
237
235
|
setWorkspaces(workspaces);
|
|
238
|
-
}))(), [args]); // Render
|
|
236
|
+
}))(), [project, args]); // Render
|
|
239
237
|
|
|
240
238
|
if (!data) {
|
|
241
239
|
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
@@ -243,7 +241,7 @@ const ListCommand = wrapper(function ListComponent() {
|
|
|
243
241
|
});
|
|
244
242
|
}
|
|
245
243
|
|
|
246
|
-
return (0, _jsxRuntime.jsx)(
|
|
244
|
+
return (0, _jsxRuntime.jsx)(_jillCommon.List, {
|
|
247
245
|
attrs: attrs,
|
|
248
246
|
data: data,
|
|
249
247
|
json: args.json,
|
|
@@ -1 +1 @@
|
|
|
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, 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';\nimport { List } from '../components/List';\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 }))(), [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, 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';\nimport { List } from '../components/List';\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 })(), [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"]}
|
|
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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/run.command.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["commands/run.command.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAwBjE,eAAO,MAAM,UAAU;;;;;;;;;;EAqBrB,CAAC","file":"run.command.d.ts","sourcesContent":["import { TaskSetSpinner } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\n\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\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})));\n\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n const task = await wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n\n tasks.current.add(task);\n tasks.current.start();\n })(), [script, depsMode, rest, wks]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
|
|
@@ -7,6 +7,8 @@ exports.RunCommand = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
|
|
10
|
+
var _jillCommon = require("@jujulego/jill-common");
|
|
11
|
+
|
|
10
12
|
var _jillCore = require("@jujulego/jill-core");
|
|
11
13
|
|
|
12
14
|
var _react = require("react");
|
|
@@ -17,8 +19,6 @@ var _project = require("../wrappers/project.wrapper");
|
|
|
17
19
|
|
|
18
20
|
var _workspace = require("../wrappers/workspace.wrapper");
|
|
19
21
|
|
|
20
|
-
var _TaskSetSpinner = require("../components/TaskSetSpinner");
|
|
21
|
-
|
|
22
22
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
23
23
|
function adopt(value) {
|
|
24
24
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -86,7 +86,7 @@ const RunCommand = wrapper(function InfoCommand() {
|
|
|
86
86
|
tasks.current.start();
|
|
87
87
|
}))(), [script, depsMode, rest, wks]); // Render
|
|
88
88
|
|
|
89
|
-
return (0, _jsxRuntime.jsx)(
|
|
89
|
+
return (0, _jsxRuntime.jsx)(_jillCommon.TaskSetSpinner, {
|
|
90
90
|
taskSet: tasks.current
|
|
91
91
|
});
|
|
92
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/run.command.js","commands/run.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","wrapper","useArgs","name","description","builder","yargs","positional","type","demandOption","option","choice","default","desc","RunCommand","InfoCommand","script","depsMode","rest","wks","tasks","TaskSet","task","run","map","arg","toString","buildDeps","current","add","start","TaskSetSpinner","taskSet"],"mappings":";;;;;;;AASA;;ACTA;;AACA;;AAEA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["commands/run.command.js","commands/run.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","wrapper","useArgs","name","description","builder","yargs","positional","type","demandOption","option","choice","default","desc","RunCommand","InfoCommand","script","depsMode","rest","wks","tasks","TaskSet","task","run","map","arg","toString","buildDeps","current","add","start","TaskSetSpinner","taskSet"],"mappings":"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","file":"run.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};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TaskSetSpinner } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\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})));\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n // Refs\n const tasks = useRef(new TaskSet());\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n const task = yield wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n tasks.current.add(task);\n tasks.current.start();\n }))(), [script, depsMode, rest, wks]);\n // Render\n return (_jsx(TaskSetSpinner, { taskSet: tasks.current }));\n});","import { TaskSetSpinner } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\n\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\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})));\n\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n const task = await wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n\n tasks.current.add(task);\n tasks.current.start();\n })(), [script, depsMode, rest, wks]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/WorkspaceTree.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["components/WorkspaceTree.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,YAAY,EAAuB,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAMD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAuChD,CAAC","file":"WorkspaceTree.d.ts","sourcesContent":["import { WorkspaceName } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Newline, Text, TextProps } from 'ink';\nimport { FC, ReactElement, useEffect, useState } from 'react';\n\n// Types\nexport interface WorkspaceTreeProps {\n workspace: Workspace;\n dev?: boolean;\n level?: ReactElement;\n}\n\n// Utils\nconst style = (dev: boolean): TextProps => ({ color: dev ? 'blue' : '' });\n\n// Component\nexport const WorkspaceTree: FC<WorkspaceTreeProps> = (props) => {\n const { workspace: wks, dev = false, level = '' } = props;\n\n // State\n const [deps, setDeps] = useState<[Workspace, boolean][]>([]);\n\n // Effects\n useEffect(() => void (async () => {\n const deps: [Workspace, boolean][] = [];\n\n for await (const dep of wks.dependencies()) {\n deps.push([dep, dev]);\n }\n\n for await (const dep of wks.devDependencies()) {\n deps.push([dep, true]);\n }\n\n setDeps(deps);\n })(), [dev, wks]);\n\n // Render\n return (\n <Text>\n <WorkspaceName {...style(dev)} workspace={wks} />\n <Newline />\n\n { deps.map(([dep, isDev], idx) => (\n <Text key={dep.name}>\n { level }<Text {...style(dev)}>{ idx === deps.length - 1 ? '└' : '├'}─{' '}</Text>\n <WorkspaceTree\n workspace={dep}\n dev={isDev}\n level={<>{ level }<Text {...style(dev)}>{ idx === deps.length - 1 ? ' ' : '│' }{' '}</Text></>}\n />\n </Text>\n )) }\n </Text>\n );\n};\n"]}
|
|
@@ -7,6 +7,8 @@ exports.WorkspaceTree = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
|
|
10
|
+
var _jillCommon = require("@jujulego/jill-common");
|
|
11
|
+
|
|
10
12
|
var _ink = require("ink");
|
|
11
13
|
|
|
12
14
|
var _react = require("react");
|
|
@@ -124,15 +126,11 @@ const WorkspaceTree = props => {
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
setDeps(deps);
|
|
127
|
-
}))(), [wks]); // Render
|
|
129
|
+
}))(), [dev, wks]); // Render
|
|
128
130
|
|
|
129
131
|
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
130
|
-
children: [(0, _jsxRuntime.jsx)(
|
|
131
|
-
|
|
132
|
-
})), wks.version && (0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
133
|
-
color: "grey"
|
|
134
|
-
}, {
|
|
135
|
-
children: ["@", wks.version]
|
|
132
|
+
children: [(0, _jsxRuntime.jsx)(_jillCommon.WorkspaceName, Object.assign({}, style(dev), {
|
|
133
|
+
workspace: wks
|
|
136
134
|
})), (0, _jsxRuntime.jsx)(_ink.Newline, {}), deps.map(([dep, isDev], idx) => (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
137
135
|
children: [level, (0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({}, style(dev), {
|
|
138
136
|
children: [idx === deps.length - 1 ? '└' : '├', "\u2500", ' ']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/WorkspaceTree.js","components/WorkspaceTree.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","style","dev","color","WorkspaceTree","props","workspace","wks","level","deps","setDeps","e_1","_a","e_2","_b","_c","dependencies","_d","dep","push","e_1_1","error","return","_e","devDependencies","_f","e_2_1","Text","children","Object","assign","name","version","Newline","map","isDev","idx","length","_Fragment"],"mappings":"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","file":"WorkspaceTree.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, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Newline, Text } from 'ink';\nimport { useEffect, useState } from 'react';\n// Utils\nconst style = (dev) => ({ color: dev ? 'blue' : '' });\n// Component\nexport const WorkspaceTree = (props) => {\n const { workspace: wks, dev = false, level = '' } = props;\n // State\n const [deps, setDeps] = useState([]);\n // Effects\n useEffect(() => void (() => __awaiter(void 0, void 0, void 0, function* () {\n var e_1, _a, e_2, _b;\n const deps = [];\n try {\n for (var _c = __asyncValues(wks.dependencies()), _d; _d = yield _c.next(), !_d.done;) {\n const dep = _d.value;\n deps.push([dep, dev]);\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 try {\n for (var _e = __asyncValues(wks.devDependencies()), _f; _f = yield _e.next(), !_f.done;) {\n const dep = _f.value;\n deps.push([dep, true]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) yield _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n setDeps(deps);\n }))(), [wks]);\n // Render\n return (_jsxs(Text, { children: [_jsx(Text, Object.assign({}, style(dev), { children: wks.name })), wks.version && (_jsxs(Text, Object.assign({ color: \"grey\" }, { children: [\"@\", wks.version] }))), _jsx(Newline, {}), deps.map(([dep, isDev], idx) => (_jsxs(Text, { children: [level, _jsxs(Text, Object.assign({}, style(dev), { children: [idx === deps.length - 1 ? '└' : '├', \"\\u2500\", ' '] })), _jsx(WorkspaceTree, { workspace: dep, dev: isDev, level: _jsxs(_Fragment, { children: [level, _jsxs(Text, Object.assign({}, style(dev), { children: [idx === deps.length - 1 ? ' ' : '│', ' '] }))] }) })] }, dep.name)))] }));\n};","import { Workspace } from '@jujulego/jill-core';\nimport { Newline, Text, TextProps } from 'ink';\nimport { FC, ReactElement, useEffect, useState } from 'react';\n\n// Types\nexport interface WorkspaceTreeProps {\n workspace: Workspace;\n dev?: boolean;\n level?: ReactElement;\n}\n\n// Utils\nconst style = (dev: boolean): TextProps => ({ color: dev ? 'blue' : '' });\n\n// Component\nexport const WorkspaceTree: FC<WorkspaceTreeProps> = (props) => {\n const { workspace: wks, dev = false, level = '' } = props;\n\n // State\n const [deps, setDeps] = useState<[Workspace, boolean][]>([]);\n\n // Effects\n useEffect(() => void (async () => {\n const deps: [Workspace, boolean][] = [];\n\n for await (const dep of wks.dependencies()) {\n deps.push([dep, dev]);\n }\n\n for await (const dep of wks.devDependencies()) {\n deps.push([dep, true]);\n }\n\n setDeps(deps);\n })(), [wks]);\n\n // Render\n return (\n <Text>\n <Text {...style(dev)}>{ wks.name }</Text>\n { wks.version && (<Text color=\"grey\">@{ wks.version }</Text>) }\n <Newline />\n\n { deps.map(([dep, isDev], idx) => (\n <Text key={dep.name}>\n { level }<Text {...style(dev)}>{ idx === deps.length - 1 ? '└' : '├'}─{' '}</Text>\n <WorkspaceTree\n workspace={dep}\n dev={isDev}\n level={<>{ level }<Text {...style(dev)}>{ idx === deps.length - 1 ? ' ' : '│' }{' '}</Text></>}\n />\n </Text>\n )) }\n </Text>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["components/WorkspaceTree.js","components/WorkspaceTree.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","style","dev","color","WorkspaceTree","props","workspace","wks","level","deps","setDeps","e_1","_a","e_2","_b","_c","dependencies","_d","dep","push","e_1_1","error","return","_e","devDependencies","_f","e_2_1","Text","children","WorkspaceName","Object","assign","Newline","map","isDev","idx","length","_Fragment","name"],"mappings":"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","file":"WorkspaceTree.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, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { WorkspaceName } from '@jujulego/jill-common';\nimport { Newline, Text } from 'ink';\nimport { useEffect, useState } from 'react';\n// Utils\nconst style = (dev) => ({ color: dev ? 'blue' : '' });\n// Component\nexport const WorkspaceTree = (props) => {\n const { workspace: wks, dev = false, level = '' } = props;\n // State\n const [deps, setDeps] = useState([]);\n // Effects\n useEffect(() => void (() => __awaiter(void 0, void 0, void 0, function* () {\n var e_1, _a, e_2, _b;\n const deps = [];\n try {\n for (var _c = __asyncValues(wks.dependencies()), _d; _d = yield _c.next(), !_d.done;) {\n const dep = _d.value;\n deps.push([dep, dev]);\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 try {\n for (var _e = __asyncValues(wks.devDependencies()), _f; _f = yield _e.next(), !_f.done;) {\n const dep = _f.value;\n deps.push([dep, true]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) yield _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n setDeps(deps);\n }))(), [dev, wks]);\n // Render\n return (_jsxs(Text, { children: [_jsx(WorkspaceName, Object.assign({}, style(dev), { workspace: wks })), _jsx(Newline, {}), deps.map(([dep, isDev], idx) => (_jsxs(Text, { children: [level, _jsxs(Text, Object.assign({}, style(dev), { children: [idx === deps.length - 1 ? '└' : '├', \"\\u2500\", ' '] })), _jsx(WorkspaceTree, { workspace: dep, dev: isDev, level: _jsxs(_Fragment, { children: [level, _jsxs(Text, Object.assign({}, style(dev), { children: [idx === deps.length - 1 ? ' ' : '│', ' '] }))] }) })] }, dep.name)))] }));\n};","import { WorkspaceName } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Newline, Text, TextProps } from 'ink';\nimport { FC, ReactElement, useEffect, useState } from 'react';\n\n// Types\nexport interface WorkspaceTreeProps {\n workspace: Workspace;\n dev?: boolean;\n level?: ReactElement;\n}\n\n// Utils\nconst style = (dev: boolean): TextProps => ({ color: dev ? 'blue' : '' });\n\n// Component\nexport const WorkspaceTree: FC<WorkspaceTreeProps> = (props) => {\n const { workspace: wks, dev = false, level = '' } = props;\n\n // State\n const [deps, setDeps] = useState<[Workspace, boolean][]>([]);\n\n // Effects\n useEffect(() => void (async () => {\n const deps: [Workspace, boolean][] = [];\n\n for await (const dep of wks.dependencies()) {\n deps.push([dep, dev]);\n }\n\n for await (const dep of wks.devDependencies()) {\n deps.push([dep, true]);\n }\n\n setDeps(deps);\n })(), [dev, wks]);\n\n // Render\n return (\n <Text>\n <WorkspaceName {...style(dev)} workspace={wks} />\n <Newline />\n\n { deps.map(([dep, isDev], idx) => (\n <Text key={dep.name}>\n { level }<Text {...style(dev)}>{ idx === deps.length - 1 ? '└' : '├'}─{' '}</Text>\n <WorkspaceTree\n workspace={dep}\n dev={isDev}\n level={<>{ level }<Text {...style(dev)}>{ idx === deps.length - 1 ? ' ' : '│' }{' '}</Text></>}\n />\n </Text>\n )) }\n </Text>\n );\n};\n"]}
|
package/dist/wrapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAW,gBAAgB,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3G,oBAAY,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC;AAGnH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAoB3H","file":"wrapper.d.ts","sourcesContent":["import { FC, ReactElement } from 'react';\n\nimport { BuilderWrapper, Command, CommandComponent, useArgs, UseArgsHook } from './application.context';\nimport { CommandUtils } from './command';\n\n// Types\nexport type CommandWrapper<A> = <Args>(utils: CommandUtils<Args>) => CommandUtils<Omit<Args, keyof A> & A>;\nexport type WrapperComponent<A> = <Args>(useArgs: UseArgsHook<A>, Wrapped: CommandComponent<Args>) => ReactElement;\n\n// Wrapper generator\nexport function commandWrapper<A>(name: string, builder: BuilderWrapper<A>, wrapper: WrapperComponent<A>): CommandWrapper<A> {\n return <Args>(utils: CommandUtils<Args>): CommandUtils<Omit<Args, keyof A> & A> => ({\n useArgs: () => useArgs<Args & A>(),\n wrapper: (Component: FC): CommandComponent<Omit<Args, keyof A> & A> => {\n const Wrapped = utils.wrapper(Component);\n\n // Update builder\n const command: Command<Omit<Args, keyof A> & A> = {\n ...Wrapped.command,\n builder: (yargs) => builder(Wrapped.command.builder(yargs))\n };\n\n // Component wrapper\n const Wrapper: FC = () => wrapper(
|
|
1
|
+
{"version":3,"sources":["wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAW,gBAAgB,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3G,oBAAY,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC;AAGnH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAoB3H","file":"wrapper.d.ts","sourcesContent":["import { FC, ReactElement } from 'react';\n\nimport { BuilderWrapper, Command, CommandComponent, useArgs, UseArgsHook } from './application.context';\nimport { CommandUtils } from './command';\n\n// Types\nexport type CommandWrapper<A> = <Args>(utils: CommandUtils<Args>) => CommandUtils<Omit<Args, keyof A> & A>;\nexport type WrapperComponent<A> = <Args>(useArgs: UseArgsHook<A>, Wrapped: CommandComponent<Args>) => ReactElement;\n\n// Wrapper generator\nexport function commandWrapper<A>(name: string, builder: BuilderWrapper<A>, wrapper: WrapperComponent<A>): CommandWrapper<A> {\n return <Args>(utils: CommandUtils<Args>): CommandUtils<Omit<Args, keyof A> & A> => ({\n useArgs: () => useArgs<Args & A>(),\n wrapper: (Component: FC): CommandComponent<Omit<Args, keyof A> & A> => {\n const Wrapped = utils.wrapper(Component);\n\n // Update builder\n const command: Command<Omit<Args, keyof A> & A> = {\n ...Wrapped.command,\n builder: (yargs) => builder(Wrapped.command.builder(yargs))\n };\n\n // Component wrapper\n const Wrapper: FC = () => wrapper(useArgs, Wrapped);\n\n Wrapper.displayName = `${name}(${Wrapped.displayName || Wrapped.name})`;\n\n return Object.assign(Wrapper, { command });\n },\n });\n}\n"]}
|
package/dist/wrapper.js
CHANGED
|
@@ -18,7 +18,7 @@ function commandWrapper(name, builder, wrapper) {
|
|
|
18
18
|
builder: yargs => builder(Wrapped.command.builder(yargs))
|
|
19
19
|
}); // Component wrapper
|
|
20
20
|
|
|
21
|
-
const Wrapper = () => wrapper(
|
|
21
|
+
const Wrapper = () => wrapper(_application.useArgs, Wrapped);
|
|
22
22
|
|
|
23
23
|
Wrapper.displayName = `${name}(${Wrapped.displayName || Wrapped.name})`;
|
|
24
24
|
return Object.assign(Wrapper, {
|
package/dist/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["wrapper.ts"],"names":["commandWrapper","name","builder","wrapper","utils","useArgs","Component","Wrapped","command","Object","assign","yargs","Wrapper","displayName"],"mappings":";;;;;;;AAEA;;AAOA;AACM,SAAUA,cAAV,CAA4BC,IAA5B,EAA0CC,OAA1C,EAAsEC,OAAtE,EAAkG;AACtG,SAAcC,KAAP,KAA6E;AAClFC,IAAAA,OAAO,EAAE,MAAM,2BADmE;AAElFF,IAAAA,OAAO,EAAGG,SAAD,IAA6D;AACpE,YAAMC,OAAO,GAAGH,KAAK,CAACD,OAAN,CAAcG,SAAd,CAAhB,CADoE,CAGpE;;AACA,YAAME,OAAO,GAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACRH,OAAO,CAACC,OADA,CAAA,EACO;AAClBN,QAAAA,OAAO,EAAGS,KAAD,IAAWT,OAAO,CAACK,OAAO,CAACC,OAAR,CAAgBN,OAAhB,CAAwBS,KAAxB,CAAD;AADT,OADP,CAAb,CAJoE,CASpE;;AACA,YAAMC,OAAO,GAAO,MAAMT,OAAO,
|
|
1
|
+
{"version":3,"sources":["wrapper.ts"],"names":["commandWrapper","name","builder","wrapper","utils","useArgs","Component","Wrapped","command","Object","assign","yargs","Wrapper","displayName"],"mappings":";;;;;;;AAEA;;AAOA;AACM,SAAUA,cAAV,CAA4BC,IAA5B,EAA0CC,OAA1C,EAAsEC,OAAtE,EAAkG;AACtG,SAAcC,KAAP,KAA6E;AAClFC,IAAAA,OAAO,EAAE,MAAM,2BADmE;AAElFF,IAAAA,OAAO,EAAGG,SAAD,IAA6D;AACpE,YAAMC,OAAO,GAAGH,KAAK,CAACD,OAAN,CAAcG,SAAd,CAAhB,CADoE,CAGpE;;AACA,YAAME,OAAO,GAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,CAAA,EAAA,EACRH,OAAO,CAACC,OADA,CAAA,EACO;AAClBN,QAAAA,OAAO,EAAGS,KAAD,IAAWT,OAAO,CAACK,OAAO,CAACC,OAAR,CAAgBN,OAAhB,CAAwBS,KAAxB,CAAD;AADT,OADP,CAAb,CAJoE,CASpE;;AACA,YAAMC,OAAO,GAAO,MAAMT,OAAO,CAACE,oBAAD,EAAUE,OAAV,CAAjC;;AAEAK,MAAAA,OAAO,CAACC,WAAR,GAAsB,GAAGZ,IAAI,IAAIM,OAAO,CAACM,WAAR,IAAuBN,OAAO,CAACN,IAAI,GAApE;AAEA,aAAOQ,MAAM,CAACC,MAAP,CAAcE,OAAd,EAAuB;AAAEJ,QAAAA;AAAF,OAAvB,CAAP;AACD;AAjBiF,GAA7E,CAAP;AAmBD","file":"wrapper.js","sourcesContent":["import { FC, ReactElement } from 'react';\n\nimport { BuilderWrapper, Command, CommandComponent, useArgs, UseArgsHook } from './application.context';\nimport { CommandUtils } from './command';\n\n// Types\nexport type CommandWrapper<A> = <Args>(utils: CommandUtils<Args>) => CommandUtils<Omit<Args, keyof A> & A>;\nexport type WrapperComponent<A> = <Args>(useArgs: UseArgsHook<A>, Wrapped: CommandComponent<Args>) => ReactElement;\n\n// Wrapper generator\nexport function commandWrapper<A>(name: string, builder: BuilderWrapper<A>, wrapper: WrapperComponent<A>): CommandWrapper<A> {\n return <Args>(utils: CommandUtils<Args>): CommandUtils<Omit<Args, keyof A> & A> => ({\n useArgs: () => useArgs<Args & A>(),\n wrapper: (Component: FC): CommandComponent<Omit<Args, keyof A> & A> => {\n const Wrapped = utils.wrapper(Component);\n\n // Update builder\n const command: Command<Omit<Args, keyof A> & A> = {\n ...Wrapped.command,\n builder: (yargs) => builder(Wrapped.command.builder(yargs))\n };\n\n // Component wrapper\n const Wrapper: FC = () => wrapper(useArgs, Wrapped);\n\n Wrapper.displayName = `${name}(${Wrapped.displayName || Wrapped.name})`;\n\n return Object.assign(Wrapper, { command });\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["wrappers/workspace.wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAahD,wBAAgB,YAAY,IAAI,SAAS,CAQxC;AAGD,eAAO,MAAM,aAAa;;EAmCzB,CAAC","file":"workspace.wrapper.d.ts","sourcesContent":["import { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport { createContext, useContext, useEffect, useState } from 'react';\n\nimport { commandWrapper } from '../wrapper';\nimport { useProject } from './project.wrapper';\nimport logSymbols from 'log-symbols';\n\n// Context\nconst WorkspaceContext = createContext<Workspace | null>(null);\n\n// Hooks\nexport function useWorkspace(): Workspace {\n const wks = useContext(WorkspaceContext);\n\n if (!wks) {\n throw new Error('To use the useWorkspace hook you must wrap your command with the withWorkspace wrapper');\n }\n\n return wks;\n}\n\n// Wrapper\nexport const withWorkspace = commandWrapper(\n 'withWorkspace',\n (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n }),\n (useArgs, Wrapped) => {\n const { workspace } = useArgs();\n const project = useProject();\n\n // State\n const [wks, setWks] = useState<Workspace | null>();\n\n // Effects\n useEffect(() => void (async () => {\n setWks(await (workspace ? project.workspace(workspace) : project.currentWorkspace()));\n })(), [workspace]);\n\n // Render\n if (wks === undefined) {\n return <Text><Spinner /> Loading
|
|
1
|
+
{"version":3,"sources":["wrappers/workspace.wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAahD,wBAAgB,YAAY,IAAI,SAAS,CAQxC;AAGD,eAAO,MAAM,aAAa;;EAmCzB,CAAC","file":"workspace.wrapper.d.ts","sourcesContent":["import { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport { createContext, useContext, useEffect, useState } from 'react';\n\nimport { commandWrapper } from '../wrapper';\nimport { useProject } from './project.wrapper';\nimport logSymbols from 'log-symbols';\n\n// Context\nconst WorkspaceContext = createContext<Workspace | null>(null);\n\n// Hooks\nexport function useWorkspace(): Workspace {\n const wks = useContext(WorkspaceContext);\n\n if (!wks) {\n throw new Error('To use the useWorkspace hook you must wrap your command with the withWorkspace wrapper');\n }\n\n return wks;\n}\n\n// Wrapper\nexport const withWorkspace = commandWrapper(\n 'withWorkspace',\n (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n }),\n (useArgs, Wrapped) => {\n const { workspace } = useArgs();\n const project = useProject();\n\n // State\n const [wks, setWks] = useState<Workspace | null>();\n\n // Effects\n useEffect(() => void (async () => {\n setWks(await (workspace ? project.workspace(workspace) : project.currentWorkspace()));\n })(), [project, workspace]);\n\n // Render\n if (wks === undefined) {\n return <Text><Spinner /> Loading "{workspace || '.'}" workspace</Text>;\n }\n\n if (wks === null) {\n return <Text color=\"red\">{logSymbols.error} Workspace "{workspace || '.'}" not found</Text>;\n }\n\n return (\n <WorkspaceContext.Provider value={wks}>\n <Wrapped />\n </WorkspaceContext.Provider>\n );\n }\n);\n"]}
|
|
@@ -82,7 +82,7 @@ const withWorkspace = (0, _wrapper.commandWrapper)('withWorkspace', yargs => yar
|
|
|
82
82
|
|
|
83
83
|
(0, _react.useEffect)(() => void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
84
|
setWks(yield workspace ? project.workspace(workspace) : project.currentWorkspace());
|
|
85
|
-
}))(), [workspace]); // Render
|
|
85
|
+
}))(), [project, workspace]); // Render
|
|
86
86
|
|
|
87
87
|
if (wks === undefined) {
|
|
88
88
|
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["wrappers/workspace.wrapper.js","wrappers/workspace.wrapper.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","WorkspaceContext","useWorkspace","wks","Error","withWorkspace","yargs","option","alias","type","desc","useArgs","Wrapped","workspace","project","setWks","currentWorkspace","undefined","Text","children","Spinner","Object","assign","color","logSymbols","error","Provider"],"mappings":";;;;;;;;AASA;;ACRA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;ADPA,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;;ACSA;AACA,MAAMO,gBAAgB,gBAAG,0BAAgC,IAAhC,CAAzB,C,CAEA;;AACM,SAAUC,YAAV,GAAsB;AAC1B,QAAMC,GAAG,GAAG,uBAAWF,gBAAX,CAAZ;;AAEA,MAAI,CAACE,GAAL,EAAU;AACR,UAAM,IAAIC,KAAJ,CAAU,wFAAV,CAAN;AACD;;AAED,SAAOD,GAAP;AACD,C,CAED;;;AACO,MAAME,aAAa,GAAG,6BAC3B,eAD2B,EAE1BC,KAAD,IAAWA,KAAK,CACbC,MADQ,CACD,WADC,EACY;AACnBC,EAAAA,KAAK,EAAE,GADY;AAEnBC,EAAAA,IAAI,EAAE,QAFa;AAGnBC,EAAAA,IAAI,EAAE;AAHa,CADZ,CAFgB,EAQ3B,CAACC,OAAD,EAAUC,OAAV,KAAqB;AACnB,QAAM;AAAEC,IAAAA;AAAF,MAAgBF,OAAO,EAA7B;AACA,QAAMG,OAAO,GAAG,0BAAhB,CAFmB,CAInB;;AACA,QAAM,CAACX,GAAD,EAAMY,MAAN,IAAgB,sBAAtB,CALmB,CAOnB;;AACA,wBAAU,MAAM,KAAK,CAAC,MAAWjC,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC/BiC,IAAAA,MAAM,CAAC,MAAOF,SAAS,GAAGC,OAAO,CAACD,SAAR,CAAkBA,SAAlB,CAAH,GAAkCC,OAAO,CAACE,gBAAR,EAAnD,CAAN;AACD,GAFgC,CAAZ,GAArB,EAEM,
|
|
1
|
+
{"version":3,"sources":["wrappers/workspace.wrapper.js","wrappers/workspace.wrapper.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","WorkspaceContext","useWorkspace","wks","Error","withWorkspace","yargs","option","alias","type","desc","useArgs","Wrapped","workspace","project","setWks","currentWorkspace","undefined","Text","children","Spinner","Object","assign","color","logSymbols","error","Provider"],"mappings":"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","file":"workspace.wrapper.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};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport { createContext, useContext, useEffect, useState } from 'react';\nimport { commandWrapper } from '../wrapper';\nimport { useProject } from './project.wrapper';\nimport logSymbols from 'log-symbols';\n// Context\nconst WorkspaceContext = createContext(null);\n// Hooks\nexport function useWorkspace() {\n const wks = useContext(WorkspaceContext);\n if (!wks) {\n throw new Error('To use the useWorkspace hook you must wrap your command with the withWorkspace wrapper');\n }\n return wks;\n}\n// Wrapper\nexport const withWorkspace = commandWrapper('withWorkspace', (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n}), (useArgs, Wrapped) => {\n const { workspace } = useArgs();\n const project = useProject();\n // State\n const [wks, setWks] = useState();\n // Effects\n useEffect(() => void (() => __awaiter(void 0, void 0, void 0, function* () {\n setWks(yield (workspace ? project.workspace(workspace) : project.currentWorkspace()));\n }))(), [project, workspace]);\n // Render\n if (wks === undefined) {\n return _jsxs(Text, { children: [_jsx(Spinner, {}), \" Loading \\\"\", workspace || '.', \"\\\" workspace\"] });\n }\n if (wks === null) {\n return _jsxs(Text, Object.assign({ color: \"red\" }, { children: [logSymbols.error, \" Workspace \\\"\", workspace || '.', \"\\\" not found\"] }));\n }\n return (_jsx(WorkspaceContext.Provider, Object.assign({ value: wks }, { children: _jsx(Wrapped, {}) })));\n});","import { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport { createContext, useContext, useEffect, useState } from 'react';\n\nimport { commandWrapper } from '../wrapper';\nimport { useProject } from './project.wrapper';\nimport logSymbols from 'log-symbols';\n\n// Context\nconst WorkspaceContext = createContext<Workspace | null>(null);\n\n// Hooks\nexport function useWorkspace(): Workspace {\n const wks = useContext(WorkspaceContext);\n\n if (!wks) {\n throw new Error('To use the useWorkspace hook you must wrap your command with the withWorkspace wrapper');\n }\n\n return wks;\n}\n\n// Wrapper\nexport const withWorkspace = commandWrapper(\n 'withWorkspace',\n (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n }),\n (useArgs, Wrapped) => {\n const { workspace } = useArgs();\n const project = useProject();\n\n // State\n const [wks, setWks] = useState<Workspace | null>();\n\n // Effects\n useEffect(() => void (async () => {\n setWks(await (workspace ? project.workspace(workspace) : project.currentWorkspace()));\n })(), [project, workspace]);\n\n // Render\n if (wks === undefined) {\n return <Text><Spinner /> Loading "{workspace || '.'}" workspace</Text>;\n }\n\n if (wks === null) {\n return <Text color=\"red\">{logSymbols.error} Workspace "{workspace || '.'}" not found</Text>;\n }\n\n return (\n <WorkspaceContext.Provider value={wks}>\n <Wrapped />\n </WorkspaceContext.Provider>\n );\n }\n);\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jujulego/jill",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@jujulego/jill-common": "^2.0.0-beta.
|
|
36
|
+
"@jujulego/jill-common": "^2.0.0-beta.2",
|
|
37
37
|
"@jujulego/jill-core": "^2.0.0-beta.1",
|
|
38
38
|
"@repeaterjs/repeater": "^3.0.4",
|
|
39
39
|
"chalk": "^4.1.1",
|
|
@@ -53,34 +53,36 @@
|
|
|
53
53
|
"yargs": "^17.0.1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@babel/core": "7.17.
|
|
56
|
+
"@babel/core": "7.17.8",
|
|
57
57
|
"@babel/plugin-proposal-class-properties": "7.16.7",
|
|
58
58
|
"@babel/preset-env": "7.16.11",
|
|
59
59
|
"@babel/preset-react": "7.16.7",
|
|
60
|
-
"@babel/runtime": "7.17.
|
|
60
|
+
"@babel/runtime": "7.17.8",
|
|
61
61
|
"@types/gulp": "4.0.9",
|
|
62
62
|
"@types/jest": "27.4.1",
|
|
63
63
|
"@types/node": "14.18.12",
|
|
64
64
|
"@types/normalize-package-data": "2.4.1",
|
|
65
65
|
"@types/react": "17.0.39",
|
|
66
|
-
"@types/ws": "8.5.
|
|
67
|
-
"@types/yargs": "17.0.
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
69
|
-
"@typescript-eslint/parser": "5.
|
|
66
|
+
"@types/ws": "8.5.3",
|
|
67
|
+
"@types/yargs": "17.0.10",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "5.16.0",
|
|
69
|
+
"@typescript-eslint/parser": "5.16.0",
|
|
70
70
|
"del": "6.0.0",
|
|
71
|
-
"eslint": "8.
|
|
72
|
-
"eslint-plugin-jest": "26.1.
|
|
71
|
+
"eslint": "8.11.0",
|
|
72
|
+
"eslint-plugin-jest": "26.1.3",
|
|
73
|
+
"eslint-plugin-react": "7.29.4",
|
|
74
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
73
75
|
"eslint-plugin-workspaces": "0.7.0",
|
|
74
76
|
"gulp": "4.0.2",
|
|
75
77
|
"gulp-cli": "2.3.0",
|
|
76
78
|
"ink-testing-library": "2.1.0",
|
|
77
79
|
"jest": "27.5.1",
|
|
78
80
|
"jill-tools": "0.0.0",
|
|
79
|
-
"msw": "0.39.
|
|
81
|
+
"msw": "0.39.2",
|
|
80
82
|
"normalize-package-data": "3.0.3",
|
|
81
|
-
"ts-jest": "27.1.
|
|
83
|
+
"ts-jest": "27.1.4",
|
|
82
84
|
"ts-node": "10.7.0",
|
|
83
85
|
"typescript": "4.6.2"
|
|
84
86
|
},
|
|
85
|
-
"stableVersion": "
|
|
87
|
+
"stableVersion": "2.0.0-beta.1"
|
|
86
88
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from 'react';
|
|
2
|
-
export declare type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;
|
|
3
|
-
export interface ListProps<K extends string> {
|
|
4
|
-
attrs: K[];
|
|
5
|
-
data: ListItem<K>[];
|
|
6
|
-
withoutHeaders?: boolean;
|
|
7
|
-
json?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare const List: <K extends string>(props: ListProps<K>) => ReactElement | null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/List.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAGhD,oBAAY,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvG,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM;IAC1C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAQD,eAAO,MAAM,IAAI,6CAA4C,YAAY,GAAG,IA2B3E,CAAC","file":"List.d.ts","sourcesContent":["import { Box, Text, useStdout } from 'ink';\nimport { ReactElement, useEffect } from 'react';\n\n// Types\nexport type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;\n\nexport interface ListProps<K extends string> {\n\tattrs: K[];\n\tdata: ListItem<K>[];\n\twithoutHeaders?: boolean;\n\tjson?: boolean;\n}\n\n// Utils\nfunction capitalize(str: string): string {\n\treturn `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n\n// Component\nexport const List = <K extends string>(props: ListProps<K>): ReactElement | null => {\n\tconst { attrs, data, withoutHeaders = false, json = false } = props;\n\tconst { stdout } = useStdout();\n\n\t// Effects\n\tuseEffect(() => {\n\t\tif (!json) return;\n\t\tif (!stdout) return;\n\n\t\tstdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n\t}, [stdout, data, json]);\n\n\t// Render\n\tif (json) return null;\n\n\treturn (\n\t\t<Box>\n\t\t\t{attrs.map((attr) => (\n\t\t\t\t<Box key={attr} flexDirection=\"column\" marginRight={2}>\n\t\t\t\t\t{!withoutHeaders && <Text bold>{capitalize(attr)}</Text>}\n\t\t\t\t\t{data.map((d, idx) => (\n\t\t\t\t\t\t<Text key={idx} color={d[attr] ? '' : 'grey'}>{d[attr] || 'unset'}</Text>\n\t\t\t\t\t))}\n\t\t\t\t</Box>\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n"]}
|
package/dist/components/List.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.List = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _ink = require("ink");
|
|
11
|
-
|
|
12
|
-
var _react = require("react");
|
|
13
|
-
|
|
14
|
-
// Utils
|
|
15
|
-
function capitalize(str) {
|
|
16
|
-
return `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;
|
|
17
|
-
} // Component
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const List = props => {
|
|
21
|
-
const {
|
|
22
|
-
attrs,
|
|
23
|
-
data,
|
|
24
|
-
withoutHeaders = false,
|
|
25
|
-
json = false
|
|
26
|
-
} = props;
|
|
27
|
-
const {
|
|
28
|
-
stdout
|
|
29
|
-
} = (0, _ink.useStdout)(); // Effects
|
|
30
|
-
|
|
31
|
-
(0, _react.useEffect)(() => {
|
|
32
|
-
if (!json) return;
|
|
33
|
-
if (!stdout) return;
|
|
34
|
-
stdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));
|
|
35
|
-
}, [stdout, data, json]); // Render
|
|
36
|
-
|
|
37
|
-
if (json) return null;
|
|
38
|
-
return (0, _jsxRuntime.jsx)(_ink.Box, {
|
|
39
|
-
children: attrs.map(attr => (0, _jsxRuntime.jsxs)(_ink.Box, Object.assign({
|
|
40
|
-
flexDirection: "column",
|
|
41
|
-
marginRight: 2
|
|
42
|
-
}, {
|
|
43
|
-
children: [!withoutHeaders && (0, _jsxRuntime.jsx)(_ink.Text, Object.assign({
|
|
44
|
-
bold: true
|
|
45
|
-
}, {
|
|
46
|
-
children: capitalize(attr)
|
|
47
|
-
})), data.map((d, idx) => (0, _jsxRuntime.jsx)(_ink.Text, Object.assign({
|
|
48
|
-
color: d[attr] ? '' : 'grey'
|
|
49
|
-
}, {
|
|
50
|
-
children: d[attr] || 'unset'
|
|
51
|
-
}), idx))]
|
|
52
|
-
}), attr))
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
exports.List = List;
|
|
57
|
-
//# sourceMappingURL=List.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/List.js","components/List.tsx"],"names":["capitalize","str","substring","toUpperCase","List","props","attrs","data","withoutHeaders","json","stdout","write","JSON","stringify","isTTY","Box","children","map","attr","Object","assign","flexDirection","marginRight","Text","bold","d","idx","color"],"mappings":";;;;;;;AAAA;;ACAA;;AACA;;AAYA;AACA,SAASA,UAAT,CAAoBC,GAApB,EAA+B;AAC9B,SAAO,GAAGA,GAAG,CAACC,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBC,WAApB,EAAiC,GAAGF,GAAG,CAACC,SAAJ,CAAc,CAAd,CAAgB,EAA9D;AACA,C,CAED;;;AACO,MAAME,IAAI,GAAsBC,KAAnB,IAA+D;AAClF,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA,cAAc,GAAG,KAAhC;AAAuCC,IAAAA,IAAI,GAAG;AAA9C,MAAwDJ,KAA9D;AACA,QAAM;AAAEK,IAAAA;AAAF,MAAa,qBAAnB,CAFkF,CAIlF;;AACA,wBAAU,MAAK;AACd,QAAI,CAACD,IAAL,EAAW;AACX,QAAI,CAACC,MAAL,EAAa;AAEbA,IAAAA,MAAM,CAACC,KAAP,CAAaC,IAAI,CAACC,SAAL,CAAeN,IAAf,EAAqB,IAArB,EAA2BG,MAAM,CAACI,KAAP,GAAe,CAAf,GAAmB,CAA9C,CAAb;AACA,GALD,EAKG,CAACJ,MAAD,EAASH,IAAT,EAAeE,IAAf,CALH,EALkF,CAYlF;;AACA,MAAIA,IAAJ,EAAU,OAAO,IAAP;AAEV,SACC,qBAACM,QAAD,EAAI;AAAAC,IAAAA,QAAA,EACFV,KAAK,CAACW,GAAN,CAAWC,IAAD,IACV,sBAACH,QAAD,EAAII,MAAA,CAAAC,MAAA,CAAA;AAAYC,MAAAA,aAAa,EAAC,QAA1B;AAAmCC,MAAAA,WAAW,EAAE;AAAhD,KAAA,EAAiD;AAAAN,MAAAA,QAAA,EAAA,CACnD,CAACR,cAAD,IAAmB,qBAACe,SAAD,EAAKJ,MAAA,CAAAC,MAAA,CAAA;AAACI,QAAAA,IAAI,EAAA;AAAL,OAAA,EAAK;AAAAR,QAAAA,QAAA,EAAEhB,UAAU,CAACkB,IAAD;AAAZ,OAAL,CAAL,CADgC,EAEnDX,IAAI,CAACU,GAAL,CAAS,CAACQ,CAAD,EAAIC,GAAJ,KACT,qBAACH,SAAD,EAAKJ,MAAA,CAAAC,MAAA,CAAA;AAAWO,QAAAA,KAAK,EAAEF,CAAC,CAACP,IAAD,CAAD,GAAU,EAAV,GAAe;AAAjC,OAAA,EAAuC;AAAAF,QAAAA,QAAA,EAAGS,CAAC,CAACP,IAAD,CAAD,IAAW;AAAd,OAAvC,CAAL,EAAWQ,GAAX,CADA,CAFmD;AAAA,KAAjD,CAAJ,EAAUR,IAAV,CADA;AADE,GAAJ,CADD;AAYA,CA3BM","file":"List.js","sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Box, Text, useStdout } from 'ink';\nimport { useEffect } from 'react';\n// Utils\nfunction capitalize(str) {\n return `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n// Component\nexport const List = (props) => {\n const { attrs, data, withoutHeaders = false, json = false } = props;\n const { stdout } = useStdout();\n // Effects\n useEffect(() => {\n if (!json)\n return;\n if (!stdout)\n return;\n stdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n }, [stdout, data, json]);\n // Render\n if (json)\n return null;\n return (_jsx(Box, { children: attrs.map((attr) => (_jsxs(Box, Object.assign({ flexDirection: \"column\", marginRight: 2 }, { children: [!withoutHeaders && _jsx(Text, Object.assign({ bold: true }, { children: capitalize(attr) })), data.map((d, idx) => (_jsx(Text, Object.assign({ color: d[attr] ? '' : 'grey' }, { children: d[attr] || 'unset' }), idx)))] }), attr))) }));\n};","import { Box, Text, useStdout } from 'ink';\nimport { ReactElement, useEffect } from 'react';\n\n// Types\nexport type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;\n\nexport interface ListProps<K extends string> {\n\tattrs: K[];\n\tdata: ListItem<K>[];\n\twithoutHeaders?: boolean;\n\tjson?: boolean;\n}\n\n// Utils\nfunction capitalize(str: string): string {\n\treturn `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n\n// Component\nexport const List = <K extends string>(props: ListProps<K>): ReactElement | null => {\n\tconst { attrs, data, withoutHeaders = false, json = false } = props;\n\tconst { stdout } = useStdout();\n\n\t// Effects\n\tuseEffect(() => {\n\t\tif (!json) return;\n\t\tif (!stdout) return;\n\n\t\tstdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n\t}, [stdout, data, json]);\n\n\t// Render\n\tif (json) return null;\n\n\treturn (\n\t\t<Box>\n\t\t\t{attrs.map((attr) => (\n\t\t\t\t<Box key={attr} flexDirection=\"column\" marginRight={2}>\n\t\t\t\t\t{!withoutHeaders && <Text bold>{capitalize(attr)}</Text>}\n\t\t\t\t\t{data.map((d, idx) => (\n\t\t\t\t\t\t<Text key={idx} color={d[attr] ? '' : 'grey'}>{d[attr] || 'unset'}</Text>\n\t\t\t\t\t))}\n\t\t\t\t</Box>\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/TaskSetSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAIhD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyBlD,CAAC","file":"TaskSetSpinner.d.ts","sourcesContent":["import { Task, TaskSet } from '@jujulego/jill-core';\nimport { FC, useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n\n// Types\nexport interface TaskSetSpinnerProps {\n taskSet: TaskSet;\n}\n\n// Component\nexport const TaskSetSpinner: FC<TaskSetSpinnerProps> = (props) => {\n const { taskSet } = props;\n\n // State\n const [tasks, setTasks] = useState<Task[]>([]);\n\n // Effects\n useEffect(() => {\n const handler = (task: Task) => {\n setTasks((old) => [...old, task]);\n };\n\n taskSet.on('started', handler);\n\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n\n // Render\n return (\n <>\n { tasks.map((task, idx) => <TaskSpinner key={idx} task={task} />) }\n </>\n );\n};\n"]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TaskSetSpinner = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _react = require("react");
|
|
11
|
-
|
|
12
|
-
var _TaskSpinner = require("./TaskSpinner");
|
|
13
|
-
|
|
14
|
-
// Component
|
|
15
|
-
const TaskSetSpinner = props => {
|
|
16
|
-
const {
|
|
17
|
-
taskSet
|
|
18
|
-
} = props; // State
|
|
19
|
-
|
|
20
|
-
const [tasks, setTasks] = (0, _react.useState)([]); // Effects
|
|
21
|
-
|
|
22
|
-
(0, _react.useEffect)(() => {
|
|
23
|
-
const handler = task => {
|
|
24
|
-
setTasks(old => [...old, task]);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
taskSet.on('started', handler);
|
|
28
|
-
return () => {
|
|
29
|
-
taskSet.off('started', handler);
|
|
30
|
-
};
|
|
31
|
-
}, [taskSet]); // Render
|
|
32
|
-
|
|
33
|
-
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
34
|
-
children: tasks.map((task, idx) => (0, _jsxRuntime.jsx)(_TaskSpinner.TaskSpinner, {
|
|
35
|
-
task: task
|
|
36
|
-
}, idx))
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
exports.TaskSetSpinner = TaskSetSpinner;
|
|
41
|
-
//# sourceMappingURL=TaskSetSpinner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/TaskSetSpinner.js","components/TaskSetSpinner.tsx"],"names":["TaskSetSpinner","props","taskSet","tasks","setTasks","handler","task","old","on","off","_Fragment","children","map","idx","TaskSpinner"],"mappings":";;;;;;;AAAA;;ACCA;;AACA;;AAOA;AACO,MAAMA,cAAc,GAA6BC,KAAD,IAAU;AAC/D,QAAM;AAAEC,IAAAA;AAAF,MAAcD,KAApB,CAD+D,CAG/D;;AACA,QAAM,CAACE,KAAD,EAAQC,QAAR,IAAoB,qBAAiB,EAAjB,CAA1B,CAJ+D,CAM/D;;AACA,wBAAU,MAAK;AACb,UAAMC,OAAO,GAAIC,IAAD,IAAe;AAC7BF,MAAAA,QAAQ,CAAEG,GAAD,IAAS,CAAC,GAAGA,GAAJ,EAASD,IAAT,CAAV,CAAR;AACD,KAFD;;AAIAJ,IAAAA,OAAO,CAACM,EAAR,CAAW,SAAX,EAAsBH,OAAtB;AAEA,WAAO,MAAK;AACVH,MAAAA,OAAO,CAACO,GAAR,CAAY,SAAZ,EAAuBJ,OAAvB;AACD,KAFD;AAGD,GAVD,EAUG,CAACH,OAAD,CAVH,EAP+D,CAmB/D;;AACA,SACE,qBAAAQ,oBAAA,EAAA;AAAAC,IAAAA,QAAA,EACIR,KAAK,CAACS,GAAN,CAAU,CAACN,IAAD,EAAOO,GAAP,KAAe,qBAACC,wBAAD,EAAY;AAAWR,MAAAA,IAAI,EAAEA;AAAjB,KAAZ,EAAkBO,GAAlB,CAAzB;AADJ,GAAA,CADF;AAKD,CAzBM","file":"TaskSetSpinner.js","sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n// Component\nexport const TaskSetSpinner = (props) => {\n const { taskSet } = props;\n // State\n const [tasks, setTasks] = useState([]);\n // Effects\n useEffect(() => {\n const handler = (task) => {\n setTasks((old) => [...old, task]);\n };\n taskSet.on('started', handler);\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n // Render\n return (_jsx(_Fragment, { children: tasks.map((task, idx) => _jsx(TaskSpinner, { task: task }, idx)) }));\n};","import { Task, TaskSet } from '@jujulego/jill-core';\nimport { FC, useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n\n// Types\nexport interface TaskSetSpinnerProps {\n taskSet: TaskSet;\n}\n\n// Component\nexport const TaskSetSpinner: FC<TaskSetSpinnerProps> = (props) => {\n const { taskSet } = props;\n\n // State\n const [tasks, setTasks] = useState<Task[]>([]);\n\n // Effects\n useEffect(() => {\n const handler = (task: Task) => {\n setTasks((old) => [...old, task]);\n };\n\n taskSet.on('started', handler);\n\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n\n // Render\n return (\n <>\n { tasks.map((task, idx) => <TaskSpinner key={idx} task={task} />) }\n </>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/TaskSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI3C,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ;AAGD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA0C5C,CAAC","file":"TaskSpinner.d.ts","sourcesContent":["import { Task } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport logSymbols from 'log-symbols';\nimport { FC, useEffect, useState } from 'react';\n\n// Types\nexport interface TaskSpinnerProps {\n task: Task;\n}\n\n// Component\nexport const TaskSpinner: FC<TaskSpinnerProps> = (props) => {\n const { task } = props;\n const wks = task.context.workspace;\n\n // State\n const [status, setStatus] = useState(task.status);\n\n // Effects\n useEffect(() => {\n task.on('status', setStatus);\n\n return () => {\n task.off('status', setStatus);\n };\n }, [task]);\n\n // Render\n if (status === 'done') {\n return (\n <Text>\n { logSymbols.success }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n } else if (status === 'failed') {\n return (\n <Text>\n { logSymbols.error }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n }\n\n return (\n <Text>\n <Spinner type={status === 'running' ? 'line' : 'simpleDotsScrolling'} />{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n};\n"]}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TaskSpinner = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _ink = require("ink");
|
|
11
|
-
|
|
12
|
-
var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
|
|
13
|
-
|
|
14
|
-
var _logSymbols = _interopRequireDefault(require("log-symbols"));
|
|
15
|
-
|
|
16
|
-
var _react = require("react");
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
// Component
|
|
21
|
-
const TaskSpinner = props => {
|
|
22
|
-
const {
|
|
23
|
-
task
|
|
24
|
-
} = props;
|
|
25
|
-
const wks = task.context.workspace; // State
|
|
26
|
-
|
|
27
|
-
const [status, setStatus] = (0, _react.useState)(task.status); // Effects
|
|
28
|
-
|
|
29
|
-
(0, _react.useEffect)(() => {
|
|
30
|
-
task.on('status', setStatus);
|
|
31
|
-
return () => {
|
|
32
|
-
task.off('status', setStatus);
|
|
33
|
-
};
|
|
34
|
-
}, [task]); // Render
|
|
35
|
-
|
|
36
|
-
if (status === 'done') {
|
|
37
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
38
|
-
children: [_logSymbols.default.success, ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
39
|
-
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
40
|
-
color: "grey"
|
|
41
|
-
}, {
|
|
42
|
-
children: ["[", wks.name, "]"]
|
|
43
|
-
})), ' ']
|
|
44
|
-
}), task.name, " is ", status]
|
|
45
|
-
});
|
|
46
|
-
} else if (status === 'failed') {
|
|
47
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
48
|
-
children: [_logSymbols.default.error, ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
49
|
-
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
50
|
-
color: "grey"
|
|
51
|
-
}, {
|
|
52
|
-
children: ["[", wks.name, "]"]
|
|
53
|
-
})), ' ']
|
|
54
|
-
}), task.name, " is ", status]
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
59
|
-
children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {
|
|
60
|
-
type: status === 'running' ? 'line' : 'simpleDotsScrolling'
|
|
61
|
-
}), ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
62
|
-
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
63
|
-
color: "grey"
|
|
64
|
-
}, {
|
|
65
|
-
children: ["[", wks.name, "]"]
|
|
66
|
-
})), ' ']
|
|
67
|
-
}), task.name, " is ", status]
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
exports.TaskSpinner = TaskSpinner;
|
|
72
|
-
//# sourceMappingURL=TaskSpinner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/TaskSpinner.js","components/TaskSpinner.tsx"],"names":["TaskSpinner","props","task","wks","context","workspace","status","setStatus","on","off","Text","children","logSymbols","success","_Fragment","Object","assign","color","name","error","Spinner","type"],"mappings":";;;;;;;AAAA;;ACCA;;AACA;;AACA;;AACA;;;;AAOA;AACO,MAAMA,WAAW,GAA0BC,KAAD,IAAU;AACzD,QAAM;AAAEC,IAAAA;AAAF,MAAWD,KAAjB;AACA,QAAME,GAAG,GAAGD,IAAI,CAACE,OAAL,CAAaC,SAAzB,CAFyD,CAIzD;;AACA,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,qBAASL,IAAI,CAACI,MAAd,CAA5B,CALyD,CAOzD;;AACA,wBAAU,MAAK;AACbJ,IAAAA,IAAI,CAACM,EAAL,CAAQ,QAAR,EAAkBD,SAAlB;AAEA,WAAO,MAAK;AACVL,MAAAA,IAAI,CAACO,GAAL,CAAS,QAAT,EAAmBF,SAAnB;AACD,KAFD;AAGD,GAND,EAMG,CAACL,IAAD,CANH,EARyD,CAgBzD;;AACA,MAAII,MAAM,KAAK,MAAf,EAAuB;AACrB,WACE,sBAACI,SAAD,EAAK;AAAAC,MAAAA,QAAA,EAAA,CACDC,oBAAWC,OADV,EACoB,GADpB,EAEDV,GAAG,IAAI,sBAAAW,oBAAA,EAAA;AAAAH,QAAAA,QAAA,EAAA,CAAE,sBAACD,SAAD,EAAKK,MAAA,CAAAC,MAAA,CAAA;AAACC,UAAAA,KAAK,EAAC;AAAP,SAAA,EAAa;AAAAN,UAAAA,QAAA,EAAA,CAAA,GAAA,EAAIR,GAAG,CAACe,IAAR,EAAY,GAAZ;AAAA,SAAb,CAAL,CAAF,EAA2C,GAA3C;AAAA,OAAA,CAFN,EAGDhB,IAAI,CAACgB,IAHJ,EAGQ,MAHR,EAGgBZ,MAHhB;AAAA,KAAL,CADF;AAOD,GARD,MAQO,IAAIA,MAAM,KAAK,QAAf,EAAyB;AAC9B,WACE,sBAACI,SAAD,EAAK;AAAAC,MAAAA,QAAA,EAAA,CACDC,oBAAWO,KADV,EACkB,GADlB,EAEDhB,GAAG,IAAI,sBAAAW,oBAAA,EAAA;AAAAH,QAAAA,QAAA,EAAA,CAAE,sBAACD,SAAD,EAAKK,MAAA,CAAAC,MAAA,CAAA;AAACC,UAAAA,KAAK,EAAC;AAAP,SAAA,EAAa;AAAAN,UAAAA,QAAA,EAAA,CAAA,GAAA,EAAIR,GAAG,CAACe,IAAR,EAAY,GAAZ;AAAA,SAAb,CAAL,CAAF,EAA2C,GAA3C;AAAA,OAAA,CAFN,EAGDhB,IAAI,CAACgB,IAHJ,EAGQ,MAHR,EAGgBZ,MAHhB;AAAA,KAAL,CADF;AAOD;;AAED,SACE,sBAACI,SAAD,EAAK;AAAAC,IAAAA,QAAA,EAAA,CACH,qBAACS,mBAAD,EAAQ;AAACC,MAAAA,IAAI,EAAEf,MAAM,KAAK,SAAX,GAAuB,MAAvB,GAAgC;AAAvC,KAAR,CADG,EACsE,GADtE,EAEDH,GAAG,IAAI,sBAAAW,oBAAA,EAAA;AAAAH,MAAAA,QAAA,EAAA,CAAE,sBAACD,SAAD,EAAKK,MAAA,CAAAC,MAAA,CAAA;AAACC,QAAAA,KAAK,EAAC;AAAP,OAAA,EAAa;AAAAN,QAAAA,QAAA,EAAA,CAAA,GAAA,EAAIR,GAAG,CAACe,IAAR,EAAY,GAAZ;AAAA,OAAb,CAAL,CAAF,EAA2C,GAA3C;AAAA,KAAA,CAFN,EAGDhB,IAAI,CAACgB,IAHJ,EAGQ,MAHR,EAGgBZ,MAHhB;AAAA,GAAL,CADF;AAOD,CA1CM","file":"TaskSpinner.js","sourcesContent":["import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from \"react/jsx-runtime\";\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport logSymbols from 'log-symbols';\nimport { useEffect, useState } from 'react';\n// Component\nexport const TaskSpinner = (props) => {\n const { task } = props;\n const wks = task.context.workspace;\n // State\n const [status, setStatus] = useState(task.status);\n // Effects\n useEffect(() => {\n task.on('status', setStatus);\n return () => {\n task.off('status', setStatus);\n };\n }, [task]);\n // Render\n if (status === 'done') {\n return (_jsxs(Text, { children: [logSymbols.success, ' ', wks && _jsxs(_Fragment, { children: [_jsxs(Text, Object.assign({ color: \"grey\" }, { children: [\"[\", wks.name, \"]\"] })), ' '] }), task.name, \" is \", status] }));\n }\n else if (status === 'failed') {\n return (_jsxs(Text, { children: [logSymbols.error, ' ', wks && _jsxs(_Fragment, { children: [_jsxs(Text, Object.assign({ color: \"grey\" }, { children: [\"[\", wks.name, \"]\"] })), ' '] }), task.name, \" is \", status] }));\n }\n return (_jsxs(Text, { children: [_jsx(Spinner, { type: status === 'running' ? 'line' : 'simpleDotsScrolling' }), ' ', wks && _jsxs(_Fragment, { children: [_jsxs(Text, Object.assign({ color: \"grey\" }, { children: [\"[\", wks.name, \"]\"] })), ' '] }), task.name, \" is \", status] }));\n};","import { Task } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport logSymbols from 'log-symbols';\nimport { FC, useEffect, useState } from 'react';\n\n// Types\nexport interface TaskSpinnerProps {\n task: Task;\n}\n\n// Component\nexport const TaskSpinner: FC<TaskSpinnerProps> = (props) => {\n const { task } = props;\n const wks = task.context.workspace;\n\n // State\n const [status, setStatus] = useState(task.status);\n\n // Effects\n useEffect(() => {\n task.on('status', setStatus);\n\n return () => {\n task.off('status', setStatus);\n };\n }, [task]);\n\n // Render\n if (status === 'done') {\n return (\n <Text>\n { logSymbols.success }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n } else if (status === 'failed') {\n return (\n <Text>\n { logSymbols.error }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n }\n\n return (\n <Text>\n <Spinner type={status === 'running' ? 'line' : 'simpleDotsScrolling'} />{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n};\n"]}
|