@jujulego/jill 2.0.0-beta.2 → 2.0.0-rc.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/LICENSE +21 -0
- package/README.md +28 -0
- package/dist/commands/each.d.ts +16 -0
- package/dist/commands/each.d.ts.map +1 -0
- package/dist/commands/each.js +117 -0
- package/dist/commands/each.js.map +1 -0
- package/dist/commands/{list.command.d.ts → list.d.ts} +3 -5
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +170 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/run.d.ts +8 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +59 -0
- package/dist/commands/run.js.map +1 -0
- 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/filters/affected.filter.d.ts +11 -0
- package/dist/filters/affected.filter.d.ts.map +1 -0
- package/dist/filters/affected.filter.js +82 -0
- package/dist/filters/affected.filter.js.map +1 -0
- package/dist/filters/index.d.ts +4 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/index.js +21 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/filters/pipeline.d.ts +11 -0
- package/dist/filters/pipeline.d.ts.map +1 -0
- package/dist/filters/pipeline.js +34 -0
- package/dist/filters/pipeline.js.map +1 -0
- package/dist/filters/private.filter.d.ts +7 -0
- package/dist/filters/private.filter.d.ts.map +1 -0
- package/dist/filters/private.filter.js +20 -0
- package/dist/filters/private.filter.js.map +1 -0
- package/dist/filters/scripts.filter.d.ts +7 -0
- package/dist/filters/scripts.filter.d.ts.map +1 -0
- package/dist/filters/scripts.filter.js +21 -0
- package/dist/filters/scripts.filter.js.map +1 -0
- package/dist/git.d.ts +16 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +94 -0
- package/dist/git.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -33
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -62
- 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/middlewares/index.d.ts +4 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +21 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/load-project.d.ts +6 -0
- 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/middlewares/setup-ink.js +22 -0
- package/dist/middlewares/setup-ink.js.map +1 -0
- package/dist/project/index.d.ts +2 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +19 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/project.d.ts +25 -0
- package/dist/project/project.d.ts.map +1 -0
- package/dist/project/project.js +190 -0
- package/dist/project/project.js.map +1 -0
- package/dist/project/workspace.d.ts +34 -0
- package/dist/project/workspace.d.ts.map +1 -0
- package/dist/project/workspace.js +173 -0
- package/dist/project/workspace.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +21 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/inversify.config.d.ts +11 -0
- package/dist/services/inversify.config.d.ts.map +1 -0
- package/dist/services/inversify.config.js +34 -0
- package/dist/services/inversify.config.js.map +1 -0
- package/dist/services/logger.service.d.ts +6 -0
- package/dist/services/logger.service.d.ts.map +1 -0
- package/dist/services/logger.service.js +75 -0
- package/dist/services/logger.service.js.map +1 -0
- package/dist/services/spinner.service.d.ts +18 -0
- package/dist/services/spinner.service.d.ts.map +1 -0
- package/dist/services/spinner.service.js +68 -0
- package/dist/services/spinner.service.js.map +1 -0
- package/dist/services/task-manager.service.d.ts +1 -0
- package/dist/services/task-manager.service.d.ts.map +1 -0
- package/dist/services/task-manager.service.js +18 -0
- package/dist/services/task-manager.service.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/global-spinner.d.ts +2 -0
- package/dist/ui/global-spinner.d.ts.map +1 -0
- package/dist/ui/global-spinner.js +65 -0
- package/dist/ui/global-spinner.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +24 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/layout.d.ts +2 -0
- package/dist/ui/layout.d.ts.map +1 -0
- package/dist/ui/layout.js +20 -0
- package/dist/ui/layout.js.map +1 -0
- 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/{components/StaticLogs.d.ts → ui/static-logs.d.ts} +0 -0
- package/dist/ui/static-logs.d.ts.map +1 -0
- package/dist/ui/static-logs.js +63 -0
- package/dist/ui/static-logs.js.map +1 -0
- package/dist/ui/task-name.d.ts +6 -0
- package/dist/ui/task-name.d.ts.map +1 -0
- package/dist/ui/task-name.js +35 -0
- package/dist/ui/task-name.js.map +1 -0
- package/dist/ui/task-spinner.d.ts +6 -0
- package/dist/ui/task-spinner.d.ts.map +1 -0
- package/dist/ui/task-spinner.js +143 -0
- package/dist/ui/task-spinner.js.map +1 -0
- package/dist/ui/tasks-spinner.d.ts +6 -0
- package/dist/ui/tasks-spinner.d.ts.map +1 -0
- package/dist/ui/tasks-spinner.js +17 -0
- package/dist/ui/tasks-spinner.js.map +1 -0
- package/dist/{components/WorkspaceTree.d.ts → ui/workspace-tree.d.ts} +1 -1
- 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 +13 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +72 -0
- package/dist/utils.js.map +1 -0
- package/package.json +55 -56
- package/dist/application.context.d.ts +0 -28
- package/dist/application.context.d.ts.map +0 -1
- package/dist/application.context.js +0 -30
- package/dist/application.context.js.map +0 -1
- package/dist/application.d.ts +0 -7
- package/dist/application.d.ts.map +0 -1
- package/dist/application.js +0 -125
- package/dist/application.js.map +0 -1
- package/dist/command.d.ts +0 -8
- package/dist/command.d.ts.map +0 -1
- package/dist/command.js +0 -24
- package/dist/command.js.map +0 -1
- package/dist/commands/each.command.d.ts +0 -18
- package/dist/commands/each.command.d.ts.map +0 -1
- package/dist/commands/each.command.js +0 -176
- package/dist/commands/each.command.js.map +0 -1
- package/dist/commands/list.command.d.ts.map +0 -1
- package/dist/commands/list.command.js +0 -252
- package/dist/commands/list.command.js.map +0 -1
- package/dist/commands/run.command.d.ts +0 -12
- package/dist/commands/run.command.d.ts.map +0 -1
- package/dist/commands/run.command.js +0 -94
- package/dist/commands/run.command.js.map +0 -1
- package/dist/commands/tree.command.d.ts +0 -7
- package/dist/commands/tree.command.d.ts.map +0 -1
- package/dist/commands/tree.command.js +0 -35
- package/dist/commands/tree.command.js.map +0 -1
- package/dist/components/StaticLogs.d.ts.map +0 -1
- package/dist/components/StaticLogs.js +0 -77
- package/dist/components/StaticLogs.js.map +0 -1
- package/dist/components/WorkspaceTree.d.ts.map +0 -1
- package/dist/components/WorkspaceTree.js +0 -151
- package/dist/components/WorkspaceTree.js.map +0 -1
- package/dist/wrapper.d.ts +0 -6
- package/dist/wrapper.d.ts.map +0 -1
- package/dist/wrapper.js +0 -30
- package/dist/wrapper.js.map +0 -1
- package/dist/wrappers/project.wrapper.d.ts +0 -7
- package/dist/wrappers/project.wrapper.d.ts.map +0 -1
- package/dist/wrappers/project.wrapper.js +0 -105
- package/dist/wrappers/project.wrapper.js.map +0 -1
- package/dist/wrappers/workspace.wrapper.d.ts +0 -5
- package/dist/wrappers/workspace.wrapper.d.ts.map +0 -1
- package/dist/wrappers/workspace.wrapper.js +0 -108
- package/dist/wrappers/workspace.wrapper.js.map +0 -1
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const TreeCommand: import("../application.context").CommandComponent<Omit<Omit<{}, "workspace"> & {
|
|
2
|
-
workspace: string | undefined;
|
|
3
|
-
}, "project" | "package-manager"> & {
|
|
4
|
-
project: string | undefined;
|
|
5
|
-
} & {
|
|
6
|
-
"package-manager": import("@jujulego/jill-core").PackageManager | undefined;
|
|
7
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/tree.command.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;;;;EAOtB,CAAC","file":"tree.command.d.ts","sourcesContent":["import { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { WorkspaceTree } from '../components/WorkspaceTree';\n\n// Command\nconst { wrapper } = withProject(withWorkspace(command({\n name: 'tree',\n description: 'Print workspace dependency tree',\n builder: (yargs) => yargs\n})));\n\n// Component\nexport const TreeCommand = wrapper(function InfoCommand() {\n const wks = useWorkspace();\n\n // Render\n return (\n <WorkspaceTree workspace={wks} />\n );\n});\n"]}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TreeCommand = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _command = require("../command");
|
|
11
|
-
|
|
12
|
-
var _project = require("../wrappers/project.wrapper");
|
|
13
|
-
|
|
14
|
-
var _workspace = require("../wrappers/workspace.wrapper");
|
|
15
|
-
|
|
16
|
-
var _WorkspaceTree = require("../components/WorkspaceTree");
|
|
17
|
-
|
|
18
|
-
// Command
|
|
19
|
-
const {
|
|
20
|
-
wrapper
|
|
21
|
-
} = (0, _project.withProject)((0, _workspace.withWorkspace)((0, _command.command)({
|
|
22
|
-
name: 'tree',
|
|
23
|
-
description: 'Print workspace dependency tree',
|
|
24
|
-
builder: yargs => yargs
|
|
25
|
-
}))); // Component
|
|
26
|
-
|
|
27
|
-
const TreeCommand = wrapper(function InfoCommand() {
|
|
28
|
-
const wks = (0, _workspace.useWorkspace)(); // Render
|
|
29
|
-
|
|
30
|
-
return (0, _jsxRuntime.jsx)(_WorkspaceTree.WorkspaceTree, {
|
|
31
|
-
workspace: wks
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
exports.TreeCommand = TreeCommand;
|
|
35
|
-
//# sourceMappingURL=tree.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/tree.command.js","commands/tree.command.tsx"],"names":["wrapper","name","description","builder","yargs","TreeCommand","InfoCommand","wks","WorkspaceTree","workspace"],"mappings":";;;;;;;AAAA;;ACAA;;AACA;;AACA;;AACA;;AAEA;AACA,MAAM;AAAEA,EAAAA;AAAF,IAAc,0BAAY,8BAAc,sBAAQ;AACpDC,EAAAA,IAAI,EAAE,MAD8C;AAEpDC,EAAAA,WAAW,EAAE,iCAFuC;AAGpDC,EAAAA,OAAO,EAAGC,KAAD,IAAWA;AAHgC,CAAR,CAAd,CAAZ,CAApB,C,CAMA;;AACO,MAAMC,WAAW,GAAGL,OAAO,CAAC,SAASM,WAAT,GAAoB;AACrD,QAAMC,GAAG,GAAG,8BAAZ,CADqD,CAGrD;;AACA,SACE,qBAACC,4BAAD,EAAc;AAACC,IAAAA,SAAS,EAAEF;AAAZ,GAAd,CADF;AAGD,CAPiC,CAA3B","file":"tree.command.js","sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { WorkspaceTree } from '../components/WorkspaceTree';\n// Command\nconst { wrapper } = withProject(withWorkspace(command({\n name: 'tree',\n description: 'Print workspace dependency tree',\n builder: (yargs) => yargs\n})));\n// Component\nexport const TreeCommand = wrapper(function InfoCommand() {\n const wks = useWorkspace();\n // Render\n return (_jsx(WorkspaceTree, { workspace: wks }));\n});","import { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { WorkspaceTree } from '../components/WorkspaceTree';\n\n// Command\nconst { wrapper } = withProject(withWorkspace(command({\n name: 'tree',\n description: 'Print workspace dependency tree',\n builder: (yargs) => yargs\n})));\n\n// Component\nexport const TreeCommand = wrapper(function InfoCommand() {\n const wks = useWorkspace();\n\n // Render\n return (\n <WorkspaceTree workspace={wks} />\n );\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/StaticLogs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAWhD,eAAO,MAAM,UAAU,EAAE,EAqCxB,CAAC","file":"StaticLogs.d.ts","sourcesContent":["import { logger } from '@jujulego/jill-core';\nimport { Static, Text } from 'ink';\nimport { FC, useEffect, useState } from 'react';\nimport { format } from 'winston';\nimport Transport from 'winston-transport';\n\n// Types\ninterface Log {\n label?: string;\n message: string;\n}\n\n// Components\nexport const StaticLogs: FC = () => {\n // State\n const [logs, setLogs] = useState<Log[]>([]);\n\n // Effects\n useEffect(() => {\n const transport = new class extends Transport {\n // Constructor\n constructor() {\n super({\n format: format.combine(\n format.errors(),\n format.colorize({ message: true, colors: { debug: 'grey', verbose: 'blue', info: 'white', error: 'red' } }),\n )\n });\n }\n\n // Methods\n log(log: Log, next: () => void): void {\n setLogs((old) => [...old, log]);\n next();\n }\n };\n\n logger.add(transport);\n\n return () => void logger.remove(transport);\n }, []);\n\n // Render\n return (\n <Static items={logs} style={{ height: 1 }}>\n { ({ label, message }, idx) => (\n <Text key={idx}><Text color=\"grey\">jill: { label && `[${label}] ` }</Text>{ message }</Text>\n ) }\n </Static>\n );\n};\n"]}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.StaticLogs = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _jillCore = require("@jujulego/jill-core");
|
|
11
|
-
|
|
12
|
-
var _ink = require("ink");
|
|
13
|
-
|
|
14
|
-
var _react = require("react");
|
|
15
|
-
|
|
16
|
-
var _winston = require("winston");
|
|
17
|
-
|
|
18
|
-
var _winstonTransport = _interopRequireDefault(require("winston-transport"));
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
// Components
|
|
23
|
-
const StaticLogs = () => {
|
|
24
|
-
// State
|
|
25
|
-
const [logs, setLogs] = (0, _react.useState)([]); // Effects
|
|
26
|
-
|
|
27
|
-
(0, _react.useEffect)(() => {
|
|
28
|
-
const transport = new class extends _winstonTransport.default {
|
|
29
|
-
// Constructor
|
|
30
|
-
constructor() {
|
|
31
|
-
super({
|
|
32
|
-
format: _winston.format.combine(_winston.format.errors(), _winston.format.colorize({
|
|
33
|
-
message: true,
|
|
34
|
-
colors: {
|
|
35
|
-
debug: 'grey',
|
|
36
|
-
verbose: 'blue',
|
|
37
|
-
info: 'white',
|
|
38
|
-
error: 'red'
|
|
39
|
-
}
|
|
40
|
-
}))
|
|
41
|
-
});
|
|
42
|
-
} // Methods
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
log(log, next) {
|
|
46
|
-
setLogs(old => [...old, log]);
|
|
47
|
-
next();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
}();
|
|
51
|
-
|
|
52
|
-
_jillCore.logger.add(transport);
|
|
53
|
-
|
|
54
|
-
return () => void _jillCore.logger.remove(transport);
|
|
55
|
-
}, []); // Render
|
|
56
|
-
|
|
57
|
-
return (0, _jsxRuntime.jsx)(_ink.Static, Object.assign({
|
|
58
|
-
items: logs,
|
|
59
|
-
style: {
|
|
60
|
-
height: 1
|
|
61
|
-
}
|
|
62
|
-
}, {
|
|
63
|
-
children: ({
|
|
64
|
-
label,
|
|
65
|
-
message
|
|
66
|
-
}, idx) => (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
67
|
-
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
68
|
-
color: "grey"
|
|
69
|
-
}, {
|
|
70
|
-
children: ["jill: ", label && `[${label}] `]
|
|
71
|
-
})), message]
|
|
72
|
-
}, idx)
|
|
73
|
-
}));
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
exports.StaticLogs = StaticLogs;
|
|
77
|
-
//# sourceMappingURL=StaticLogs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["components/StaticLogs.js","components/StaticLogs.tsx"],"names":["StaticLogs","logs","setLogs","transport","Transport","constructor","format","combine","errors","colorize","message","colors","debug","verbose","info","error","log","next","old","logger","add","remove","Static","Object","assign","items","style","height","children","label","idx","Text","color"],"mappings":";;;;;;;AAAA;;ACAA;;AACA;;AACA;;AACA;;AACA;;;;AAQA;AACO,MAAMA,UAAU,GAAO,MAAK;AACjC;AACA,QAAM,CAACC,IAAD,EAAOC,OAAP,IAAkB,qBAAgB,EAAhB,CAAxB,CAFiC,CAIjC;;AACA,wBAAU,MAAK;AACb,UAAMC,SAAS,GAAG,IAAI,cAAcC,yBAAd,CAAuB;AAC3C;AACAC,MAAAA,WAAA,GAAA;AACE,cAAM;AACJC,UAAAA,MAAM,EAAEA,gBAAOC,OAAP,CACND,gBAAOE,MAAP,EADM,EAENF,gBAAOG,QAAP,CAAgB;AAAEC,YAAAA,OAAO,EAAE,IAAX;AAAiBC,YAAAA,MAAM,EAAE;AAAEC,cAAAA,KAAK,EAAE,MAAT;AAAiBC,cAAAA,OAAO,EAAE,MAA1B;AAAkCC,cAAAA,IAAI,EAAE,OAAxC;AAAiDC,cAAAA,KAAK,EAAE;AAAxD;AAAzB,WAAhB,CAFM;AADJ,SAAN;AAMD,OAT0C,CAW3C;;;AACAC,MAAAA,GAAG,CAACA,GAAD,EAAWC,IAAX,EAA2B;AAC5Bf,QAAAA,OAAO,CAAEgB,GAAD,IAAS,CAAC,GAAGA,GAAJ,EAASF,GAAT,CAAV,CAAP;AACAC,QAAAA,IAAI;AACL;;AAf0C,KAA3B,EAAlB;;AAkBAE,qBAAOC,GAAP,CAAWjB,SAAX;;AAEA,WAAO,MAAM,KAAKgB,iBAAOE,MAAP,CAAclB,SAAd,CAAlB;AACD,GAtBD,EAsBG,EAtBH,EALiC,CA6BjC;;AACA,SACE,qBAACmB,WAAD,EAAOC,MAAA,CAAAC,MAAA,CAAA;AAACC,IAAAA,KAAK,EAAExB,IAAR;AAAcyB,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAE;AAAV;AAArB,GAAA,EAAkC;AAAAC,IAAAA,QAAA,EACrC,CAAC;AAAEC,MAAAA,KAAF;AAASnB,MAAAA;AAAT,KAAD,EAAqBoB,GAArB,KACA,sBAACC,SAAD,EAAK;AAAAH,MAAAA,QAAA,EAAA,CAAW,sBAACG,SAAD,EAAKR,MAAA,CAAAC,MAAA,CAAA;AAACQ,QAAAA,KAAK,EAAC;AAAP,OAAA,EAAa;AAAAJ,QAAAA,QAAA,EAAA,CAAA,QAAA,EAASC,KAAK,IAAI,IAAIA,KAAK,IAA3B;AAAA,OAAb,CAAL,CAAX,EAAuEnB,OAAvE;AAAA,KAAL,EAAWoB,GAAX;AAFqC,GAAlC,CAAP,CADF;AAOD,CArCM","file":"StaticLogs.js","sourcesContent":["import { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nimport { logger } from '@jujulego/jill-core';\nimport { Static, Text } from 'ink';\nimport { useEffect, useState } from 'react';\nimport { format } from 'winston';\nimport Transport from 'winston-transport';\n// Components\nexport const StaticLogs = () => {\n // State\n const [logs, setLogs] = useState([]);\n // Effects\n useEffect(() => {\n const transport = new class extends Transport {\n // Constructor\n constructor() {\n super({\n format: format.combine(format.errors(), format.colorize({ message: true, colors: { debug: 'grey', verbose: 'blue', info: 'white', error: 'red' } }))\n });\n }\n // Methods\n log(log, next) {\n setLogs((old) => [...old, log]);\n next();\n }\n };\n logger.add(transport);\n return () => void logger.remove(transport);\n }, []);\n // Render\n return (_jsx(Static, Object.assign({ items: logs, style: { height: 1 } }, { children: ({ label, message }, idx) => (_jsxs(Text, { children: [_jsxs(Text, Object.assign({ color: \"grey\" }, { children: [\"jill: \", label && `[${label}] `] })), message] }, idx)) })));\n};","import { logger } from '@jujulego/jill-core';\nimport { Static, Text } from 'ink';\nimport { FC, useEffect, useState } from 'react';\nimport { format } from 'winston';\nimport Transport from 'winston-transport';\n\n// Types\ninterface Log {\n label?: string;\n message: string;\n}\n\n// Components\nexport const StaticLogs: FC = () => {\n // State\n const [logs, setLogs] = useState<Log[]>([]);\n\n // Effects\n useEffect(() => {\n const transport = new class extends Transport {\n // Constructor\n constructor() {\n super({\n format: format.combine(\n format.errors(),\n format.colorize({ message: true, colors: { debug: 'grey', verbose: 'blue', info: 'white', error: 'red' } }),\n )\n });\n }\n\n // Methods\n log(log: Log, next: () => void): void {\n setLogs((old) => [...old, log]);\n next();\n }\n };\n\n logger.add(transport);\n\n return () => void logger.remove(transport);\n }, []);\n\n // Render\n return (\n <Static items={logs} style={{ height: 1 }}>\n { ({ label, message }, idx) => (\n <Text key={idx}><Text color=\"grey\">jill: { label && `[${label}] ` }</Text>{ message }</Text>\n ) }\n </Static>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.WorkspaceTree = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
|
|
10
|
-
var _jillCommon = require("@jujulego/jill-common");
|
|
11
|
-
|
|
12
|
-
var _ink = require("ink");
|
|
13
|
-
|
|
14
|
-
var _react = require("react");
|
|
15
|
-
|
|
16
|
-
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
17
|
-
function adopt(value) {
|
|
18
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
19
|
-
resolve(value);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
-
function fulfilled(value) {
|
|
25
|
-
try {
|
|
26
|
-
step(generator.next(value));
|
|
27
|
-
} catch (e) {
|
|
28
|
-
reject(e);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function rejected(value) {
|
|
33
|
-
try {
|
|
34
|
-
step(generator["throw"](value));
|
|
35
|
-
} catch (e) {
|
|
36
|
-
reject(e);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function step(result) {
|
|
41
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
|
|
49
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
50
|
-
var m = o[Symbol.asyncIterator],
|
|
51
|
-
i;
|
|
52
|
-
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 () {
|
|
53
|
-
return this;
|
|
54
|
-
}, i);
|
|
55
|
-
|
|
56
|
-
function verb(n) {
|
|
57
|
-
i[n] = o[n] && function (v) {
|
|
58
|
-
return new Promise(function (resolve, reject) {
|
|
59
|
-
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function settle(resolve, reject, d, v) {
|
|
65
|
-
Promise.resolve(v).then(function (v) {
|
|
66
|
-
resolve({
|
|
67
|
-
value: v,
|
|
68
|
-
done: d
|
|
69
|
-
});
|
|
70
|
-
}, reject);
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
// Utils
|
|
75
|
-
const style = dev => ({
|
|
76
|
-
color: dev ? 'blue' : ''
|
|
77
|
-
}); // Component
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const WorkspaceTree = props => {
|
|
81
|
-
const {
|
|
82
|
-
workspace: wks,
|
|
83
|
-
dev = false,
|
|
84
|
-
level = ''
|
|
85
|
-
} = props; // State
|
|
86
|
-
|
|
87
|
-
const [deps, setDeps] = (0, _react.useState)([]); // Effects
|
|
88
|
-
|
|
89
|
-
(0, _react.useEffect)(() => void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
-
var e_1, _a, e_2, _b;
|
|
91
|
-
|
|
92
|
-
const deps = [];
|
|
93
|
-
|
|
94
|
-
try {
|
|
95
|
-
for (var _c = __asyncValues(wks.dependencies()), _d; _d = yield _c.next(), !_d.done;) {
|
|
96
|
-
const dep = _d.value;
|
|
97
|
-
deps.push([dep, dev]);
|
|
98
|
-
}
|
|
99
|
-
} catch (e_1_1) {
|
|
100
|
-
e_1 = {
|
|
101
|
-
error: e_1_1
|
|
102
|
-
};
|
|
103
|
-
} finally {
|
|
104
|
-
try {
|
|
105
|
-
if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
|
|
106
|
-
} finally {
|
|
107
|
-
if (e_1) throw e_1.error;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
try {
|
|
112
|
-
for (var _e = __asyncValues(wks.devDependencies()), _f; _f = yield _e.next(), !_f.done;) {
|
|
113
|
-
const dep = _f.value;
|
|
114
|
-
deps.push([dep, true]);
|
|
115
|
-
}
|
|
116
|
-
} catch (e_2_1) {
|
|
117
|
-
e_2 = {
|
|
118
|
-
error: e_2_1
|
|
119
|
-
};
|
|
120
|
-
} finally {
|
|
121
|
-
try {
|
|
122
|
-
if (_f && !_f.done && (_b = _e.return)) yield _b.call(_e);
|
|
123
|
-
} finally {
|
|
124
|
-
if (e_2) throw e_2.error;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
setDeps(deps);
|
|
129
|
-
}))(), [dev, wks]); // Render
|
|
130
|
-
|
|
131
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
132
|
-
children: [(0, _jsxRuntime.jsx)(_jillCommon.WorkspaceName, Object.assign({}, style(dev), {
|
|
133
|
-
workspace: wks
|
|
134
|
-
})), (0, _jsxRuntime.jsx)(_ink.Newline, {}), deps.map(([dep, isDev], idx) => (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
135
|
-
children: [level, (0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({}, style(dev), {
|
|
136
|
-
children: [idx === deps.length - 1 ? '└' : '├', "\u2500", ' ']
|
|
137
|
-
})), (0, _jsxRuntime.jsx)(WorkspaceTree, {
|
|
138
|
-
workspace: dep,
|
|
139
|
-
dev: isDev,
|
|
140
|
-
level: (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
141
|
-
children: [level, (0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({}, style(dev), {
|
|
142
|
-
children: [idx === deps.length - 1 ? ' ' : '│', ' ']
|
|
143
|
-
}))]
|
|
144
|
-
})
|
|
145
|
-
})]
|
|
146
|
-
}, dep.name))]
|
|
147
|
-
});
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
exports.WorkspaceTree = WorkspaceTree;
|
|
151
|
-
//# sourceMappingURL=WorkspaceTree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from 'react';
|
|
2
|
-
import { BuilderWrapper, CommandComponent, UseArgsHook } from './application.context';
|
|
3
|
-
import { CommandUtils } from './command';
|
|
4
|
-
export declare type CommandWrapper<A> = <Args>(utils: CommandUtils<Args>) => CommandUtils<Omit<Args, keyof A> & A>;
|
|
5
|
-
export declare type WrapperComponent<A> = <Args>(useArgs: UseArgsHook<A>, Wrapped: CommandComponent<Args>) => ReactElement;
|
|
6
|
-
export declare function commandWrapper<A>(name: string, builder: BuilderWrapper<A>, wrapper: WrapperComponent<A>): CommandWrapper<A>;
|
package/dist/wrapper.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.commandWrapper = commandWrapper;
|
|
7
|
-
|
|
8
|
-
var _application = require("./application.context");
|
|
9
|
-
|
|
10
|
-
// Wrapper generator
|
|
11
|
-
function commandWrapper(name, builder, wrapper) {
|
|
12
|
-
return utils => ({
|
|
13
|
-
useArgs: () => (0, _application.useArgs)(),
|
|
14
|
-
wrapper: Component => {
|
|
15
|
-
const Wrapped = utils.wrapper(Component); // Update builder
|
|
16
|
-
|
|
17
|
-
const command = Object.assign(Object.assign({}, Wrapped.command), {
|
|
18
|
-
builder: yargs => builder(Wrapped.command.builder(yargs))
|
|
19
|
-
}); // Component wrapper
|
|
20
|
-
|
|
21
|
-
const Wrapper = () => wrapper(_application.useArgs, Wrapped);
|
|
22
|
-
|
|
23
|
-
Wrapper.displayName = `${name}(${Wrapped.displayName || Wrapped.name})`;
|
|
24
|
-
return Object.assign(Wrapper, {
|
|
25
|
-
command
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=wrapper.js.map
|
package/dist/wrapper.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,7 +0,0 @@
|
|
|
1
|
-
import { PackageManager, Project } from '@jujulego/jill-core';
|
|
2
|
-
export declare function useProject(): Project;
|
|
3
|
-
export declare const withProject: import("../wrapper").CommandWrapper<{
|
|
4
|
-
project: string | undefined;
|
|
5
|
-
} & {
|
|
6
|
-
"package-manager": PackageManager | undefined;
|
|
7
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["wrappers/project.wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAW9D,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAGD,eAAO,MAAM,WAAW;;;;EAwCvB,CAAC","file":"project.wrapper.d.ts","sourcesContent":["import { PackageManager, Project } 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';\n\n// Context\nconst ProjectContext = createContext<Project | null>(null);\n\n// Hooks\nexport function useProject(): Project {\n const prj = useContext(ProjectContext);\n\n if (!prj) {\n throw new Error('To use the useProject hook you must wrap your command with the withProject wrapper');\n }\n\n return prj;\n}\n\n// Wrapper\nexport const withProject = commandWrapper(\n 'withProject',\n (yargs) => yargs\n .option('project', {\n alias: 'p',\n type: 'string',\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 (useArgs, Wrapped) => {\n const args = useArgs();\n\n // State\n const [project, setProject] = useState<Project>();\n\n // Effects\n useEffect(() => void (async () => {\n const dir = args.project ?? await Project.searchProjectRoot(process.cwd());\n\n setProject(await new Project(dir, {\n packageManager: args['package-manager']\n }));\n })(), [args]);\n\n // Render\n if (!project) {\n return <Text><Spinner /> Loading project ...</Text>;\n }\n\n return (\n <ProjectContext.Provider value={project}>\n <Wrapped />\n </ProjectContext.Provider>\n );\n }\n);\n"]}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useProject = useProject;
|
|
7
|
-
exports.withProject = void 0;
|
|
8
|
-
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
11
|
-
var _jillCore = require("@jujulego/jill-core");
|
|
12
|
-
|
|
13
|
-
var _ink = require("ink");
|
|
14
|
-
|
|
15
|
-
var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
|
|
16
|
-
|
|
17
|
-
var _react = require("react");
|
|
18
|
-
|
|
19
|
-
var _wrapper = require("../wrapper");
|
|
20
|
-
|
|
21
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
-
|
|
23
|
-
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
24
|
-
function adopt(value) {
|
|
25
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
26
|
-
resolve(value);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
-
function fulfilled(value) {
|
|
32
|
-
try {
|
|
33
|
-
step(generator.next(value));
|
|
34
|
-
} catch (e) {
|
|
35
|
-
reject(e);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function rejected(value) {
|
|
40
|
-
try {
|
|
41
|
-
step(generator["throw"](value));
|
|
42
|
-
} catch (e) {
|
|
43
|
-
reject(e);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function step(result) {
|
|
48
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// Context
|
|
56
|
-
const ProjectContext = /*#__PURE__*/(0, _react.createContext)(null); // Hooks
|
|
57
|
-
|
|
58
|
-
function useProject() {
|
|
59
|
-
const prj = (0, _react.useContext)(ProjectContext);
|
|
60
|
-
|
|
61
|
-
if (!prj) {
|
|
62
|
-
throw new Error('To use the useProject hook you must wrap your command with the withProject wrapper');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return prj;
|
|
66
|
-
} // Wrapper
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const withProject = (0, _wrapper.commandWrapper)('withProject', yargs => yargs.option('project', {
|
|
70
|
-
alias: 'p',
|
|
71
|
-
type: 'string',
|
|
72
|
-
description: 'Project root directory'
|
|
73
|
-
}).option('package-manager', {
|
|
74
|
-
choices: ['yarn', 'npm'],
|
|
75
|
-
default: undefined,
|
|
76
|
-
type: 'string',
|
|
77
|
-
description: 'Force package manager'
|
|
78
|
-
}), (useArgs, Wrapped) => {
|
|
79
|
-
const args = useArgs(); // State
|
|
80
|
-
|
|
81
|
-
const [project, setProject] = (0, _react.useState)(); // Effects
|
|
82
|
-
|
|
83
|
-
(0, _react.useEffect)(() => void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
-
var _a;
|
|
85
|
-
|
|
86
|
-
const dir = (_a = args.project) !== null && _a !== void 0 ? _a : yield _jillCore.Project.searchProjectRoot(process.cwd());
|
|
87
|
-
setProject(yield new _jillCore.Project(dir, {
|
|
88
|
-
packageManager: args['package-manager']
|
|
89
|
-
}));
|
|
90
|
-
}))(), [args]); // Render
|
|
91
|
-
|
|
92
|
-
if (!project) {
|
|
93
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
94
|
-
children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {}), " Loading project ..."]
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return (0, _jsxRuntime.jsx)(ProjectContext.Provider, Object.assign({
|
|
99
|
-
value: project
|
|
100
|
-
}, {
|
|
101
|
-
children: (0, _jsxRuntime.jsx)(Wrapped, {})
|
|
102
|
-
}));
|
|
103
|
-
});
|
|
104
|
-
exports.withProject = withProject;
|
|
105
|
-
//# sourceMappingURL=project.wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["wrappers/project.wrapper.js","wrappers/project.wrapper.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","ProjectContext","useProject","prj","Error","withProject","yargs","option","alias","type","description","choices","default","undefined","useArgs","Wrapped","args","project","setProject","_a","dir","Project","searchProjectRoot","process","cwd","packageManager","Text","children","Spinner","Provider","Object","assign"],"mappings":"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","file":"project.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 { Project } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport { createContext, useContext, useEffect, useState } from 'react';\nimport { commandWrapper } from '../wrapper';\n// Context\nconst ProjectContext = createContext(null);\n// Hooks\nexport function useProject() {\n const prj = useContext(ProjectContext);\n if (!prj) {\n throw new Error('To use the useProject hook you must wrap your command with the withProject wrapper');\n }\n return prj;\n}\n// Wrapper\nexport const withProject = commandWrapper('withProject', (yargs) => yargs\n .option('project', {\n alias: 'p',\n type: 'string',\n description: 'Project root directory'\n})\n .option('package-manager', {\n choices: ['yarn', 'npm'],\n default: undefined,\n type: 'string',\n description: 'Force package manager'\n}), (useArgs, Wrapped) => {\n const args = useArgs();\n // State\n const [project, setProject] = useState();\n // Effects\n useEffect(() => void (() => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const dir = (_a = args.project) !== null && _a !== void 0 ? _a : yield Project.searchProjectRoot(process.cwd());\n setProject(yield new Project(dir, {\n packageManager: args['package-manager']\n }));\n }))(), [args]);\n // Render\n if (!project) {\n return _jsxs(Text, { children: [_jsx(Spinner, {}), \" Loading project ...\"] });\n }\n return (_jsx(ProjectContext.Provider, Object.assign({ value: project }, { children: _jsx(Wrapped, {}) })));\n});","import { PackageManager, Project } 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';\n\n// Context\nconst ProjectContext = createContext<Project | null>(null);\n\n// Hooks\nexport function useProject(): Project {\n const prj = useContext(ProjectContext);\n\n if (!prj) {\n throw new Error('To use the useProject hook you must wrap your command with the withProject wrapper');\n }\n\n return prj;\n}\n\n// Wrapper\nexport const withProject = commandWrapper(\n 'withProject',\n (yargs) => yargs\n .option('project', {\n alias: 'p',\n type: 'string',\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 (useArgs, Wrapped) => {\n const args = useArgs();\n\n // State\n const [project, setProject] = useState<Project>();\n\n // Effects\n useEffect(() => void (async () => {\n const dir = args.project ?? await Project.searchProjectRoot(process.cwd());\n\n setProject(await new Project(dir, {\n packageManager: args['package-manager']\n }));\n })(), [args]);\n\n // Render\n if (!project) {\n return <Text><Spinner /> Loading project ...</Text>;\n }\n\n return (\n <ProjectContext.Provider value={project}>\n <Wrapped />\n </ProjectContext.Provider>\n );\n }\n);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useWorkspace = useWorkspace;
|
|
7
|
-
exports.withWorkspace = void 0;
|
|
8
|
-
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
11
|
-
var _ink = require("ink");
|
|
12
|
-
|
|
13
|
-
var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
|
|
14
|
-
|
|
15
|
-
var _react = require("react");
|
|
16
|
-
|
|
17
|
-
var _wrapper = require("../wrapper");
|
|
18
|
-
|
|
19
|
-
var _project = require("./project.wrapper");
|
|
20
|
-
|
|
21
|
-
var _logSymbols = _interopRequireDefault(require("log-symbols"));
|
|
22
|
-
|
|
23
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
|
|
25
|
-
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) {
|
|
27
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
28
|
-
resolve(value);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
33
|
-
function fulfilled(value) {
|
|
34
|
-
try {
|
|
35
|
-
step(generator.next(value));
|
|
36
|
-
} catch (e) {
|
|
37
|
-
reject(e);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function rejected(value) {
|
|
42
|
-
try {
|
|
43
|
-
step(generator["throw"](value));
|
|
44
|
-
} catch (e) {
|
|
45
|
-
reject(e);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function step(result) {
|
|
50
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// Context
|
|
58
|
-
const WorkspaceContext = /*#__PURE__*/(0, _react.createContext)(null); // Hooks
|
|
59
|
-
|
|
60
|
-
function useWorkspace() {
|
|
61
|
-
const wks = (0, _react.useContext)(WorkspaceContext);
|
|
62
|
-
|
|
63
|
-
if (!wks) {
|
|
64
|
-
throw new Error('To use the useWorkspace hook you must wrap your command with the withWorkspace wrapper');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return wks;
|
|
68
|
-
} // Wrapper
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const withWorkspace = (0, _wrapper.commandWrapper)('withWorkspace', yargs => yargs.option('workspace', {
|
|
72
|
-
alias: 'w',
|
|
73
|
-
type: 'string',
|
|
74
|
-
desc: 'Workspace to use'
|
|
75
|
-
}), (useArgs, Wrapped) => {
|
|
76
|
-
const {
|
|
77
|
-
workspace
|
|
78
|
-
} = useArgs();
|
|
79
|
-
const project = (0, _project.useProject)(); // State
|
|
80
|
-
|
|
81
|
-
const [wks, setWks] = (0, _react.useState)(); // Effects
|
|
82
|
-
|
|
83
|
-
(0, _react.useEffect)(() => void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
-
setWks(yield workspace ? project.workspace(workspace) : project.currentWorkspace());
|
|
85
|
-
}))(), [project, workspace]); // Render
|
|
86
|
-
|
|
87
|
-
if (wks === undefined) {
|
|
88
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
89
|
-
children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {}), " Loading \"", workspace || '.', "\" workspace"]
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (wks === null) {
|
|
94
|
-
return (0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
95
|
-
color: "red"
|
|
96
|
-
}, {
|
|
97
|
-
children: [_logSymbols.default.error, " Workspace \"", workspace || '.', "\" not found"]
|
|
98
|
-
}));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return (0, _jsxRuntime.jsx)(WorkspaceContext.Provider, Object.assign({
|
|
102
|
-
value: wks
|
|
103
|
-
}, {
|
|
104
|
-
children: (0, _jsxRuntime.jsx)(Wrapped, {})
|
|
105
|
-
}));
|
|
106
|
-
});
|
|
107
|
-
exports.withWorkspace = withWorkspace;
|
|
108
|
-
//# sourceMappingURL=workspace.wrapper.js.map
|