spawn-term 0.1.8 → 0.1.10
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/cjs/components/App.cjs +3 -29
- package/dist/cjs/components/App.cjs.map +1 -1
- package/dist/cjs/components/ChildProcess.cjs +9 -10
- package/dist/cjs/components/ChildProcess.cjs.map +1 -1
- package/dist/esm/components/App.mjs +3 -23
- package/dist/esm/components/App.mjs.map +1 -1
- package/dist/esm/components/ChildProcess.mjs +9 -10
- package/dist/esm/components/ChildProcess.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -62,39 +62,13 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
62
62
|
function App() {
|
|
63
63
|
var store = (0, _react.useContext)(_Store.default);
|
|
64
64
|
var appState = (0, _zustand.useStore)(store);
|
|
65
|
-
|
|
66
|
-
return [
|
|
67
|
-
'running'
|
|
68
|
-
].indexOf(x.state) >= 0;
|
|
69
|
-
});
|
|
70
|
-
var done = appState.processes.filter(function(x) {
|
|
71
|
-
return [
|
|
72
|
-
'error',
|
|
73
|
-
'success'
|
|
74
|
-
].indexOf(x.state) >= 0;
|
|
75
|
-
});
|
|
76
|
-
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
65
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
77
66
|
flexDirection: "column"
|
|
78
|
-
},
|
|
67
|
+
}, appState.processes.map(function(item) {
|
|
79
68
|
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default, {
|
|
80
69
|
key: item.id,
|
|
81
70
|
id: item.id
|
|
82
71
|
});
|
|
83
|
-
}))
|
|
84
|
-
flexDirection: "column",
|
|
85
|
-
borderStyle: "single",
|
|
86
|
-
borderColor: "black",
|
|
87
|
-
borderBottom: true,
|
|
88
|
-
borderTop: false,
|
|
89
|
-
borderLeft: false,
|
|
90
|
-
borderRight: false
|
|
91
|
-
}), /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
92
|
-
flexDirection: "column"
|
|
93
|
-
}, done.map(function(item) {
|
|
94
|
-
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default, {
|
|
95
|
-
key: item.id,
|
|
96
|
-
id: item.id
|
|
97
|
-
});
|
|
98
|
-
})));
|
|
72
|
+
}));
|
|
99
73
|
}
|
|
100
74
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box } from '../ink.mjs';\nimport type { AppState, ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport default function App() {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box } from '../ink.mjs';\nimport type { AppState, ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport default function App() {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n\n return (\n <Box flexDirection=\"column\">\n {appState.processes.map((item: ChildProcessT) => (\n <ChildProcess key={item.id} id={item.id} />\n ))}\n </Box>\n );\n}\n"],"names":["App","store","useContext","StoreContext","appState","useStore","Box","flexDirection","processes","map","item","ChildProcess","key","id"],"mappings":";;;;+BAOA;;;eAAwBA;;;6DAPU;uBACT;4DACA;mBACL;mEAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEV,SAASA;IACtB,IAAMC,QAAQC,IAAAA,iBAAU,EAACC,cAAY;IACrC,IAAMC,WAAWC,IAAAA,iBAAQ,EAACJ;IAE1B,qBACE,6BAACK,QAAG;QAACC,eAAc;OAChBH,SAASI,SAAS,CAACC,GAAG,CAAC,SAACC;6BACvB,6BAACC,qBAAY;YAACC,KAAKF,KAAKG,EAAE;YAAEA,IAAIH,KAAKG,EAAE;;;AAI/C"}
|
|
@@ -133,22 +133,21 @@ function Content(param) {
|
|
|
133
133
|
return line.type === _types.LineType.stderr;
|
|
134
134
|
});
|
|
135
135
|
if (expanded) {
|
|
136
|
-
/*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
136
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
137
137
|
icon: icon,
|
|
138
138
|
title: title
|
|
139
139
|
}), /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
140
140
|
lines: lines
|
|
141
141
|
}));
|
|
142
|
-
} else {
|
|
143
|
-
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
144
|
-
icon: icon,
|
|
145
|
-
title: title
|
|
146
|
-
}), state === 'running' && output && /*#__PURE__*/ _react.default.createElement(Output, {
|
|
147
|
-
output: output
|
|
148
|
-
}), errors.length > 0 && /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
149
|
-
lines: errors
|
|
150
|
-
}));
|
|
151
142
|
}
|
|
143
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
144
|
+
icon: icon,
|
|
145
|
+
title: title
|
|
146
|
+
}), state === 'running' && output && /*#__PURE__*/ _react.default.createElement(Output, {
|
|
147
|
+
output: output
|
|
148
|
+
}), errors.length > 0 && /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
149
|
+
lines: errors
|
|
150
|
+
}));
|
|
152
151
|
}
|
|
153
152
|
function Group(param) {
|
|
154
153
|
var item = param.item;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box, Text } from '../ink.mjs';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { AppState } from '../types';\nimport { LineType } from '../types';\n\n// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2\nconst spinner = {\n interval: 80,\n frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],\n};\n\nconst ICONS = {\n error: <Text color=\"red\">{figures.cross}</Text>,\n success: <Text color=\"green\">{figures.tick}</Text>,\n running: <Spinner {...spinner} />,\n};\n\nconst POINTERS = {\n error: <Text color=\"red\">{figures.pointer}</Text>,\n default: <Text color=\"yellow\">{figures.pointer}</Text>,\n};\n\ntype ChildProcessProps = {\n id: string;\n};\n\nfunction Header({ icon, title }) {\n return (\n <Box>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n <Text>{title}</Text>\n </Box>\n );\n}\n\nfunction Output({ output }) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{`${figures.arrowRight} ${output.text}`}</Text>\n </Box>\n );\n}\n\nfunction Lines({ lines }) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map((line, index) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>\n <Box key={index} flexDirection=\"column\" height={1}>\n <Text color={line.type === LineType.stderr ? 'red' : 'black'}>{line.text}</Text>\n </Box>\n ))}\n </Box>\n );\n}\n\nfunction Content({ item }) {\n const { title, state, lines, expanded } = item;\n const icon = ICONS[state];\n const output = lines.length ? lines[lines.length - 1] : undefined;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (expanded) {\n <React.Fragment>\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box, Text } from '../ink.mjs';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { AppState } from '../types';\nimport { LineType } from '../types';\n\n// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2\nconst spinner = {\n interval: 80,\n frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],\n};\n\nconst ICONS = {\n error: <Text color=\"red\">{figures.cross}</Text>,\n success: <Text color=\"green\">{figures.tick}</Text>,\n running: <Spinner {...spinner} />,\n};\n\nconst POINTERS = {\n error: <Text color=\"red\">{figures.pointer}</Text>,\n default: <Text color=\"yellow\">{figures.pointer}</Text>,\n};\n\ntype ChildProcessProps = {\n id: string;\n};\n\nfunction Header({ icon, title }) {\n return (\n <Box>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n <Text>{title}</Text>\n </Box>\n );\n}\n\nfunction Output({ output }) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{`${figures.arrowRight} ${output.text}`}</Text>\n </Box>\n );\n}\n\nfunction Lines({ lines }) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map((line, index) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>\n <Box key={index} flexDirection=\"column\" height={1}>\n <Text color={line.type === LineType.stderr ? 'red' : 'black'}>{line.text}</Text>\n </Box>\n ))}\n </Box>\n );\n}\n\nfunction Content({ item }) {\n const { title, state, lines, expanded } = item;\n const icon = ICONS[state];\n const output = lines.length ? lines[lines.length - 1] : undefined;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (expanded) {\n return (\n <React.Fragment>\n <Header icon={icon} title={title} />\n <Lines lines={lines} />\n </React.Fragment>\n );\n }\n return (\n <React.Fragment>\n <Header icon={icon} title={title} />\n {state === 'running' && output && <Output output={output} />}\n {errors.length > 0 && <Lines lines={errors} />}\n </React.Fragment>\n );\n}\nfunction Group({ item }) {\n const { title, state, lines, group, expanded } = item;\n const icon = ICONS[state];\n const pointer = POINTERS[state] || POINTERS.default;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (state === 'running') {\n return (\n <Box flexDirection=\"column\">\n <Header icon={pointer} title={group} />\n <Content item={item} />\n </Box>\n );\n }\n return (\n <Box flexDirection=\"column\">\n <Header icon={icon} title={`${group}: ${title}`} />\n {expanded && <Lines lines={lines} />}\n {!expanded && errors.length > 0 && <Lines lines={errors} />}\n </Box>\n );\n}\n\nexport default function ChildProcess({ id }: ChildProcessProps) {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n const item = appState.processes.find((x) => x.id === id);\n const { group } = item;\n\n if (group) return <Group item={item} />;\n return (\n <Box flexDirection=\"column\">\n <Content item={item} />\n </Box>\n );\n}\n"],"names":["ChildProcess","spinner","interval","frames","ICONS","error","Text","color","figures","cross","success","tick","running","Spinner","POINTERS","pointer","default","Header","icon","title","Box","marginRight","Output","output","marginLeft","arrowRight","text","Lines","lines","flexDirection","map","line","index","key","height","type","LineType","stderr","Content","item","state","expanded","length","undefined","errors","filter","React","Fragment","Group","group","id","store","useContext","StoreContext","appState","useStore","processes","find","x"],"mappings":"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"}
|
|
@@ -6,30 +6,10 @@ import ChildProcess from './ChildProcess.mjs';
|
|
|
6
6
|
export default function App() {
|
|
7
7
|
const store = useContext(StoreContext);
|
|
8
8
|
const appState = useStore(store);
|
|
9
|
-
|
|
10
|
-
'running'
|
|
11
|
-
].indexOf(x.state) >= 0);
|
|
12
|
-
const done = appState.processes.filter((x)=>[
|
|
13
|
-
'error',
|
|
14
|
-
'success'
|
|
15
|
-
].indexOf(x.state) >= 0);
|
|
16
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Box, {
|
|
9
|
+
return /*#__PURE__*/ React.createElement(Box, {
|
|
17
10
|
flexDirection: "column"
|
|
18
|
-
},
|
|
11
|
+
}, appState.processes.map((item)=>/*#__PURE__*/ React.createElement(ChildProcess, {
|
|
19
12
|
key: item.id,
|
|
20
13
|
id: item.id
|
|
21
|
-
})))
|
|
22
|
-
flexDirection: "column",
|
|
23
|
-
borderStyle: "single",
|
|
24
|
-
borderColor: "black",
|
|
25
|
-
borderBottom: true,
|
|
26
|
-
borderTop: false,
|
|
27
|
-
borderLeft: false,
|
|
28
|
-
borderRight: false
|
|
29
|
-
}), /*#__PURE__*/ React.createElement(Box, {
|
|
30
|
-
flexDirection: "column"
|
|
31
|
-
}, done.map((item)=>/*#__PURE__*/ React.createElement(ChildProcess, {
|
|
32
|
-
key: item.id,
|
|
33
|
-
id: item.id
|
|
34
|
-
}))));
|
|
14
|
+
})));
|
|
35
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box } from '../ink.mjs';\nimport type { AppState, ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport default function App() {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box } from '../ink.mjs';\nimport type { AppState, ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport default function App() {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n\n return (\n <Box flexDirection=\"column\">\n {appState.processes.map((item: ChildProcessT) => (\n <ChildProcess key={item.id} id={item.id} />\n ))}\n </Box>\n );\n}\n"],"names":["React","useContext","useStore","StoreContext","Box","ChildProcess","App","store","appState","flexDirection","processes","map","item","key","id"],"mappings":"AAAA,OAAOA,SAASC,UAAU,QAAQ,QAAQ;AAC1C,SAASC,QAAQ,QAAQ,UAAU;AACnC,OAAOC,kBAAkB,oBAAoB;AAC7C,SAASC,GAAG,QAAQ,aAAa;AAEjC,OAAOC,kBAAkB,iBAAiB;AAE1C,eAAe,SAASC;IACtB,MAAMC,QAAQN,WAAWE;IACzB,MAAMK,WAAWN,SAASK;IAE1B,qBACE,oBAACH;QAAIK,eAAc;OAChBD,SAASE,SAAS,CAACC,GAAG,CAAC,CAACC,qBACvB,oBAACP;YAAaQ,KAAKD,KAAKE,EAAE;YAAEA,IAAIF,KAAKE,EAAE;;AAI/C"}
|
|
@@ -69,22 +69,21 @@ function Content({ item }) {
|
|
|
69
69
|
const output = lines.length ? lines[lines.length - 1] : undefined;
|
|
70
70
|
const errors = lines.filter((line)=>line.type === LineType.stderr);
|
|
71
71
|
if (expanded) {
|
|
72
|
-
/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Header, {
|
|
72
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Header, {
|
|
73
73
|
icon: icon,
|
|
74
74
|
title: title
|
|
75
75
|
}), /*#__PURE__*/ React.createElement(Lines, {
|
|
76
76
|
lines: lines
|
|
77
77
|
}));
|
|
78
|
-
} else {
|
|
79
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Header, {
|
|
80
|
-
icon: icon,
|
|
81
|
-
title: title
|
|
82
|
-
}), state === 'running' && output && /*#__PURE__*/ React.createElement(Output, {
|
|
83
|
-
output: output
|
|
84
|
-
}), errors.length > 0 && /*#__PURE__*/ React.createElement(Lines, {
|
|
85
|
-
lines: errors
|
|
86
|
-
}));
|
|
87
78
|
}
|
|
79
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Header, {
|
|
80
|
+
icon: icon,
|
|
81
|
+
title: title
|
|
82
|
+
}), state === 'running' && output && /*#__PURE__*/ React.createElement(Output, {
|
|
83
|
+
output: output
|
|
84
|
+
}), errors.length > 0 && /*#__PURE__*/ React.createElement(Lines, {
|
|
85
|
+
lines: errors
|
|
86
|
+
}));
|
|
88
87
|
}
|
|
89
88
|
function Group({ item }) {
|
|
90
89
|
const { title, state, lines, group, expanded } = item;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box, Text } from '../ink.mjs';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { AppState } from '../types';\nimport { LineType } from '../types';\n\n// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2\nconst spinner = {\n interval: 80,\n frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],\n};\n\nconst ICONS = {\n error: <Text color=\"red\">{figures.cross}</Text>,\n success: <Text color=\"green\">{figures.tick}</Text>,\n running: <Spinner {...spinner} />,\n};\n\nconst POINTERS = {\n error: <Text color=\"red\">{figures.pointer}</Text>,\n default: <Text color=\"yellow\">{figures.pointer}</Text>,\n};\n\ntype ChildProcessProps = {\n id: string;\n};\n\nfunction Header({ icon, title }) {\n return (\n <Box>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n <Text>{title}</Text>\n </Box>\n );\n}\n\nfunction Output({ output }) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{`${figures.arrowRight} ${output.text}`}</Text>\n </Box>\n );\n}\n\nfunction Lines({ lines }) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map((line, index) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>\n <Box key={index} flexDirection=\"column\" height={1}>\n <Text color={line.type === LineType.stderr ? 'red' : 'black'}>{line.text}</Text>\n </Box>\n ))}\n </Box>\n );\n}\n\nfunction Content({ item }) {\n const { title, state, lines, expanded } = item;\n const icon = ICONS[state];\n const output = lines.length ? lines[lines.length - 1] : undefined;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (expanded) {\n <React.Fragment>\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box, Text } from '../ink.mjs';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { AppState } from '../types';\nimport { LineType } from '../types';\n\n// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2\nconst spinner = {\n interval: 80,\n frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],\n};\n\nconst ICONS = {\n error: <Text color=\"red\">{figures.cross}</Text>,\n success: <Text color=\"green\">{figures.tick}</Text>,\n running: <Spinner {...spinner} />,\n};\n\nconst POINTERS = {\n error: <Text color=\"red\">{figures.pointer}</Text>,\n default: <Text color=\"yellow\">{figures.pointer}</Text>,\n};\n\ntype ChildProcessProps = {\n id: string;\n};\n\nfunction Header({ icon, title }) {\n return (\n <Box>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n <Text>{title}</Text>\n </Box>\n );\n}\n\nfunction Output({ output }) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{`${figures.arrowRight} ${output.text}`}</Text>\n </Box>\n );\n}\n\nfunction Lines({ lines }) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map((line, index) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>\n <Box key={index} flexDirection=\"column\" height={1}>\n <Text color={line.type === LineType.stderr ? 'red' : 'black'}>{line.text}</Text>\n </Box>\n ))}\n </Box>\n );\n}\n\nfunction Content({ item }) {\n const { title, state, lines, expanded } = item;\n const icon = ICONS[state];\n const output = lines.length ? lines[lines.length - 1] : undefined;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (expanded) {\n return (\n <React.Fragment>\n <Header icon={icon} title={title} />\n <Lines lines={lines} />\n </React.Fragment>\n );\n }\n return (\n <React.Fragment>\n <Header icon={icon} title={title} />\n {state === 'running' && output && <Output output={output} />}\n {errors.length > 0 && <Lines lines={errors} />}\n </React.Fragment>\n );\n}\nfunction Group({ item }) {\n const { title, state, lines, group, expanded } = item;\n const icon = ICONS[state];\n const pointer = POINTERS[state] || POINTERS.default;\n const errors = lines.filter((line) => line.type === LineType.stderr);\n\n if (state === 'running') {\n return (\n <Box flexDirection=\"column\">\n <Header icon={pointer} title={group} />\n <Content item={item} />\n </Box>\n );\n }\n return (\n <Box flexDirection=\"column\">\n <Header icon={icon} title={`${group}: ${title}`} />\n {expanded && <Lines lines={lines} />}\n {!expanded && errors.length > 0 && <Lines lines={errors} />}\n </Box>\n );\n}\n\nexport default function ChildProcess({ id }: ChildProcessProps) {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n const item = appState.processes.find((x) => x.id === id);\n const { group } = item;\n\n if (group) return <Group item={item} />;\n return (\n <Box flexDirection=\"column\">\n <Content item={item} />\n </Box>\n );\n}\n"],"names":["React","useContext","useStore","StoreContext","Box","Text","figures","Spinner","LineType","spinner","interval","frames","ICONS","error","color","cross","success","tick","running","POINTERS","pointer","default","Header","icon","title","marginRight","Output","output","marginLeft","arrowRight","text","Lines","lines","flexDirection","map","line","index","key","height","type","stderr","Content","item","state","expanded","length","undefined","errors","filter","Fragment","Group","group","ChildProcess","id","store","appState","processes","find","x"],"mappings":"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"}
|