@jujulego/jill 2.0.0-alpha.1 → 2.0.0-alpha.3
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/list.d.ts.map +1 -1
- package/dist/commands/list.js +16 -15
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/tree.d.ts +3 -0
- package/dist/commands/tree.d.ts.map +1 -0
- package/dist/commands/tree.js +35 -0
- package/dist/commands/tree.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -2
- package/dist/main.js.map +1 -1
- package/dist/middlewares/global-config.d.ts +5 -0
- package/dist/middlewares/global-config.d.ts.map +1 -0
- package/dist/middlewares/global-config.js +29 -0
- package/dist/middlewares/global-config.js.map +1 -0
- package/dist/{modifiers → middlewares}/index.d.ts +2 -1
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/{modifiers → middlewares}/index.js +2 -1
- package/dist/middlewares/index.js.map +1 -0
- package/dist/{modifiers → middlewares}/load-project.d.ts +1 -2
- package/dist/middlewares/load-project.d.ts.map +1 -0
- package/dist/middlewares/load-project.js +41 -0
- package/dist/middlewares/load-project.js.map +1 -0
- package/dist/middlewares/load-workspace.d.ts +3 -0
- package/dist/middlewares/load-workspace.d.ts.map +1 -0
- package/dist/middlewares/load-workspace.js +42 -0
- package/dist/middlewares/load-workspace.js.map +1 -0
- package/dist/middlewares/setup-ink.d.ts +1 -0
- package/dist/middlewares/setup-ink.d.ts.map +1 -0
- package/dist/{modifiers → middlewares}/setup-ink.js +9 -6
- package/dist/middlewares/setup-ink.js.map +1 -0
- package/dist/services/inversify.config.d.ts +1 -1
- package/dist/services/inversify.config.d.ts.map +1 -1
- package/dist/services/inversify.config.js +2 -2
- package/dist/services/inversify.config.js.map +1 -1
- package/dist/services/logger.service.d.ts +3 -2
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +32 -15
- package/dist/services/logger.service.js.map +1 -1
- package/dist/services/spinner.service.d.ts +6 -2
- package/dist/services/spinner.service.d.ts.map +1 -1
- package/dist/services/spinner.service.js +22 -9
- package/dist/services/spinner.service.js.map +1 -1
- package/dist/ui/global-spinner.d.ts.map +1 -1
- package/dist/ui/global-spinner.js +31 -9
- package/dist/ui/global-spinner.js.map +1 -1
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/layout.d.ts.map +1 -1
- package/dist/ui/layout.js +3 -2
- package/dist/ui/layout.js.map +1 -1
- package/dist/ui/list.d.ts +6 -0
- package/dist/ui/list.d.ts.map +1 -0
- package/dist/ui/list.js +30 -0
- package/dist/ui/list.js.map +1 -0
- package/dist/ui/static-logs.d.ts.map +1 -1
- package/dist/ui/static-logs.js +28 -44
- package/dist/ui/static-logs.js.map +1 -1
- package/dist/ui/workspace-tree.d.ts +8 -0
- package/dist/ui/workspace-tree.d.ts.map +1 -0
- package/dist/ui/workspace-tree.js +87 -0
- package/dist/ui/workspace-tree.js.map +1 -0
- package/dist/utils.d.ts +9 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +16 -5
- package/dist/utils.js.map +1 -1
- package/package.json +3 -1
- package/dist/modifiers/global-config.d.ts +0 -6
- package/dist/modifiers/global-config.d.ts.map +0 -1
- package/dist/modifiers/global-config.js +0 -24
- package/dist/modifiers/global-config.js.map +0 -1
- package/dist/modifiers/index.d.ts.map +0 -1
- package/dist/modifiers/index.js.map +0 -1
- package/dist/modifiers/load-project.d.ts.map +0 -1
- package/dist/modifiers/load-project.js +0 -39
- package/dist/modifiers/load-project.js.map +0 -1
- package/dist/modifiers/setup-ink.d.ts +0 -2
- package/dist/modifiers/setup-ink.d.ts.map +0 -1
- package/dist/modifiers/setup-ink.js.map +0 -1
- package/dist/ui/cli-list.d.ts +0 -15
- package/dist/ui/cli-list.d.ts.map +0 -1
- package/dist/ui/cli-list.js +0 -66
- package/dist/ui/cli-list.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/list.
|
|
1
|
+
{"version":3,"sources":["commands/list.tsx"],"names":[],"mappings":";AAaA,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;;;;;;;;;;;;;;;;;;;;AA8BtD,wBAkIG","file":"list.d.ts","sourcesContent":["import chalk from 'chalk';\nimport path from 'node:path';\nimport ink from 'ink';\nimport slugify from 'slugify';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../middlewares';\nimport { Project, Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, List } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\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, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ])\n // Filters\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\n // Affected filter\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 async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(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 // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n console.log(JSON.stringify(data));\n }\n } else {\n const app = container.get<ink.Instance>(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) ?? '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n"]}
|
package/dist/commands/list.js
CHANGED
|
@@ -7,14 +7,16 @@ Object.defineProperty(exports, // Command
|
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: ()=>_default
|
|
9
9
|
});
|
|
10
|
+
const _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
const _chalk = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
11
12
|
const _nodePath = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
|
|
12
13
|
const _slugify = /*#__PURE__*/ _interopRequireDefault(require("slugify"));
|
|
13
14
|
const _filters = require("../filters");
|
|
14
|
-
const
|
|
15
|
+
const _middlewares = require("../middlewares");
|
|
16
|
+
const _project = require("../project");
|
|
15
17
|
const _services = require("../services");
|
|
16
|
-
const _utils = require("../utils");
|
|
17
18
|
const _ui = require("../ui");
|
|
19
|
+
const _utils = require("../utils");
|
|
18
20
|
function _interopRequireDefault(obj) {
|
|
19
21
|
return obj && obj.__esModule ? obj : {
|
|
20
22
|
default: obj
|
|
@@ -57,9 +59,9 @@ const _default = (0, _utils.defineCommand)({
|
|
|
57
59
|
'ls'
|
|
58
60
|
],
|
|
59
61
|
describe: 'List workspaces',
|
|
60
|
-
builder: (yargs)=>(0, _utils.
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
|
|
63
|
+
_middlewares.setupInk,
|
|
64
|
+
_middlewares.loadProject
|
|
63
65
|
])// Filters
|
|
64
66
|
.option('private', {
|
|
65
67
|
type: 'boolean',
|
|
@@ -124,7 +126,7 @@ const _default = (0, _utils.defineCommand)({
|
|
|
124
126
|
pipeline.add(new _filters.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
|
|
125
127
|
}
|
|
126
128
|
// Load workspaces
|
|
127
|
-
const project = _services.container.
|
|
129
|
+
const project = _services.container.getNamed(_project.Project, _services.CURRENT);
|
|
128
130
|
const workspaces = [];
|
|
129
131
|
for await (const wks of pipeline.filter(project.workspaces())){
|
|
130
132
|
workspaces.push(wks);
|
|
@@ -149,19 +151,18 @@ const _default = (0, _utils.defineCommand)({
|
|
|
149
151
|
console.log(JSON.stringify(data));
|
|
150
152
|
}
|
|
151
153
|
} else {
|
|
152
|
-
const
|
|
153
|
-
if (args.headers ?? attrs.length > 1) {
|
|
154
|
-
list.setHeaders(attrs);
|
|
155
|
-
}
|
|
154
|
+
const app = _services.container.get(_services.INK_APP);
|
|
156
155
|
for (const d of data){
|
|
157
156
|
if (d.root) {
|
|
158
|
-
d.root = _nodePath.default.relative(process.cwd(), d.root)
|
|
157
|
+
d.root = _nodePath.default.relative(process.cwd(), d.root) ?? '.';
|
|
159
158
|
}
|
|
160
|
-
list.add(attrs.map((attr)=>d[attr] || ''));
|
|
161
|
-
}
|
|
162
|
-
for (const d1 of list.lines()){
|
|
163
|
-
console.log(d1);
|
|
164
159
|
}
|
|
160
|
+
app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
|
|
161
|
+
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.List, {
|
|
162
|
+
items: data,
|
|
163
|
+
headers: args.headers ?? attrs.length > 1
|
|
164
|
+
})
|
|
165
|
+
}));
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/list.js"],"sourcesContent":["import chalk from 'chalk';\nimport path from 'node:path';\nimport slugify from 'slugify';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../
|
|
1
|
+
{"version":3,"sources":["commands/list.js"],"sourcesContent":["import chalk from 'chalk';\nimport path from 'node:path';\nimport ink from 'ink';\nimport slugify from 'slugify';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../middlewares';\nimport { Project, Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, List } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\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, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ])\n // Filters\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\n // Affected filter\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 async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(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 // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n console.log(JSON.stringify(data));\n }\n } else {\n const app = container.get<ink.Instance>(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) ?? '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n"],"names":["LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","json","manifest","undefined","chalk","grey","root","cwd","slug","slugify","buildExtractor","attrs","data","attr","defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","option","type","group","desc","string","alias","coerce","rev","default","choices","handler","args","pipeline","Pipeline","private","add","PrivateFilter","withScript","ScriptsFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","project","container","getNamed","Project","CURRENT","workspaces","filter","push","length","long","map","process","stdout","isTTY","console","log","JSON","stringify","app","get","INK_APP","d","path","relative","rerender","Layout","List","items","headers"],"mappings":"AAAA;;;;+BA2CA,UAAU;AACV;;aAAA;;;4DA5CkB;+DACD;8DAEG;yBAEmD;6BACjC;yBACH;0BACS;oBACf;uBACmB;;;;;;AAQhD,YAAY;AACZ,MAAMA,kBAA+B;IAAC;IAAQ;IAAW;CAAO;AAChE,MAAMC,kBAA+B;IAAC;IAAQ;IAAW;IAAQ;CAAO;AACxE,MAAMC,qBAAkC;IAAC;CAAO;AAEhD,MAAMC,aAA+D;IACnEC,MAAMC,CAAAA,MAAOA,IAAID,IAAI;IACrBE,SAAS,CAACD,KAAKE,OAASF,IAAIG,QAAQ,CAACF,OAAO,IAAKC,CAAAA,OAAOE,YAAYC,cAAK,CAACC,IAAI,CAAC,QAAQ,AAAD;IACtFC,MAAMP,CAAAA,MAAOA,IAAIQ,GAAG;IACpBC,MAAMT,CAAAA,MAAOU,IAAAA,gBAAO,EAACV,IAAID,IAAI;AAC/B;AAEA,QAAQ;AACR,SAASY,eAAeC,KAAkB,EAAmB;IAC3D,OAAO,CAACZ,KAAKE,OAAkB;QAC7B,MAAMW,OAAa,CAAC;QAEpB,KAAK,MAAMC,QAAQF,MAAO;YACxBC,IAAI,CAACC,KAAK,GAAGhB,UAAU,CAACgB,KAAK,CAACd,KAAKE;QACrC;QAEA,OAAOW;IACT;AACF;MAGA,WAAeE,IAAAA,oBAAa,EAAC;IAC3BC,SAAS;QAAC;QAAQ;KAAK;IACvBC,UAAU;IACVC,SAAS,CAACC,QACRC,IAAAA,uBAAgB,EAACD,OAAO;YACtBE,qBAAQ;YACRC,wBAAW;SACZ,CACD,UAAU;SACTC,MAAM,CAAC,WAAW;YACjBC,MAAM;YACNC,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,eAAe;YACrBC,MAAM;YACNG,QAAQ,IAAI;YACZF,OAAO;YACPC,MAAM;QACR,EAEA,kBAAkB;SACjBH,MAAM,CAAC,YAAY;YAClBK,OAAO;YACPJ,MAAM;YACNK,QAAQ,CAACC,MAAgBA,QAAQ,KAAK,WAAWA,GAAG;YACpDL,OAAO;YACPC,MAAM,wHACJ;QACJ,GACCH,MAAM,CAAC,qBAAqB;YAC3BC,MAAM;YACNC,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,yBAAyB;YAC/BC,MAAM;YACNO,SAAS;YACTN,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,SAAS;YACfC,MAAM;YACNQ,SAAS;gBAAC;gBAAQ;gBAAW;gBAAQ;aAAO;YAC5CD,SAAS,EAAE;YACXN,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,WAAW;YACjBC,MAAM;YACNC,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,QAAQ;YACdK,OAAO;YACPJ,MAAM;YACNC,OAAO;YACPC,MAAM;QACR,GACCH,MAAM,CAAC,QAAQ;YACdC,MAAM;YACNC,OAAO;YACPC,MAAM;QACR;IACF,MAAMO,SAAQC,IAAI,EAAE;QAClB,iBAAiB;QACjB,MAAMC,WAAW,IAAIC,iBAAQ;QAE7B,IAAIF,KAAKG,OAAO,KAAKjC,WAAW;YAC9B+B,SAASG,GAAG,CAAC,IAAIC,sBAAa,CAACL,KAAKG,OAAO;QAC7C,CAAC;QAED,IAAIH,KAAKM,UAAU,EAAE;YACnBL,SAASG,GAAG,CAAC,IAAIG,sBAAa,CAACP,KAAKM,UAAU;QAChD,CAAC;QAED,IAAIN,KAAKQ,QAAQ,KAAKtC,WAAW;YAC/B+B,SAASG,GAAG,CAAC,IAAIK,uBAAc,CAC7BT,KAAKQ,QAAQ,EACbR,KAAKU,mBAAmB,EACxBV,KAAKW,eAAe;QAExB,CAAC;QAED,kBAAkB;QAClB,MAAMC,UAAUC,mBAAS,CAACC,QAAQ,CAACC,gBAAO,EAAEC,iBAAO;QACnD,MAAMC,aAA0B,EAAE;QAElC,WAAW,MAAMnD,OAAOmC,SAASiB,MAAM,CAACN,QAAQK,UAAU,IAAK;YAC7DA,WAAWE,IAAI,CAACrD;QAClB;QAEA,aAAa;QACb,IAAIY,QAAQsB,KAAKtB,KAAK;QAEtB,IAAIsB,KAAKtB,KAAK,CAAC0C,MAAM,KAAK,GAAG;YAC3B,IAAIpB,KAAKqB,IAAI,EAAE;gBACb3C,QAAQjB;YACV,OAAO,IAAIuC,KAAKhC,IAAI,EAAE;gBACpBU,QAAQhB;YACV,OAAO;gBACLgB,QAAQf;YACV,CAAC;QACH,CAAC;QAED,MAAMgB,OAAOsC,WAAWK,GAAG,CAACxD,CAAAA,MAAOW,eAAeC,OAAOZ,KAAKkC,KAAKhC,IAAI,IAAI,KAAK;QAEhF,aAAa;QACb,IAAIgC,KAAKhC,IAAI,EAAE;YACb,IAAIuD,QAAQC,MAAM,CAACC,KAAK,EAAE;gBACxBC,QAAQC,GAAG,CAACC,KAAKC,SAAS,CAAClD,MAAM,IAAI,EAAE;YACzC,OAAO;gBACL+C,QAAQC,GAAG,CAACC,KAAKC,SAAS,CAAClD;YAC7B,CAAC;QACH,OAAO;YACL,MAAMmD,MAAMjB,mBAAS,CAACkB,GAAG,CAAeC,iBAAO;YAE/C,KAAK,MAAMC,KAAKtD,KAAM;gBACpB,IAAIsD,EAAE5D,IAAI,EAAE;oBACV4D,EAAE5D,IAAI,GAAG6D,iBAAI,CAACC,QAAQ,CAACZ,QAAQjD,GAAG,IAAI2D,EAAE5D,IAAI,KAAK;gBACnD,CAAC;YACH;YAEAyD,IAAIM,QAAQ,eACV,qBAACC,UAAM;0BACL,cAAA,qBAACC,QAAI;oBAACC,OAAO5D;oBAAM6D,SAASxC,KAAKwC,OAAO,IAAK9D,MAAM0C,MAAM,GAAG;;;QAGlE,CAAC;IACH;AACF","file":"list.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/tree.tsx"],"names":[],"mappings":";;AASA,wBAmBG","file":"tree.d.ts","sourcesContent":["import ink from 'ink';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, WorkspaceTree } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]),\n handler: () => {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n\n app.rerender(\n <Layout>\n <WorkspaceTree workspace={workspace} />\n </Layout>\n );\n }\n});\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, // Command
|
|
6
|
+
"default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: ()=>_default
|
|
9
|
+
});
|
|
10
|
+
const _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
const _middlewares = require("../middlewares");
|
|
12
|
+
const _project = require("../project");
|
|
13
|
+
const _services = require("../services");
|
|
14
|
+
const _ui = require("../ui");
|
|
15
|
+
const _utils = require("../utils");
|
|
16
|
+
const _default = (0, _utils.defineCommand)({
|
|
17
|
+
command: 'tree',
|
|
18
|
+
describe: 'Print workspace dependency tree',
|
|
19
|
+
builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
|
|
20
|
+
_middlewares.setupInk,
|
|
21
|
+
_middlewares.loadProject,
|
|
22
|
+
_middlewares.loadWorkspace
|
|
23
|
+
]),
|
|
24
|
+
handler: ()=>{
|
|
25
|
+
const app = _services.container.get(_services.INK_APP);
|
|
26
|
+
const workspace = _services.container.getNamed(_project.Workspace, _services.CURRENT);
|
|
27
|
+
app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
|
|
28
|
+
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.WorkspaceTree, {
|
|
29
|
+
workspace: workspace
|
|
30
|
+
})
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/tree.js"],"sourcesContent":["import ink from 'ink';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, WorkspaceTree } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]),\n handler: () => {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n\n app.rerender(\n <Layout>\n <WorkspaceTree workspace={workspace} />\n </Layout>\n );\n }\n});\n"],"names":["defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","loadWorkspace","handler","app","container","get","INK_APP","workspace","getNamed","Workspace","CURRENT","rerender","Layout","WorkspaceTree"],"mappings":"AAAA;;;;+BAQA,UAAU;AACV;;aAAA;;;6BAPqD;yBAC3B;0BACkB;oBACN;uBACU;MAGhD,WAAeA,IAAAA,oBAAa,EAAC;IAC3BC,SAAS;IACTC,UAAU;IACVC,SAAS,CAACC,QACRC,IAAAA,uBAAgB,EAACD,OAAO;YACtBE,qBAAQ;YACRC,wBAAW;YACXC,0BAAa;SACd;IACHC,SAAS,IAAM;QACb,MAAMC,MAAMC,mBAAS,CAACC,GAAG,CAAeC,iBAAO;QAC/C,MAAMC,YAAYH,mBAAS,CAACI,QAAQ,CAACC,kBAAS,EAAEC,iBAAO;QAEvDP,IAAIQ,QAAQ,eACV,qBAACC,UAAM;sBACL,cAAA,qBAACC,iBAAa;gBAACN,WAAWA;;;IAGhC;AACF","file":"tree.js"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC","file":"index.d.ts","sourcesContent":["export * from './filters';\nexport * from './git';\nexport * from './middlewares';\nexport * from './project';\nexport * from './services';\nexport * from './ui';\nexport * from './utils';\n"]}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
_exportStar(require("./filters"), exports);
|
|
6
6
|
_exportStar(require("./git"), exports);
|
|
7
|
-
_exportStar(require("./
|
|
7
|
+
_exportStar(require("./middlewares"), exports);
|
|
8
8
|
_exportStar(require("./project"), exports);
|
|
9
9
|
_exportStar(require("./services"), exports);
|
|
10
10
|
_exportStar(require("./ui"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './filters';\nexport * from './git';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["index.js"],"sourcesContent":["export * from './filters';\nexport * from './git';\nexport * from './middlewares';\nexport * from './project';\nexport * from './services';\nexport * from './ui';\nexport * from './utils';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA","file":"index.js"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["main.ts"],"names":[],"mappings":"","file":"main.d.ts","sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { globalConfig } from './
|
|
1
|
+
{"version":3,"sources":["main.ts"],"names":[],"mappings":"","file":"main.d.ts","sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport pkg from '../package.json';\nimport { globalConfig } from './middlewares';\nimport { applyMiddlewares } from './utils';\n\n// Bootstrap\n(async () => {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(yargs.terminalWidth());\n\n // Middlewares\n applyMiddlewares(parser, [globalConfig]);\n\n // Parse !\n await parser\n .commandDir('commands', {\n visit: obj => obj.default\n })\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n})();\n"]}
|
package/dist/main.js
CHANGED
|
@@ -4,8 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
|
|
6
6
|
const _helpers = require("yargs/helpers");
|
|
7
|
-
const _modifiers = require("./modifiers");
|
|
8
7
|
const _packageJson = /*#__PURE__*/ _interopRequireDefault(require("../package.json"));
|
|
8
|
+
const _middlewares = require("./middlewares");
|
|
9
|
+
const _utils = require("./utils");
|
|
9
10
|
function _interopRequireDefault(obj) {
|
|
10
11
|
return obj && obj.__esModule ? obj : {
|
|
11
12
|
default: obj
|
|
@@ -16,7 +17,9 @@ function _interopRequireDefault(obj) {
|
|
|
16
17
|
// Setup yargs
|
|
17
18
|
const parser = (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).scriptName('jill').completion('completion', 'Generate bash completion script').help('help', 'Show help for a command').version('version', 'Show version', _packageJson.default.version).wrap(_yargs.default.terminalWidth());
|
|
18
19
|
// Middlewares
|
|
19
|
-
(0,
|
|
20
|
+
(0, _utils.applyMiddlewares)(parser, [
|
|
21
|
+
_middlewares.globalConfig
|
|
22
|
+
]);
|
|
20
23
|
// Parse !
|
|
21
24
|
await parser.commandDir('commands', {
|
|
22
25
|
visit: (obj)=>obj.default
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["main.js"],"sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { globalConfig } from './
|
|
1
|
+
{"version":3,"sources":["main.js"],"sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport pkg from '../package.json';\nimport { globalConfig } from './middlewares';\nimport { applyMiddlewares } from './utils';\n\n// Bootstrap\n(async () => {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(yargs.terminalWidth());\n\n // Middlewares\n applyMiddlewares(parser, [globalConfig]);\n\n // Parse !\n await parser\n .commandDir('commands', {\n visit: obj => obj.default\n })\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n})();\n"],"names":["parser","yargs","hideBin","process","argv","scriptName","completion","help","version","pkg","wrap","terminalWidth","applyMiddlewares","globalConfig","commandDir","visit","obj","default","demandCommand","recommendCommands","strict","parse"],"mappings":"AAAA;;;;4DAAkB;yBACM;kEAER;6BACa;uBACI;;;;;;AAEjC,YAAY;AACX,CAAA,UAAY;IACX,cAAc;IACd,MAAMA,SAASC,IAAAA,cAAK,EAACC,IAAAA,gBAAO,EAACC,QAAQC,IAAI,GACtCC,UAAU,CAAC,QACXC,UAAU,CAAC,cAAc,mCACzBC,IAAI,CAAC,QAAQ,2BACbC,OAAO,CAAC,WAAW,gBAAgBC,oBAAG,CAACD,OAAO,EAC9CE,IAAI,CAACT,cAAK,CAACU,aAAa;IAE3B,cAAc;IACdC,IAAAA,uBAAgB,EAACZ,QAAQ;QAACa,yBAAY;KAAC;IAEvC,UAAU;IACV,MAAMb,OACHc,UAAU,CAAC,YAAY;QACtBC,OAAOC,CAAAA,MAAOA,IAAIC,OAAO;IAC3B,GACCC,aAAa,GACbC,iBAAiB,GACjBC,MAAM,GACNC,KAAK;AACV,CAAA","file":"main.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/global-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;EAkBvB,CAAC","file":"global-config.d.ts","sourcesContent":["import { container, GLOBAL_CONFIG } from '../services';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const globalConfig = defineMiddleware({\n builder: (yargs) => yargs\n .option('verbose', {\n alias: 'v',\n type: 'count',\n description: 'Set verbosity level',\n })\n .option('jobs', {\n alias: 'j',\n type: 'number',\n description: 'Set maximum parallel job number',\n }),\n handler(args) {\n container.bind(GLOBAL_CONFIG).toConstantValue({\n verbose: args.verbose,\n jobs: args.jobs,\n });\n }\n});\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "globalConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>globalConfig
|
|
8
|
+
});
|
|
9
|
+
const _services = require("../services");
|
|
10
|
+
const _utils = require("../utils");
|
|
11
|
+
const globalConfig = (0, _utils.defineMiddleware)({
|
|
12
|
+
builder: (yargs)=>yargs.option('verbose', {
|
|
13
|
+
alias: 'v',
|
|
14
|
+
type: 'count',
|
|
15
|
+
description: 'Set verbosity level'
|
|
16
|
+
}).option('jobs', {
|
|
17
|
+
alias: 'j',
|
|
18
|
+
type: 'number',
|
|
19
|
+
description: 'Set maximum parallel job number'
|
|
20
|
+
}),
|
|
21
|
+
handler (args) {
|
|
22
|
+
_services.container.bind(_services.GLOBAL_CONFIG).toConstantValue({
|
|
23
|
+
verbose: args.verbose,
|
|
24
|
+
jobs: args.jobs
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=global-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/global-config.js"],"sourcesContent":["import { container, GLOBAL_CONFIG } from '../services';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const globalConfig = defineMiddleware({\n builder: (yargs) => yargs\n .option('verbose', {\n alias: 'v',\n type: 'count',\n description: 'Set verbosity level',\n })\n .option('jobs', {\n alias: 'j',\n type: 'number',\n description: 'Set maximum parallel job number',\n }),\n handler(args) {\n container.bind(GLOBAL_CONFIG).toConstantValue({\n verbose: args.verbose,\n jobs: args.jobs,\n });\n }\n});\n"],"names":["globalConfig","defineMiddleware","builder","yargs","option","alias","type","description","handler","args","container","bind","GLOBAL_CONFIG","toConstantValue","verbose","jobs"],"mappings":"AAAA;;;;+BAIaA;;aAAAA;;0BAJ4B;uBACR;AAG1B,MAAMA,eAAeC,IAAAA,uBAAgB,EAAC;IAC3CC,SAAS,CAACC,QAAUA,MACjBC,MAAM,CAAC,WAAW;YACjBC,OAAO;YACPC,MAAM;YACNC,aAAa;QACf,GACCH,MAAM,CAAC,QAAQ;YACdC,OAAO;YACPC,MAAM;YACNC,aAAa;QACf;IACFC,SAAQC,IAAI,EAAE;QACZC,mBAAS,CAACC,IAAI,CAACC,uBAAa,EAAEC,eAAe,CAAC;YAC5CC,SAASL,KAAKK,OAAO;YACrBC,MAAMN,KAAKM,IAAI;QACjB;IACF;AACF","file":"global-config.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC","file":"index.d.ts","sourcesContent":["export * from './global-config';\nexport * from './load-project';\nexport * from './load-workspace';\nexport * from './setup-ink';\n"]}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
_exportStar(require("./load-project"), exports);
|
|
6
5
|
_exportStar(require("./global-config"), exports);
|
|
6
|
+
_exportStar(require("./load-project"), exports);
|
|
7
|
+
_exportStar(require("./load-workspace"), exports);
|
|
7
8
|
_exportStar(require("./setup-ink"), exports);
|
|
8
9
|
function _exportStar(from, to) {
|
|
9
10
|
Object.keys(from).forEach(function(k) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/index.js"],"sourcesContent":["export * from './global-config';\nexport * from './load-project';\nexport * from './load-workspace';\nexport * from './setup-ink';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA;oBACA","file":"index.js"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Argv } from 'yargs';
|
|
2
1
|
import { PackageManager } from '../project';
|
|
3
|
-
export declare
|
|
2
|
+
export declare const loadProject: import("../utils").Middleware<unknown, {
|
|
4
3
|
project: string;
|
|
5
4
|
} & {
|
|
6
5
|
"package-manager": PackageManager | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/load-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAW,MAAM,YAAY,CAAC;AAIrD,eAAO,MAAM,WAAW;;;;EA8BtB,CAAC","file":"load-project.d.ts","sourcesContent":["import { container, CURRENT, SpinnerService } from '../services';\nimport { PackageManager, Project } from '../project';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const loadProject = defineMiddleware({\n builder: (yargs) => yargs\n .option('project', {\n alias: 'p',\n type: 'string',\n default: process.cwd(),\n description: 'Project root directory'\n })\n .option('package-manager', {\n choices: ['yarn', 'npm'],\n default: undefined as PackageManager | undefined,\n type: 'string',\n description: 'Force package manager'\n }),\n async handler(args) {\n const spinner = container.get(SpinnerService);\n\n try {\n spinner.spin('Loading project ...');\n const root = args.project = await Project.searchProjectRoot(args.project);\n\n container.bind(Project)\n .toDynamicValue(() => new Project(root, {\n packageManager: args['package-manager']\n }))\n .whenTargetNamed(CURRENT);\n } finally {\n spinner.stop();\n }\n }\n});\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "loadProject", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>loadProject
|
|
8
|
+
});
|
|
9
|
+
const _services = require("../services");
|
|
10
|
+
const _project = require("../project");
|
|
11
|
+
const _utils = require("../utils");
|
|
12
|
+
const loadProject = (0, _utils.defineMiddleware)({
|
|
13
|
+
builder: (yargs)=>yargs.option('project', {
|
|
14
|
+
alias: 'p',
|
|
15
|
+
type: 'string',
|
|
16
|
+
default: process.cwd(),
|
|
17
|
+
description: 'Project root directory'
|
|
18
|
+
}).option('package-manager', {
|
|
19
|
+
choices: [
|
|
20
|
+
'yarn',
|
|
21
|
+
'npm'
|
|
22
|
+
],
|
|
23
|
+
default: undefined,
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'Force package manager'
|
|
26
|
+
}),
|
|
27
|
+
async handler (args) {
|
|
28
|
+
const spinner = _services.container.get(_services.SpinnerService);
|
|
29
|
+
try {
|
|
30
|
+
spinner.spin('Loading project ...');
|
|
31
|
+
const root = args.project = await _project.Project.searchProjectRoot(args.project);
|
|
32
|
+
_services.container.bind(_project.Project).toDynamicValue(()=>new _project.Project(root, {
|
|
33
|
+
packageManager: args['package-manager']
|
|
34
|
+
})).whenTargetNamed(_services.CURRENT);
|
|
35
|
+
} finally{
|
|
36
|
+
spinner.stop();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=load-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/load-project.js"],"sourcesContent":["import { container, CURRENT, SpinnerService } from '../services';\nimport { PackageManager, Project } from '../project';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const loadProject = defineMiddleware({\n builder: (yargs) => yargs\n .option('project', {\n alias: 'p',\n type: 'string',\n default: process.cwd(),\n description: 'Project root directory'\n })\n .option('package-manager', {\n choices: ['yarn', 'npm'],\n default: undefined as PackageManager | undefined,\n type: 'string',\n description: 'Force package manager'\n }),\n async handler(args) {\n const spinner = container.get(SpinnerService);\n\n try {\n spinner.spin('Loading project ...');\n const root = args.project = await Project.searchProjectRoot(args.project);\n\n container.bind(Project)\n .toDynamicValue(() => new Project(root, {\n packageManager: args['package-manager']\n }))\n .whenTargetNamed(CURRENT);\n } finally {\n spinner.stop();\n }\n }\n});\n"],"names":["loadProject","defineMiddleware","builder","yargs","option","alias","type","default","process","cwd","description","choices","undefined","handler","args","spinner","container","get","SpinnerService","spin","root","project","Project","searchProjectRoot","bind","toDynamicValue","packageManager","whenTargetNamed","CURRENT","stop"],"mappings":"AAAA;;;;+BAKaA;;aAAAA;;0BALsC;yBACX;uBACP;AAG1B,MAAMA,cAAcC,IAAAA,uBAAgB,EAAC;IAC1CC,SAAS,CAACC,QAAUA,MACjBC,MAAM,CAAC,WAAW;YACjBC,OAAO;YACPC,MAAM;YACNC,SAASC,QAAQC,GAAG;YACpBC,aAAa;QACf,GACCN,MAAM,CAAC,mBAAmB;YACzBO,SAAS;gBAAC;gBAAQ;aAAM;YACxBJ,SAASK;YACTN,MAAM;YACNI,aAAa;QACf;IACF,MAAMG,SAAQC,IAAI,EAAE;QAClB,MAAMC,UAAUC,mBAAS,CAACC,GAAG,CAACC,wBAAc;QAE5C,IAAI;YACFH,QAAQI,IAAI,CAAC;YACb,MAAMC,OAAON,KAAKO,OAAO,GAAG,MAAMC,gBAAO,CAACC,iBAAiB,CAACT,KAAKO,OAAO;YAExEL,mBAAS,CAACQ,IAAI,CAACF,gBAAO,EACnBG,cAAc,CAAC,IAAM,IAAIH,gBAAO,CAACF,MAAM;oBACtCM,gBAAgBZ,IAAI,CAAC,kBAAkB;gBACzC,IACCa,eAAe,CAACC,iBAAO;QAC5B,SAAU;YACRb,QAAQc,IAAI;QACd;IACF;AACF","file":"load-project.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/load-workspace.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;;EA2BxB,CAAC","file":"load-workspace.d.ts","sourcesContent":["import yargs from 'yargs';\n\nimport { container, CURRENT, SpinnerService } from '../services';\nimport { Project, Workspace } from '../project';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const loadWorkspace = defineMiddleware({\n builder: (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n }),\n async handler(args): Promise<void> {\n const spinner = container.get(SpinnerService);\n const project = container.getNamed(Project, CURRENT);\n\n try {\n spinner.spin(`Loading \"${args.workspace || '.'}\" workspace ...`);\n const workspace = await project.workspace(args.workspace);\n\n if (!workspace) {\n spinner.failed(`Workspace \"${args.workspace || '.'}\" not found`);\n yargs.exit(1, new Error('Workspace not found'));\n } else {\n container.bind(Workspace)\n .toConstantValue(workspace)\n .whenTargetNamed(CURRENT);\n }\n } finally {\n spinner.stop();\n }\n }\n});\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "loadWorkspace", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>loadWorkspace
|
|
8
|
+
});
|
|
9
|
+
const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
|
|
10
|
+
const _services = require("../services");
|
|
11
|
+
const _project = require("../project");
|
|
12
|
+
const _utils = require("../utils");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const loadWorkspace = (0, _utils.defineMiddleware)({
|
|
19
|
+
builder: (yargs)=>yargs.option('workspace', {
|
|
20
|
+
alias: 'w',
|
|
21
|
+
type: 'string',
|
|
22
|
+
desc: 'Workspace to use'
|
|
23
|
+
}),
|
|
24
|
+
async handler (args) {
|
|
25
|
+
const spinner = _services.container.get(_services.SpinnerService);
|
|
26
|
+
const project = _services.container.getNamed(_project.Project, _services.CURRENT);
|
|
27
|
+
try {
|
|
28
|
+
spinner.spin(`Loading "${args.workspace || '.'}" workspace ...`);
|
|
29
|
+
const workspace = await project.workspace(args.workspace);
|
|
30
|
+
if (!workspace) {
|
|
31
|
+
spinner.failed(`Workspace "${args.workspace || '.'}" not found`);
|
|
32
|
+
_yargs.default.exit(1, new Error('Workspace not found'));
|
|
33
|
+
} else {
|
|
34
|
+
_services.container.bind(_project.Workspace).toConstantValue(workspace).whenTargetNamed(_services.CURRENT);
|
|
35
|
+
}
|
|
36
|
+
} finally{
|
|
37
|
+
spinner.stop();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=load-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/load-workspace.js"],"sourcesContent":["import yargs from 'yargs';\n\nimport { container, CURRENT, SpinnerService } from '../services';\nimport { Project, Workspace } from '../project';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const loadWorkspace = defineMiddleware({\n builder: (yargs) => yargs\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n }),\n async handler(args): Promise<void> {\n const spinner = container.get(SpinnerService);\n const project = container.getNamed(Project, CURRENT);\n\n try {\n spinner.spin(`Loading \"${args.workspace || '.'}\" workspace ...`);\n const workspace = await project.workspace(args.workspace);\n\n if (!workspace) {\n spinner.failed(`Workspace \"${args.workspace || '.'}\" not found`);\n yargs.exit(1, new Error('Workspace not found'));\n } else {\n container.bind(Workspace)\n .toConstantValue(workspace)\n .whenTargetNamed(CURRENT);\n }\n } finally {\n spinner.stop();\n }\n }\n});\n"],"names":["loadWorkspace","defineMiddleware","builder","yargs","option","alias","type","desc","handler","args","spinner","container","get","SpinnerService","project","getNamed","Project","CURRENT","spin","workspace","failed","exit","Error","bind","Workspace","toConstantValue","whenTargetNamed","stop"],"mappings":"AAAA;;;;+BAOaA;;aAAAA;;4DAPK;0BAEiC;yBAChB;uBACF;;;;;;AAG1B,MAAMA,gBAAgBC,IAAAA,uBAAgB,EAAC;IAC5CC,SAAS,CAACC,QAAUA,MACjBC,MAAM,CAAC,aAAa;YACnBC,OAAO;YACPC,MAAM;YACNC,MAAM;QACR;IACF,MAAMC,SAAQC,IAAI,EAAiB;QACjC,MAAMC,UAAUC,mBAAS,CAACC,GAAG,CAACC,wBAAc;QAC5C,MAAMC,UAAUH,mBAAS,CAACI,QAAQ,CAACC,gBAAO,EAAEC,iBAAO;QAEnD,IAAI;YACFP,QAAQQ,IAAI,CAAC,CAAC,SAAS,EAAET,KAAKU,SAAS,IAAI,IAAI,eAAe,CAAC;YAC/D,MAAMA,YAAY,MAAML,QAAQK,SAAS,CAACV,KAAKU,SAAS;YAExD,IAAI,CAACA,WAAW;gBACdT,QAAQU,MAAM,CAAC,CAAC,WAAW,EAAEX,KAAKU,SAAS,IAAI,IAAI,WAAW,CAAC;gBAC/DhB,cAAK,CAACkB,IAAI,CAAC,GAAG,IAAIC,MAAM;YAC1B,OAAO;gBACLX,mBAAS,CAACY,IAAI,CAACC,kBAAS,EACrBC,eAAe,CAACN,WAChBO,eAAe,CAACT,iBAAO;YAC5B,CAAC;QACH,SAAU;YACRP,QAAQiB,IAAI;QACd;IACF;AACF","file":"load-workspace.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setupInk: import("../utils").Middleware<unknown, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/setup-ink.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,iDAOnB,CAAC","file":"setup-ink.d.ts","sourcesContent":["import { render } from 'ink';\n\nimport { container, INK_APP } from '../services';\nimport { Layout } from '../ui';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const setupInk = defineMiddleware({\n handler() {\n container.bind(INK_APP)\n .toConstantValue(render(<Layout/>, {\n stdout: process.stdout.isTTY ? process.stdout : process.stderr,\n }));\n }\n});\n"]}
|
|
@@ -7,13 +7,16 @@ Object.defineProperty(exports, "setupInk", {
|
|
|
7
7
|
get: ()=>setupInk
|
|
8
8
|
});
|
|
9
9
|
const _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
const _ink = require("ink");
|
|
10
11
|
const _services = require("../services");
|
|
11
12
|
const _ui = require("../ui");
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
_services.container.bind(_services.INK_APP).toConstantValue((0, _ink.render)(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {})
|
|
16
|
-
|
|
17
|
-
}
|
|
13
|
+
const _utils = require("../utils");
|
|
14
|
+
const setupInk = (0, _utils.defineMiddleware)({
|
|
15
|
+
handler () {
|
|
16
|
+
_services.container.bind(_services.INK_APP).toConstantValue((0, _ink.render)(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {}), {
|
|
17
|
+
stdout: process.stdout.isTTY ? process.stdout : process.stderr
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
});
|
|
18
21
|
|
|
19
22
|
//# sourceMappingURL=setup-ink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["middlewares/setup-ink.js"],"sourcesContent":["import { render } from 'ink';\n\nimport { container, INK_APP } from '../services';\nimport { Layout } from '../ui';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const setupInk = defineMiddleware({\n handler() {\n container.bind(INK_APP)\n .toConstantValue(render(<Layout/>, {\n stdout: process.stdout.isTTY ? process.stdout : process.stderr,\n }));\n }\n});\n"],"names":["setupInk","defineMiddleware","handler","container","bind","INK_APP","toConstantValue","render","Layout","stdout","process","isTTY","stderr"],"mappings":"AAAA;;;;+BAOaA;;aAAAA;;;qBAPU;0BAEY;oBACZ;uBACU;AAG1B,MAAMA,WAAWC,IAAAA,uBAAgB,EAAC;IACvCC,WAAU;QACRC,mBAAS,CAACC,IAAI,CAACC,iBAAO,EACnBC,eAAe,CAACC,IAAAA,WAAM,gBAAC,qBAACC,UAAM,OAAI;YACjCC,QAAQC,QAAQD,MAAM,CAACE,KAAK,GAAGD,QAAQD,MAAM,GAAGC,QAAQE,MAAM;QAChE;IACJ;AACF","file":"setup-ink.js"}
|
|
@@ -2,7 +2,7 @@ import { Container } from 'inversify';
|
|
|
2
2
|
import 'reflect-metadata';
|
|
3
3
|
export declare const INK_APP: unique symbol;
|
|
4
4
|
export declare const GLOBAL_CONFIG: unique symbol;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const CURRENT: unique symbol;
|
|
6
6
|
export interface GlobalConfig {
|
|
7
7
|
jobs?: number;
|
|
8
8
|
verbose: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["services/inversify.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,kBAAkB,CAAC;AAG1B,eAAO,MAAM,OAAO,eAAuB,CAAC;AAC5C,eAAO,MAAM,aAAa,eAA6B,CAAC;AACxD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"sources":["services/inversify.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,kBAAkB,CAAC;AAG1B,eAAO,MAAM,OAAO,eAAuB,CAAC;AAC5C,eAAO,MAAM,aAAa,eAA6B,CAAC;AACxD,eAAO,MAAM,OAAO,eAAwB,CAAC;AAG7C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,eAAO,MAAM,SAAS,WAEpB,CAAC;AAGH,eAAO,MAAQ,UAAU,4NAA6B,CAAC","file":"inversify.config.d.ts","sourcesContent":["import { Container } from 'inversify';\nimport getDecorators from 'inversify-inject-decorators';\n\nimport 'reflect-metadata';\n\n// Constants\nexport const INK_APP = Symbol.for('InkApp');\nexport const GLOBAL_CONFIG = Symbol.for('GlobalConfig');\nexport const CURRENT = Symbol.for('Current');\n\n// Types\nexport interface GlobalConfig {\n jobs?: number;\n verbose: number;\n}\n\n// Container\nexport const container = new Container({\n skipBaseClassChecks: true,\n});\n\n// Utilities\nexport const { lazyInject } = getDecorators(container);\n"]}
|
|
@@ -11,7 +11,7 @@ function _export(target, all) {
|
|
|
11
11
|
_export(exports, {
|
|
12
12
|
INK_APP: ()=>INK_APP,
|
|
13
13
|
GLOBAL_CONFIG: ()=>GLOBAL_CONFIG,
|
|
14
|
-
|
|
14
|
+
CURRENT: ()=>CURRENT,
|
|
15
15
|
container: ()=>container,
|
|
16
16
|
lazyInject: ()=>lazyInject
|
|
17
17
|
});
|
|
@@ -25,7 +25,7 @@ function _interopRequireDefault(obj) {
|
|
|
25
25
|
}
|
|
26
26
|
const INK_APP = Symbol.for('InkApp');
|
|
27
27
|
const GLOBAL_CONFIG = Symbol.for('GlobalConfig');
|
|
28
|
-
const
|
|
28
|
+
const CURRENT = Symbol.for('Current');
|
|
29
29
|
const container = new _inversify.Container({
|
|
30
30
|
skipBaseClassChecks: true
|
|
31
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["services/inversify.config.js"],"sourcesContent":["import { Container } from 'inversify';\nimport getDecorators from 'inversify-inject-decorators';\n\nimport 'reflect-metadata';\n\n// Constants\nexport const INK_APP = Symbol.for('InkApp');\nexport const GLOBAL_CONFIG = Symbol.for('GlobalConfig');\nexport const
|
|
1
|
+
{"version":3,"sources":["services/inversify.config.js"],"sourcesContent":["import { Container } from 'inversify';\nimport getDecorators from 'inversify-inject-decorators';\n\nimport 'reflect-metadata';\n\n// Constants\nexport const INK_APP = Symbol.for('InkApp');\nexport const GLOBAL_CONFIG = Symbol.for('GlobalConfig');\nexport const CURRENT = Symbol.for('Current');\n\n// Types\nexport interface GlobalConfig {\n jobs?: number;\n verbose: number;\n}\n\n// Container\nexport const container = new Container({\n skipBaseClassChecks: true,\n});\n\n// Utilities\nexport const { lazyInject } = getDecorators(container);\n"],"names":["INK_APP","GLOBAL_CONFIG","CURRENT","container","lazyInject","Symbol","for","Container","skipBaseClassChecks","getDecorators"],"mappings":"AAAA;;;;;;;;;;;IAMaA,OAAO,MAAPA;IACAC,aAAa,MAAbA;IACAC,OAAO,MAAPA;IASAC,SAAS,MAATA;IAKEC,UAAU,MAAVA;;2BAtBW;gFACA;QAEnB;;;;;;AAGA,MAAMJ,UAAUK,OAAOC,GAAG,CAAC;AAC3B,MAAML,gBAAgBI,OAAOC,GAAG,CAAC;AACjC,MAAMJ,UAAUG,OAAOC,GAAG,CAAC;AAS3B,MAAMH,YAAY,IAAII,oBAAS,CAAC;IACrCC,qBAAqB,IAAI;AAC3B;AAGO,MAAM,EAAEJ,WAAU,EAAE,GAAGK,IAAAA,kCAAa,EAACN","file":"inversify.config.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["services/logger.service.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"sources":["services/logger.service.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;AAW9B,eAAO,MAAM,aAAa,wBAwBzB,CAAC;AAGF,qBACa,MAAM;CAAG;AAGtB,MAAM,WAAW,MAAO,SAAQ,OAAO,CAAC,MAAM;CAAG","file":"logger.service.d.ts","sourcesContent":["import chalk from 'chalk';\nimport { injectable } from 'inversify';\nimport winston from 'winston';\n\nimport { type GlobalConfig, GLOBAL_CONFIG, container } from './inversify.config';\n\n// Constants\nconst VERBOSITY_LEVEL: Record<number, string> = {\n 1: 'verbose',\n 2: 'debug',\n};\n\n// Utils\nexport const consoleFormat = winston.format.combine(\n winston.format.errors(),\n winston.format.colorize({\n message: true,\n colors: { debug: 'grey', verbose: 'blue', info: 'white', error: 'red' }\n }),\n winston.format.printf(({ label, message, ms }) => {\n const lines = message.split('\\n');\n\n // Format\n let spaces = '';\n let formatted = `${lines[0]} ${chalk.magenta(ms)}`;\n\n if (label) {\n spaces = ' '.repeat(label.length + 3);\n formatted = `${chalk.grey(`[${label}]`)} ${lines[0]} ${chalk.magenta(ms)}`;\n }\n\n for (let i = 1; i < lines.length; ++i) {\n formatted += `\\n${spaces}${lines[i]}`;\n }\n\n return formatted;\n }),\n);\n\n// Service\n@injectable()\nexport class Logger {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Logger extends winston.Logger {}\n\ncontainer.bind(Logger)\n .toDynamicValue((context) => {\n const config = context.container.get<GlobalConfig>(GLOBAL_CONFIG);\n\n return winston.createLogger({\n level: VERBOSITY_LEVEL[Math.min(config.verbose, 2)],\n format: winston.format.combine(\n winston.format.timestamp(),\n winston.format.ms(),\n ),\n transports: [\n new winston.transports.Console({\n format: consoleFormat\n })\n ]\n });\n })\n .inSingletonScope();\n"]}
|