@jujulego/jill 1.2.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application.context.d.ts +28 -0
- package/dist/application.context.d.ts.map +1 -0
- package/dist/application.context.js +30 -0
- package/dist/application.context.js.map +1 -0
- package/dist/application.d.ts +7 -0
- package/dist/application.d.ts.map +1 -0
- package/dist/application.js +125 -0
- package/dist/application.js.map +1 -0
- package/dist/command.d.ts +8 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +24 -0
- package/dist/command.js.map +1 -0
- package/dist/commands/each.command.d.ts +14 -12
- package/dist/commands/each.command.d.ts.map +1 -1
- package/dist/commands/each.command.js +91 -116
- package/dist/commands/each.command.js.map +1 -1
- package/dist/commands/list.command.d.ts +17 -13
- package/dist/commands/list.command.d.ts.map +1 -1
- package/dist/commands/list.command.js +148 -145
- package/dist/commands/list.command.js.map +1 -1
- package/dist/commands/run.command.d.ts +10 -10
- package/dist/commands/run.command.d.ts.map +1 -1
- package/dist/commands/run.command.js +46 -63
- package/dist/commands/run.command.js.map +1 -1
- package/dist/commands/tree.command.d.ts +7 -0
- package/dist/commands/tree.command.d.ts.map +1 -0
- package/dist/commands/tree.command.js +35 -0
- package/dist/commands/tree.command.js.map +1 -0
- package/dist/components/List.d.ts +9 -0
- package/dist/components/List.d.ts.map +1 -0
- package/dist/components/List.js +57 -0
- package/dist/components/List.js.map +1 -0
- package/dist/components/StaticLogs.d.ts +2 -0
- package/dist/components/StaticLogs.d.ts.map +1 -0
- package/dist/components/StaticLogs.js +77 -0
- package/dist/components/StaticLogs.js.map +1 -0
- package/dist/components/TaskSetSpinner.d.ts +6 -0
- package/dist/components/TaskSetSpinner.d.ts.map +1 -0
- package/dist/components/TaskSetSpinner.js +41 -0
- package/dist/components/TaskSetSpinner.js.map +1 -0
- package/dist/components/TaskSpinner.d.ts +6 -0
- package/dist/components/TaskSpinner.d.ts.map +1 -0
- package/dist/components/TaskSpinner.js +72 -0
- package/dist/components/TaskSpinner.js.map +1 -0
- package/dist/components/WorkspaceTree.d.ts +8 -0
- package/dist/components/WorkspaceTree.d.ts.map +1 -0
- package/dist/components/WorkspaceTree.js +153 -0
- package/dist/components/WorkspaceTree.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -16
- package/dist/main.js.map +1 -1
- package/dist/wrapper.d.ts +6 -0
- package/dist/wrapper.d.ts.map +1 -0
- package/dist/wrapper.js +30 -0
- package/dist/wrapper.js.map +1 -0
- package/dist/wrappers/project.wrapper.d.ts +7 -0
- package/dist/wrappers/project.wrapper.d.ts.map +1 -0
- package/dist/wrappers/project.wrapper.js +105 -0
- package/dist/wrappers/project.wrapper.js.map +1 -0
- package/dist/wrappers/workspace.wrapper.d.ts +5 -0
- package/dist/wrappers/workspace.wrapper.d.ts.map +1 -0
- package/dist/wrappers/workspace.wrapper.js +108 -0
- package/dist/wrappers/workspace.wrapper.js.map +1 -0
- package/package.json +34 -24
- package/dist/commands/info.command.d.ts +0 -8
- package/dist/commands/info.command.d.ts.map +0 -1
- package/dist/commands/info.command.js +0 -178
- package/dist/commands/info.command.js.map +0 -1
- package/dist/core.plugin.d.ts +0 -2
- package/dist/core.plugin.d.ts.map +0 -1
- package/dist/core.plugin.js +0 -22
- package/dist/core.plugin.js.map +0 -1
- package/dist/task-logger.d.ts +0 -14
- package/dist/task-logger.d.ts.map +0 -1
- package/dist/task-logger.js +0 -76
- package/dist/task-logger.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';
|
|
2
1
|
import { WorkspaceDepsMode } from '@jujulego/jill-core';
|
|
3
|
-
export
|
|
2
|
+
export declare const RunCommand: import("../application.context").CommandComponent<Omit<Omit<{
|
|
4
3
|
script: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
} & {
|
|
5
|
+
"deps-mode": WorkspaceDepsMode;
|
|
6
|
+
}, "workspace"> & {
|
|
7
|
+
workspace: string | undefined;
|
|
8
|
+
}, "project" | "package-manager"> & {
|
|
9
|
+
project: string | undefined;
|
|
10
|
+
} & {
|
|
11
|
+
"package-manager": import("@jujulego/jill-core").PackageManager | undefined;
|
|
12
|
+
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/run.command.
|
|
1
|
+
{"version":3,"sources":["commands/run.command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAyBjE,eAAO,MAAM,UAAU;;;;;;;;;;EAqBrB,CAAC","file":"run.command.d.ts","sourcesContent":["import { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\n\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\n builder: (yargs) => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n})));\n\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n const task = await wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n\n tasks.current.add(task);\n tasks.current.start();\n })(), [script, depsMode, rest, wks]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
|
|
@@ -5,11 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RunCommand = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
9
|
|
|
10
10
|
var _jillCore = require("@jujulego/jill-core");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
|
|
14
|
+
var _command = require("../command");
|
|
15
|
+
|
|
16
|
+
var _project = require("../wrappers/project.wrapper");
|
|
17
|
+
|
|
18
|
+
var _workspace = require("../wrappers/workspace.wrapper");
|
|
19
|
+
|
|
20
|
+
var _TaskSetSpinner = require("../components/TaskSetSpinner");
|
|
13
21
|
|
|
14
22
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
15
23
|
function adopt(value) {
|
|
@@ -44,68 +52,43 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
|
|
|
44
52
|
};
|
|
45
53
|
|
|
46
54
|
// Command
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
55
|
+
const {
|
|
56
|
+
wrapper,
|
|
57
|
+
useArgs
|
|
58
|
+
} = (0, _project.withProject)((0, _workspace.withWorkspace)((0, _command.command)({
|
|
59
|
+
name: 'run <script>',
|
|
60
|
+
description: 'Run script inside workspace',
|
|
61
|
+
builder: yargs => yargs.positional('script', {
|
|
62
|
+
type: 'string',
|
|
63
|
+
demandOption: true
|
|
64
|
+
}).option('deps-mode', {
|
|
65
|
+
choice: ['all', 'prod', 'none'],
|
|
66
|
+
default: 'all',
|
|
67
|
+
desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
|
|
68
|
+
})
|
|
69
|
+
}))); // Component
|
|
70
|
+
|
|
71
|
+
const RunCommand = wrapper(function InfoCommand() {
|
|
72
|
+
const {
|
|
73
|
+
script,
|
|
74
|
+
depsMode,
|
|
75
|
+
'--': rest = []
|
|
76
|
+
} = useArgs();
|
|
77
|
+
const wks = (0, _workspace.useWorkspace)(); // Refs
|
|
78
|
+
|
|
79
|
+
const tasks = (0, _react.useRef)(new _jillCore.TaskSet()); // Effects
|
|
80
|
+
|
|
81
|
+
(0, _react.useEffect)(() => void (() => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const task = yield wks.run(script, rest.map(arg => arg.toString()), {
|
|
83
|
+
buildDeps: depsMode
|
|
72
84
|
});
|
|
85
|
+
tasks.current.add(task);
|
|
86
|
+
tasks.current.start();
|
|
87
|
+
}))(), [script, depsMode, rest, wks]); // Render
|
|
73
88
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.spinner.stop(); // Run build task
|
|
79
|
-
|
|
80
|
-
const set = new _jillCore.TaskSet();
|
|
81
|
-
const task = yield this.workspace.run(args.script, (_a = args['--']) === null || _a === void 0 ? void 0 : _a.map(arg => arg.toString()), {
|
|
82
|
-
buildDeps: args['deps-mode']
|
|
83
|
-
});
|
|
84
|
-
set.add(task);
|
|
85
|
-
const tlogger = new _taskLogger.TaskLogger();
|
|
86
|
-
tlogger.on('spin-simple', tsk => {
|
|
87
|
-
var _a;
|
|
88
|
-
|
|
89
|
-
return tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ...`;
|
|
90
|
-
});
|
|
91
|
-
tlogger.on('fail', tsk => {
|
|
92
|
-
var _a;
|
|
93
|
-
|
|
94
|
-
return tsk === task ? `${args.script} failed` : `Failed to build ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name}`;
|
|
95
|
-
});
|
|
96
|
-
tlogger.on('succeed', tsk => {
|
|
97
|
-
var _a;
|
|
98
|
-
|
|
99
|
-
return tsk === task ? `${this.workspace.name} ${args.script} done` : `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} built`;
|
|
100
|
-
});
|
|
101
|
-
tlogger.connect(set);
|
|
102
|
-
set.start();
|
|
103
|
-
const [result] = yield set.waitFor('finished');
|
|
104
|
-
return result.failed === 0 ? 0 : 1;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
89
|
+
return (0, _jsxRuntime.jsx)(_TaskSetSpinner.TaskSetSpinner, {
|
|
90
|
+
taskSet: tasks.current
|
|
91
|
+
});
|
|
92
|
+
});
|
|
110
93
|
exports.RunCommand = RunCommand;
|
|
111
94
|
//# sourceMappingURL=run.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["commands/run.command.
|
|
1
|
+
{"version":3,"sources":["commands/run.command.js","commands/run.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","wrapper","useArgs","name","description","builder","yargs","positional","type","demandOption","option","choice","default","desc","RunCommand","InfoCommand","script","depsMode","rest","wks","tasks","TaskSet","task","run","map","arg","toString","buildDeps","current","add","start","TaskSetSpinner","taskSet"],"mappings":"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","file":"run.command.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TaskSet } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\n builder: (yargs) => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all',\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n})));\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n // Refs\n const tasks = useRef(new TaskSet());\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n const task = yield wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n tasks.current.add(task);\n tasks.current.start();\n }))(), [script, depsMode, rest, wks]);\n // Render\n return (_jsx(TaskSetSpinner, { taskSet: tasks.current }));\n});","import { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\n\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\n builder: (yargs) => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n})));\n\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n const task = await wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n\n tasks.current.add(task);\n tasks.current.start();\n })(), [script, depsMode, rest, wks]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
export declare type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;
|
|
3
|
+
export interface ListProps<K extends string> {
|
|
4
|
+
attrs: K[];
|
|
5
|
+
data: ListItem<K>[];
|
|
6
|
+
withoutHeaders?: boolean;
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const List: <K extends string>(props: ListProps<K>) => ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/List.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAGhD,oBAAY,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvG,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM;IAC1C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAQD,eAAO,MAAM,IAAI,6CAA4C,YAAY,GAAG,IA2B3E,CAAC","file":"List.d.ts","sourcesContent":["import { Box, Text, useStdout } from 'ink';\nimport { ReactElement, useEffect } from 'react';\n\n// Types\nexport type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;\n\nexport interface ListProps<K extends string> {\n\tattrs: K[];\n\tdata: ListItem<K>[];\n\twithoutHeaders?: boolean;\n\tjson?: boolean;\n}\n\n// Utils\nfunction capitalize(str: string): string {\n\treturn `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n\n// Component\nexport const List = <K extends string>(props: ListProps<K>): ReactElement | null => {\n\tconst { attrs, data, withoutHeaders = false, json = false } = props;\n\tconst { stdout } = useStdout();\n\n\t// Effects\n\tuseEffect(() => {\n\t\tif (!json) return;\n\t\tif (!stdout) return;\n\n\t\tstdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n\t}, [stdout, data, json]);\n\n\t// Render\n\tif (json) return null;\n\n\treturn (\n\t\t<Box>\n\t\t\t{attrs.map((attr) => (\n\t\t\t\t<Box key={attr} flexDirection=\"column\" marginRight={2}>\n\t\t\t\t\t{!withoutHeaders && <Text bold>{capitalize(attr)}</Text>}\n\t\t\t\t\t{data.map((d, idx) => (\n\t\t\t\t\t\t<Text key={idx} color={d[attr] ? '' : 'grey'}>{d[attr] || 'unset'}</Text>\n\t\t\t\t\t))}\n\t\t\t\t</Box>\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.List = void 0;
|
|
7
|
+
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
var _ink = require("ink");
|
|
11
|
+
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
|
|
14
|
+
// Utils
|
|
15
|
+
function capitalize(str) {
|
|
16
|
+
return `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;
|
|
17
|
+
} // Component
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
const List = props => {
|
|
21
|
+
const {
|
|
22
|
+
attrs,
|
|
23
|
+
data,
|
|
24
|
+
withoutHeaders = false,
|
|
25
|
+
json = false
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
stdout
|
|
29
|
+
} = (0, _ink.useStdout)(); // Effects
|
|
30
|
+
|
|
31
|
+
(0, _react.useEffect)(() => {
|
|
32
|
+
if (!json) return;
|
|
33
|
+
if (!stdout) return;
|
|
34
|
+
stdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));
|
|
35
|
+
}, [stdout, data, json]); // Render
|
|
36
|
+
|
|
37
|
+
if (json) return null;
|
|
38
|
+
return (0, _jsxRuntime.jsx)(_ink.Box, {
|
|
39
|
+
children: attrs.map(attr => (0, _jsxRuntime.jsxs)(_ink.Box, Object.assign({
|
|
40
|
+
flexDirection: "column",
|
|
41
|
+
marginRight: 2
|
|
42
|
+
}, {
|
|
43
|
+
children: [!withoutHeaders && (0, _jsxRuntime.jsx)(_ink.Text, Object.assign({
|
|
44
|
+
bold: true
|
|
45
|
+
}, {
|
|
46
|
+
children: capitalize(attr)
|
|
47
|
+
})), data.map((d, idx) => (0, _jsxRuntime.jsx)(_ink.Text, Object.assign({
|
|
48
|
+
color: d[attr] ? '' : 'grey'
|
|
49
|
+
}, {
|
|
50
|
+
children: d[attr] || 'unset'
|
|
51
|
+
}), idx))]
|
|
52
|
+
}), attr))
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.List = List;
|
|
57
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/List.js","components/List.tsx"],"names":["capitalize","str","substring","toUpperCase","List","props","attrs","data","withoutHeaders","json","stdout","write","JSON","stringify","isTTY","Box","children","map","attr","Object","assign","flexDirection","marginRight","Text","bold","d","idx","color"],"mappings":";;;;;;;AAAA;;ACAA;;AACA;;AAYA;AACA,SAASA,UAAT,CAAoBC,GAApB,EAA+B;AAC9B,SAAO,GAAGA,GAAG,CAACC,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBC,WAApB,EAAiC,GAAGF,GAAG,CAACC,SAAJ,CAAc,CAAd,CAAgB,EAA9D;AACA,C,CAED;;;AACO,MAAME,IAAI,GAAsBC,KAAnB,IAA+D;AAClF,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA,cAAc,GAAG,KAAhC;AAAuCC,IAAAA,IAAI,GAAG;AAA9C,MAAwDJ,KAA9D;AACA,QAAM;AAAEK,IAAAA;AAAF,MAAa,qBAAnB,CAFkF,CAIlF;;AACA,wBAAU,MAAK;AACd,QAAI,CAACD,IAAL,EAAW;AACX,QAAI,CAACC,MAAL,EAAa;AAEbA,IAAAA,MAAM,CAACC,KAAP,CAAaC,IAAI,CAACC,SAAL,CAAeN,IAAf,EAAqB,IAArB,EAA2BG,MAAM,CAACI,KAAP,GAAe,CAAf,GAAmB,CAA9C,CAAb;AACA,GALD,EAKG,CAACJ,MAAD,EAASH,IAAT,EAAeE,IAAf,CALH,EALkF,CAYlF;;AACA,MAAIA,IAAJ,EAAU,OAAO,IAAP;AAEV,SACC,qBAACM,QAAD,EAAI;AAAAC,IAAAA,QAAA,EACFV,KAAK,CAACW,GAAN,CAAWC,IAAD,IACV,sBAACH,QAAD,EAAII,MAAA,CAAAC,MAAA,CAAA;AAAYC,MAAAA,aAAa,EAAC,QAA1B;AAAmCC,MAAAA,WAAW,EAAE;AAAhD,KAAA,EAAiD;AAAAN,MAAAA,QAAA,EAAA,CACnD,CAACR,cAAD,IAAmB,qBAACe,SAAD,EAAKJ,MAAA,CAAAC,MAAA,CAAA;AAACI,QAAAA,IAAI,EAAA;AAAL,OAAA,EAAK;AAAAR,QAAAA,QAAA,EAAEhB,UAAU,CAACkB,IAAD;AAAZ,OAAL,CAAL,CADgC,EAEnDX,IAAI,CAACU,GAAL,CAAS,CAACQ,CAAD,EAAIC,GAAJ,KACT,qBAACH,SAAD,EAAKJ,MAAA,CAAAC,MAAA,CAAA;AAAWO,QAAAA,KAAK,EAAEF,CAAC,CAACP,IAAD,CAAD,GAAU,EAAV,GAAe;AAAjC,OAAA,EAAuC;AAAAF,QAAAA,QAAA,EAAGS,CAAC,CAACP,IAAD,CAAD,IAAW;AAAd,OAAvC,CAAL,EAAWQ,GAAX,CADA,CAFmD;AAAA,KAAjD,CAAJ,EAAUR,IAAV,CADA;AADE,GAAJ,CADD;AAYA,CA3BM","file":"List.js","sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Box, Text, useStdout } from 'ink';\nimport { useEffect } from 'react';\n// Utils\nfunction capitalize(str) {\n return `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n// Component\nexport const List = (props) => {\n const { attrs, data, withoutHeaders = false, json = false } = props;\n const { stdout } = useStdout();\n // Effects\n useEffect(() => {\n if (!json)\n return;\n if (!stdout)\n return;\n stdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n }, [stdout, data, json]);\n // Render\n if (json)\n return null;\n return (_jsx(Box, { children: attrs.map((attr) => (_jsxs(Box, Object.assign({ flexDirection: \"column\", marginRight: 2 }, { children: [!withoutHeaders && _jsx(Text, Object.assign({ bold: true }, { children: capitalize(attr) })), data.map((d, idx) => (_jsx(Text, Object.assign({ color: d[attr] ? '' : 'grey' }, { children: d[attr] || 'unset' }), idx)))] }), attr))) }));\n};","import { Box, Text, useStdout } from 'ink';\nimport { ReactElement, useEffect } from 'react';\n\n// Types\nexport type ListItem<K extends string> = Partial<Record<K, string | number>> & Record<string, unknown>;\n\nexport interface ListProps<K extends string> {\n\tattrs: K[];\n\tdata: ListItem<K>[];\n\twithoutHeaders?: boolean;\n\tjson?: boolean;\n}\n\n// Utils\nfunction capitalize(str: string): string {\n\treturn `${str.substring(0, 1).toUpperCase()}${str.substring(1)}`;\n}\n\n// Component\nexport const List = <K extends string>(props: ListProps<K>): ReactElement | null => {\n\tconst { attrs, data, withoutHeaders = false, json = false } = props;\n\tconst { stdout } = useStdout();\n\n\t// Effects\n\tuseEffect(() => {\n\t\tif (!json) return;\n\t\tif (!stdout) return;\n\n\t\tstdout.write(JSON.stringify(data, null, stdout.isTTY ? 2 : 0));\n\t}, [stdout, data, json]);\n\n\t// Render\n\tif (json) return null;\n\n\treturn (\n\t\t<Box>\n\t\t\t{attrs.map((attr) => (\n\t\t\t\t<Box key={attr} flexDirection=\"column\" marginRight={2}>\n\t\t\t\t\t{!withoutHeaders && <Text bold>{capitalize(attr)}</Text>}\n\t\t\t\t\t{data.map((d, idx) => (\n\t\t\t\t\t\t<Text key={idx} color={d[attr] ? '' : 'grey'}>{d[attr] || 'unset'}</Text>\n\t\t\t\t\t))}\n\t\t\t\t</Box>\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/TaskSetSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAIhD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyBlD,CAAC","file":"TaskSetSpinner.d.ts","sourcesContent":["import { Task, TaskSet } from '@jujulego/jill-core';\nimport { FC, useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n\n// Types\nexport interface TaskSetSpinnerProps {\n taskSet: TaskSet;\n}\n\n// Component\nexport const TaskSetSpinner: FC<TaskSetSpinnerProps> = (props) => {\n const { taskSet } = props;\n\n // State\n const [tasks, setTasks] = useState<Task[]>([]);\n\n // Effects\n useEffect(() => {\n const handler = (task: Task) => {\n setTasks((old) => [...old, task]);\n };\n\n taskSet.on('started', handler);\n\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n\n // Render\n return (\n <>\n { tasks.map((task, idx) => <TaskSpinner key={idx} task={task} />) }\n </>\n );\n};\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TaskSetSpinner = void 0;
|
|
7
|
+
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _TaskSpinner = require("./TaskSpinner");
|
|
13
|
+
|
|
14
|
+
// Component
|
|
15
|
+
const TaskSetSpinner = props => {
|
|
16
|
+
const {
|
|
17
|
+
taskSet
|
|
18
|
+
} = props; // State
|
|
19
|
+
|
|
20
|
+
const [tasks, setTasks] = (0, _react.useState)([]); // Effects
|
|
21
|
+
|
|
22
|
+
(0, _react.useEffect)(() => {
|
|
23
|
+
const handler = task => {
|
|
24
|
+
setTasks(old => [...old, task]);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
taskSet.on('started', handler);
|
|
28
|
+
return () => {
|
|
29
|
+
taskSet.off('started', handler);
|
|
30
|
+
};
|
|
31
|
+
}, [taskSet]); // Render
|
|
32
|
+
|
|
33
|
+
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
34
|
+
children: tasks.map((task, idx) => (0, _jsxRuntime.jsx)(_TaskSpinner.TaskSpinner, {
|
|
35
|
+
task: task
|
|
36
|
+
}, idx))
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.TaskSetSpinner = TaskSetSpinner;
|
|
41
|
+
//# sourceMappingURL=TaskSetSpinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/TaskSetSpinner.js","components/TaskSetSpinner.tsx"],"names":["TaskSetSpinner","props","taskSet","tasks","setTasks","handler","task","old","on","off","_Fragment","children","map","idx","TaskSpinner"],"mappings":";;;;;;;AAAA;;ACCA;;AACA;;AAOA;AACO,MAAMA,cAAc,GAA6BC,KAAD,IAAU;AAC/D,QAAM;AAAEC,IAAAA;AAAF,MAAcD,KAApB,CAD+D,CAG/D;;AACA,QAAM,CAACE,KAAD,EAAQC,QAAR,IAAoB,qBAAiB,EAAjB,CAA1B,CAJ+D,CAM/D;;AACA,wBAAU,MAAK;AACb,UAAMC,OAAO,GAAIC,IAAD,IAAe;AAC7BF,MAAAA,QAAQ,CAAEG,GAAD,IAAS,CAAC,GAAGA,GAAJ,EAASD,IAAT,CAAV,CAAR;AACD,KAFD;;AAIAJ,IAAAA,OAAO,CAACM,EAAR,CAAW,SAAX,EAAsBH,OAAtB;AAEA,WAAO,MAAK;AACVH,MAAAA,OAAO,CAACO,GAAR,CAAY,SAAZ,EAAuBJ,OAAvB;AACD,KAFD;AAGD,GAVD,EAUG,CAACH,OAAD,CAVH,EAP+D,CAmB/D;;AACA,SACE,qBAAAQ,oBAAA,EAAA;AAAAC,IAAAA,QAAA,EACIR,KAAK,CAACS,GAAN,CAAU,CAACN,IAAD,EAAOO,GAAP,KAAe,qBAACC,wBAAD,EAAY;AAAWR,MAAAA,IAAI,EAAEA;AAAjB,KAAZ,EAAkBO,GAAlB,CAAzB;AADJ,GAAA,CADF;AAKD,CAzBM","file":"TaskSetSpinner.js","sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n// Component\nexport const TaskSetSpinner = (props) => {\n const { taskSet } = props;\n // State\n const [tasks, setTasks] = useState([]);\n // Effects\n useEffect(() => {\n const handler = (task) => {\n setTasks((old) => [...old, task]);\n };\n taskSet.on('started', handler);\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n // Render\n return (_jsx(_Fragment, { children: tasks.map((task, idx) => _jsx(TaskSpinner, { task: task }, idx)) }));\n};","import { Task, TaskSet } from '@jujulego/jill-core';\nimport { FC, useEffect, useState } from 'react';\nimport { TaskSpinner } from './TaskSpinner';\n\n// Types\nexport interface TaskSetSpinnerProps {\n taskSet: TaskSet;\n}\n\n// Component\nexport const TaskSetSpinner: FC<TaskSetSpinnerProps> = (props) => {\n const { taskSet } = props;\n\n // State\n const [tasks, setTasks] = useState<Task[]>([]);\n\n // Effects\n useEffect(() => {\n const handler = (task: Task) => {\n setTasks((old) => [...old, task]);\n };\n\n taskSet.on('started', handler);\n\n return () => {\n taskSet.off('started', handler);\n };\n }, [taskSet]);\n\n // Render\n return (\n <>\n { tasks.map((task, idx) => <TaskSpinner key={idx} task={task} />) }\n </>\n );\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/TaskSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI3C,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ;AAGD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA0C5C,CAAC","file":"TaskSpinner.d.ts","sourcesContent":["import { Task } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport logSymbols from 'log-symbols';\nimport { FC, useEffect, useState } from 'react';\n\n// Types\nexport interface TaskSpinnerProps {\n task: Task;\n}\n\n// Component\nexport const TaskSpinner: FC<TaskSpinnerProps> = (props) => {\n const { task } = props;\n const wks = task.context.workspace;\n\n // State\n const [status, setStatus] = useState(task.status);\n\n // Effects\n useEffect(() => {\n task.on('status', setStatus);\n\n return () => {\n task.off('status', setStatus);\n };\n }, [task]);\n\n // Render\n if (status === 'done') {\n return (\n <Text>\n { logSymbols.success }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n } else if (status === 'failed') {\n return (\n <Text>\n { logSymbols.error }{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n }\n\n return (\n <Text>\n <Spinner type={status === 'running' ? 'line' : 'simpleDotsScrolling'} />{' '}\n { wks && <><Text color=\"grey\">[{ wks.name }]</Text>{' '}</> }\n { task.name } is { status }\n </Text>\n );\n};\n"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TaskSpinner = void 0;
|
|
7
|
+
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
var _ink = require("ink");
|
|
11
|
+
|
|
12
|
+
var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
|
|
13
|
+
|
|
14
|
+
var _logSymbols = _interopRequireDefault(require("log-symbols"));
|
|
15
|
+
|
|
16
|
+
var _react = require("react");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
// Component
|
|
21
|
+
const TaskSpinner = props => {
|
|
22
|
+
const {
|
|
23
|
+
task
|
|
24
|
+
} = props;
|
|
25
|
+
const wks = task.context.workspace; // State
|
|
26
|
+
|
|
27
|
+
const [status, setStatus] = (0, _react.useState)(task.status); // Effects
|
|
28
|
+
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
task.on('status', setStatus);
|
|
31
|
+
return () => {
|
|
32
|
+
task.off('status', setStatus);
|
|
33
|
+
};
|
|
34
|
+
}, [task]); // Render
|
|
35
|
+
|
|
36
|
+
if (status === 'done') {
|
|
37
|
+
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
38
|
+
children: [_logSymbols.default.success, ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
39
|
+
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
40
|
+
color: "grey"
|
|
41
|
+
}, {
|
|
42
|
+
children: ["[", wks.name, "]"]
|
|
43
|
+
})), ' ']
|
|
44
|
+
}), task.name, " is ", status]
|
|
45
|
+
});
|
|
46
|
+
} else if (status === 'failed') {
|
|
47
|
+
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
48
|
+
children: [_logSymbols.default.error, ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
49
|
+
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
50
|
+
color: "grey"
|
|
51
|
+
}, {
|
|
52
|
+
children: ["[", wks.name, "]"]
|
|
53
|
+
})), ' ']
|
|
54
|
+
}), task.name, " is ", status]
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return (0, _jsxRuntime.jsxs)(_ink.Text, {
|
|
59
|
+
children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {
|
|
60
|
+
type: status === 'running' ? 'line' : 'simpleDotsScrolling'
|
|
61
|
+
}), ' ', wks && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
62
|
+
children: [(0, _jsxRuntime.jsxs)(_ink.Text, Object.assign({
|
|
63
|
+
color: "grey"
|
|
64
|
+
}, {
|
|
65
|
+
children: ["[", wks.name, "]"]
|
|
66
|
+
})), ' ']
|
|
67
|
+
}), task.name, " is ", status]
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
exports.TaskSpinner = TaskSpinner;
|
|
72
|
+
//# sourceMappingURL=TaskSpinner.js.map
|