spawn-term 0.1.29 → 0.1.31
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.
|
@@ -60,6 +60,8 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
60
60
|
}
|
|
61
61
|
return newObj;
|
|
62
62
|
}
|
|
63
|
+
var NEW_LINE_REGEX = /\r\n|[\n\v\f\r\x85\u2028\u2029]/g;
|
|
64
|
+
var ANSI_REGEX = (0, _ansiRegex.default)();
|
|
63
65
|
// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
|
|
64
66
|
var spinner = {
|
|
65
67
|
interval: 80,
|
|
@@ -114,7 +116,7 @@ var Lines = /*#__PURE__*/ (0, _react.memo)(function Lines(param) {
|
|
|
114
116
|
/*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
115
117
|
key: index,
|
|
116
118
|
flexDirection: "column"
|
|
117
|
-
}, /*#__PURE__*/ _react.default.createElement(
|
|
119
|
+
}, /*#__PURE__*/ _react.default.createElement("ink-text", null, line.text)));
|
|
118
120
|
}));
|
|
119
121
|
});
|
|
120
122
|
var Expanded = /*#__PURE__*/ (0, _react.memo)(function Expanded(param) {
|
|
@@ -130,18 +132,16 @@ var Expanded = /*#__PURE__*/ (0, _react.memo)(function Expanded(param) {
|
|
|
130
132
|
lines: data
|
|
131
133
|
}));
|
|
132
134
|
});
|
|
133
|
-
var linesRegex = /\r\n|\n/g;
|
|
134
|
-
var ansiRegex = (0, _ansiRegex.default)();
|
|
135
135
|
var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
|
|
136
136
|
var item = param.item;
|
|
137
137
|
var state = item.state, data = item.data;
|
|
138
138
|
var lines = (0, _react.useMemo)(function() {
|
|
139
139
|
var lines = [];
|
|
140
140
|
data.forEach(function(x) {
|
|
141
|
-
x.text.split(
|
|
141
|
+
x.text.split(NEW_LINE_REGEX).forEach(function(text) {
|
|
142
142
|
return lines.push({
|
|
143
143
|
type: x.type,
|
|
144
|
-
text: text.replace(
|
|
144
|
+
text: text.replace(ANSI_REGEX, '')
|
|
145
145
|
});
|
|
146
146
|
});
|
|
147
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { Box, Text } from '../ink.mjs';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { Box, Text, useStderr, useStdout } from '../ink.mjs';\nimport ansiRegex from '../lib/ansiRegex';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { ChildProcess as ChildProcessT, Data, State } from '../types';\nimport { DataType } from '../types';\n\nconst NEW_LINE_REGEX = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\nconst ANSI_REGEX = ansiRegex();\n\ntype ItemProps = {\n item: ChildProcessT;\n};\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\ntype HeaderProps = {\n group?: string;\n title: string;\n state: State;\n};\n\nconst Header = memo(\n function Header({ group, title, state }: HeaderProps) {\n const icon = ICONS[state];\n\n return (\n <Box>\n <Box marginRight={1}>{icon}</Box>\n {group && <Text bold>{`${group}${figures.pointer} `}</Text>}\n <Text>{title}</Text>\n </Box>\n );\n },\n (a, b) => a.group === b.group && a.title === b.title && a.state === b.state\n);\n\ntype OutputProps = {\n output: Data;\n};\n\nconst Output = memo(function Output({ output }: OutputProps) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{output.text}</Text>\n </Box>\n );\n});\n\ntype LinesProps = {\n lines: Data[];\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\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\">\n {/* <Text color={line.type === DataType.stderr ? 'red' : 'black'}>{line.text}</Text> */}\n {/* @ts-ignore */}\n <ink-text>{line.text}</ink-text>\n </Box>\n ))}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { data } = item;\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n <Lines lines={data} />\n </Box>\n );\n});\n\nconst Contracted = memo(function Contracted({ item }: ItemProps) {\n const { state, data } = item;\n\n const lines = useMemo(() => {\n const lines = [];\n data.forEach((x) => {\n x.text.split(NEW_LINE_REGEX).forEach((text) => lines.push({ type: x.type, text: text.replace(ANSI_REGEX, '') }));\n });\n return lines;\n }, [data]);\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === DataType.stderr), [lines]);\n const output = useMemo(() => lines.filter((line) => line.text.length > 0 && errors.indexOf(line) < 0).pop() || '', [lines, errors]);\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n {state === 'running' && <Output output={output} />}\n {errors.length > 0 && <Lines lines={errors} />}\n </Box>\n );\n});\n\nexport default memo(function ChildProcess({ item }: ItemProps) {\n const { expanded } = item;\n return expanded ? <Expanded item={item} /> : <Contracted item={item} />;\n});\n"],"names":["NEW_LINE_REGEX","ANSI_REGEX","ansiRegex","spinner","interval","frames","ICONS","error","Text","color","figures","cross","success","tick","running","Spinner","Header","memo","group","title","state","icon","Box","marginRight","bold","pointer","a","b","Output","output","marginLeft","text","Lines","lines","flexDirection","map","line","index","key","ink-text","Expanded","item","data","Contracted","useMemo","forEach","x","split","push","type","replace","errors","filter","DataType","stderr","length","indexOf","pop","ChildProcess","expanded"],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React, { memo, useMemo } from 'react';
|
|
2
2
|
import { Box, Text } from '../ink.mjs';
|
|
3
|
-
import
|
|
3
|
+
import ansiRegex from '../lib/ansiRegex.mjs';
|
|
4
4
|
import figures from '../lib/figures.mjs';
|
|
5
5
|
import Spinner from './Spinner.mjs';
|
|
6
6
|
import { DataType } from '../types.mjs';
|
|
7
|
+
const NEW_LINE_REGEX = /\r\n|[\n\v\f\r\x85\u2028\u2029]/g;
|
|
8
|
+
const ANSI_REGEX = ansiRegex();
|
|
7
9
|
// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
|
|
8
10
|
const spinner = {
|
|
9
11
|
interval: 80,
|
|
@@ -52,7 +54,7 @@ const Lines = /*#__PURE__*/ memo(function Lines({ lines }) {
|
|
|
52
54
|
/*#__PURE__*/ React.createElement(Box, {
|
|
53
55
|
key: index,
|
|
54
56
|
flexDirection: "column"
|
|
55
|
-
}, /*#__PURE__*/ React.createElement(
|
|
57
|
+
}, /*#__PURE__*/ React.createElement("ink-text", null, line.text))));
|
|
56
58
|
});
|
|
57
59
|
const Expanded = /*#__PURE__*/ memo(function Expanded({ item }) {
|
|
58
60
|
const { data } = item;
|
|
@@ -66,16 +68,14 @@ const Expanded = /*#__PURE__*/ memo(function Expanded({ item }) {
|
|
|
66
68
|
lines: data
|
|
67
69
|
}));
|
|
68
70
|
});
|
|
69
|
-
const linesRegex = /\r\n|\n/g;
|
|
70
|
-
const ansiRegex = _ansiRegex();
|
|
71
71
|
const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
|
|
72
72
|
const { state, data } = item;
|
|
73
73
|
const lines = useMemo(()=>{
|
|
74
74
|
const lines = [];
|
|
75
75
|
data.forEach((x)=>{
|
|
76
|
-
x.text.split(
|
|
76
|
+
x.text.split(NEW_LINE_REGEX).forEach((text)=>lines.push({
|
|
77
77
|
type: x.type,
|
|
78
|
-
text: text.replace(
|
|
78
|
+
text: text.replace(ANSI_REGEX, '')
|
|
79
79
|
}));
|
|
80
80
|
});
|
|
81
81
|
return lines;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { Box, Text } from '../ink.mjs';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { Box, Text, useStderr, useStdout } from '../ink.mjs';\nimport ansiRegex from '../lib/ansiRegex';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type { ChildProcess as ChildProcessT, Data, State } from '../types';\nimport { DataType } from '../types';\n\nconst NEW_LINE_REGEX = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\nconst ANSI_REGEX = ansiRegex();\n\ntype ItemProps = {\n item: ChildProcessT;\n};\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\ntype HeaderProps = {\n group?: string;\n title: string;\n state: State;\n};\n\nconst Header = memo(\n function Header({ group, title, state }: HeaderProps) {\n const icon = ICONS[state];\n\n return (\n <Box>\n <Box marginRight={1}>{icon}</Box>\n {group && <Text bold>{`${group}${figures.pointer} `}</Text>}\n <Text>{title}</Text>\n </Box>\n );\n },\n (a, b) => a.group === b.group && a.title === b.title && a.state === b.state\n);\n\ntype OutputProps = {\n output: Data;\n};\n\nconst Output = memo(function Output({ output }: OutputProps) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{output.text}</Text>\n </Box>\n );\n});\n\ntype LinesProps = {\n lines: Data[];\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\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\">\n {/* <Text color={line.type === DataType.stderr ? 'red' : 'black'}>{line.text}</Text> */}\n {/* @ts-ignore */}\n <ink-text>{line.text}</ink-text>\n </Box>\n ))}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { data } = item;\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n <Lines lines={data} />\n </Box>\n );\n});\n\nconst Contracted = memo(function Contracted({ item }: ItemProps) {\n const { state, data } = item;\n\n const lines = useMemo(() => {\n const lines = [];\n data.forEach((x) => {\n x.text.split(NEW_LINE_REGEX).forEach((text) => lines.push({ type: x.type, text: text.replace(ANSI_REGEX, '') }));\n });\n return lines;\n }, [data]);\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === DataType.stderr), [lines]);\n const output = useMemo(() => lines.filter((line) => line.text.length > 0 && errors.indexOf(line) < 0).pop() || '', [lines, errors]);\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n {state === 'running' && <Output output={output} />}\n {errors.length > 0 && <Lines lines={errors} />}\n </Box>\n );\n});\n\nexport default memo(function ChildProcess({ item }: ItemProps) {\n const { expanded } = item;\n return expanded ? <Expanded item={item} /> : <Contracted item={item} />;\n});\n"],"names":["React","memo","useMemo","Box","Text","ansiRegex","figures","Spinner","DataType","NEW_LINE_REGEX","ANSI_REGEX","spinner","interval","frames","ICONS","error","color","cross","success","tick","running","Header","group","title","state","icon","marginRight","bold","pointer","a","b","Output","output","marginLeft","text","Lines","lines","flexDirection","map","line","index","key","ink-text","Expanded","item","data","Contracted","forEach","x","split","push","type","replace","errors","filter","stderr","length","indexOf","pop","ChildProcess","expanded"],"mappings":"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"}
|