spawn-term 0.1.31 → 0.1.33

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,8 +60,12 @@ 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
+ var REGEX_NEW_LINE = /\r\n|[\n\v\f\r\x85\u2028\u2029]/g;
64
+ var REGEX_ANSI = (0, _ansiRegex.default)();
65
+ var DEFAULT_SUMMARY = {
66
+ type: _types.DataType.stdout,
67
+ text: ''
68
+ };
65
69
  // From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
66
70
  var spinner = {
67
71
  interval: 80,
@@ -98,13 +102,13 @@ var Header = /*#__PURE__*/ (0, _react.memo)(function Header(param) {
98
102
  }, function(a, b) {
99
103
  return a.group === b.group && a.title === b.title && a.state === b.state;
100
104
  });
101
- var Output = /*#__PURE__*/ (0, _react.memo)(function Output(param) {
102
- var output = param.output;
105
+ var RunningSummary = /*#__PURE__*/ (0, _react.memo)(function RunningSummary(param) {
106
+ var line = param.line;
103
107
  return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
104
108
  marginLeft: 2
105
109
  }, /*#__PURE__*/ _react.default.createElement(_ink.Text, {
106
110
  color: "gray"
107
- }, output.text));
111
+ }, line.text.replace(REGEX_ANSI, '')));
108
112
  });
109
113
  var Lines = /*#__PURE__*/ (0, _react.memo)(function Lines(param) {
110
114
  var lines = param.lines;
@@ -122,6 +126,20 @@ var Lines = /*#__PURE__*/ (0, _react.memo)(function Lines(param) {
122
126
  var Expanded = /*#__PURE__*/ (0, _react.memo)(function Expanded(param) {
123
127
  var item = param.item;
124
128
  var data = item.data;
129
+ var lines = (0, _react.useMemo)(function() {
130
+ var lines = [];
131
+ data.forEach(function(x) {
132
+ x.text.split(REGEX_NEW_LINE).forEach(function(text) {
133
+ return lines.push({
134
+ type: x.type,
135
+ text: text
136
+ });
137
+ });
138
+ });
139
+ return lines;
140
+ }, [
141
+ data
142
+ ]);
125
143
  return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
126
144
  flexDirection: "column"
127
145
  }, /*#__PURE__*/ _react.default.createElement(Header, {
@@ -129,7 +147,7 @@ var Expanded = /*#__PURE__*/ (0, _react.memo)(function Expanded(param) {
129
147
  title: item.title,
130
148
  state: item.state
131
149
  }), /*#__PURE__*/ _react.default.createElement(Lines, {
132
- lines: data
150
+ lines: lines
133
151
  }));
134
152
  });
135
153
  var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
@@ -138,10 +156,10 @@ var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
138
156
  var lines = (0, _react.useMemo)(function() {
139
157
  var lines = [];
140
158
  data.forEach(function(x) {
141
- x.text.split(NEW_LINE_REGEX).forEach(function(text) {
159
+ x.text.split(REGEX_NEW_LINE).forEach(function(text) {
142
160
  return lines.push({
143
161
  type: x.type,
144
- text: text.replace(ANSI_REGEX, '')
162
+ text: text
145
163
  });
146
164
  });
147
165
  });
@@ -157,10 +175,10 @@ var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
157
175
  }, [
158
176
  lines
159
177
  ]);
160
- var output = (0, _react.useMemo)(function() {
178
+ var summary = (0, _react.useMemo)(function() {
161
179
  return lines.filter(function(line) {
162
180
  return line.text.length > 0 && errors.indexOf(line) < 0;
163
- }).pop() || '';
181
+ }).pop() || DEFAULT_SUMMARY;
164
182
  }, [
165
183
  lines,
166
184
  errors
@@ -171,8 +189,8 @@ var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
171
189
  group: item.group,
172
190
  title: item.title,
173
191
  state: item.state
174
- }), state === 'running' && /*#__PURE__*/ _react.default.createElement(Output, {
175
- output: output
192
+ }), state === 'running' && /*#__PURE__*/ _react.default.createElement(RunningSummary, {
193
+ line: summary
176
194
  }), errors.length > 0 && /*#__PURE__*/ _react.default.createElement(Lines, {
177
195
  lines: errors
178
196
  }));
@@ -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, 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
+ {"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 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 REGEX_NEW_LINE = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\nconst REGEX_ANSI = ansiRegex();\nconst DEFAULT_SUMMARY = { type: DataType.stdout, text: '' };\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 RunningSummaryProps = {\n line: Data;\n};\n\nconst RunningSummary = memo(function RunningSummary({ line }: RunningSummaryProps) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{line.text.replace(REGEX_ANSI, '')}</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 {/* @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 const lines = useMemo(() => {\n const lines = [];\n data.forEach((x) => {\n x.text.split(REGEX_NEW_LINE).forEach((text) => lines.push({ type: x.type, text }));\n });\n return lines;\n }, [data]) as Data[];\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n <Lines lines={lines} />\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(REGEX_NEW_LINE).forEach((text) => lines.push({ type: x.type, text }));\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 summary = useMemo(() => lines.filter((line) => line.text.length > 0 && errors.indexOf(line) < 0).pop() || DEFAULT_SUMMARY, [lines, errors]);\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n {state === 'running' && <RunningSummary line={summary} />}\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":["REGEX_NEW_LINE","REGEX_ANSI","ansiRegex","DEFAULT_SUMMARY","type","DataType","stdout","text","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","RunningSummary","line","marginLeft","replace","Lines","lines","flexDirection","map","index","key","ink-text","Expanded","item","data","useMemo","forEach","x","split","push","Contracted","errors","filter","stderr","summary","length","indexOf","pop","ChildProcess","expanded"],"mappings":"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"}
@@ -4,8 +4,12 @@ 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
+ const REGEX_NEW_LINE = /\r\n|[\n\v\f\r\x85\u2028\u2029]/g;
8
+ const REGEX_ANSI = ansiRegex();
9
+ const DEFAULT_SUMMARY = {
10
+ type: DataType.stdout,
11
+ text: ''
12
+ };
9
13
  // From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
10
14
  const spinner = {
11
15
  interval: 80,
@@ -39,12 +43,12 @@ const Header = /*#__PURE__*/ memo(function Header({ group, title, state }) {
39
43
  bold: true
40
44
  }, `${group}${figures.pointer} `), /*#__PURE__*/ React.createElement(Text, null, title));
41
45
  }, (a, b)=>a.group === b.group && a.title === b.title && a.state === b.state);
42
- const Output = /*#__PURE__*/ memo(function Output({ output }) {
46
+ const RunningSummary = /*#__PURE__*/ memo(function RunningSummary({ line }) {
43
47
  return /*#__PURE__*/ React.createElement(Box, {
44
48
  marginLeft: 2
45
49
  }, /*#__PURE__*/ React.createElement(Text, {
46
50
  color: "gray"
47
- }, output.text));
51
+ }, line.text.replace(REGEX_ANSI, '')));
48
52
  });
49
53
  const Lines = /*#__PURE__*/ memo(function Lines({ lines }) {
50
54
  return /*#__PURE__*/ React.createElement(Box, {
@@ -58,6 +62,18 @@ const Lines = /*#__PURE__*/ memo(function Lines({ lines }) {
58
62
  });
59
63
  const Expanded = /*#__PURE__*/ memo(function Expanded({ item }) {
60
64
  const { data } = item;
65
+ const lines = useMemo(()=>{
66
+ const lines = [];
67
+ data.forEach((x)=>{
68
+ x.text.split(REGEX_NEW_LINE).forEach((text)=>lines.push({
69
+ type: x.type,
70
+ text
71
+ }));
72
+ });
73
+ return lines;
74
+ }, [
75
+ data
76
+ ]);
61
77
  return /*#__PURE__*/ React.createElement(Box, {
62
78
  flexDirection: "column"
63
79
  }, /*#__PURE__*/ React.createElement(Header, {
@@ -65,7 +81,7 @@ const Expanded = /*#__PURE__*/ memo(function Expanded({ item }) {
65
81
  title: item.title,
66
82
  state: item.state
67
83
  }), /*#__PURE__*/ React.createElement(Lines, {
68
- lines: data
84
+ lines: lines
69
85
  }));
70
86
  });
71
87
  const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
@@ -73,9 +89,9 @@ const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
73
89
  const lines = useMemo(()=>{
74
90
  const lines = [];
75
91
  data.forEach((x)=>{
76
- x.text.split(NEW_LINE_REGEX).forEach((text)=>lines.push({
92
+ x.text.split(REGEX_NEW_LINE).forEach((text)=>lines.push({
77
93
  type: x.type,
78
- text: text.replace(ANSI_REGEX, '')
94
+ text
79
95
  }));
80
96
  });
81
97
  return lines;
@@ -86,7 +102,7 @@ const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
86
102
  const errors = useMemo(()=>lines.filter((line)=>line.type === DataType.stderr), [
87
103
  lines
88
104
  ]);
89
- const output = useMemo(()=>lines.filter((line)=>line.text.length > 0 && errors.indexOf(line) < 0).pop() || '', [
105
+ const summary = useMemo(()=>lines.filter((line)=>line.text.length > 0 && errors.indexOf(line) < 0).pop() || DEFAULT_SUMMARY, [
90
106
  lines,
91
107
  errors
92
108
  ]);
@@ -96,8 +112,8 @@ const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
96
112
  group: item.group,
97
113
  title: item.title,
98
114
  state: item.state
99
- }), state === 'running' && /*#__PURE__*/ React.createElement(Output, {
100
- output: output
115
+ }), state === 'running' && /*#__PURE__*/ React.createElement(RunningSummary, {
116
+ line: summary
101
117
  }), errors.length > 0 && /*#__PURE__*/ React.createElement(Lines, {
102
118
  lines: errors
103
119
  }));
@@ -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, 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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"}
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 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 REGEX_NEW_LINE = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\nconst REGEX_ANSI = ansiRegex();\nconst DEFAULT_SUMMARY = { type: DataType.stdout, text: '' };\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 RunningSummaryProps = {\n line: Data;\n};\n\nconst RunningSummary = memo(function RunningSummary({ line }: RunningSummaryProps) {\n return (\n <Box marginLeft={2}>\n <Text color=\"gray\">{line.text.replace(REGEX_ANSI, '')}</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 {/* @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 const lines = useMemo(() => {\n const lines = [];\n data.forEach((x) => {\n x.text.split(REGEX_NEW_LINE).forEach((text) => lines.push({ type: x.type, text }));\n });\n return lines;\n }, [data]) as Data[];\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n <Lines lines={lines} />\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(REGEX_NEW_LINE).forEach((text) => lines.push({ type: x.type, text }));\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 summary = useMemo(() => lines.filter((line) => line.text.length > 0 && errors.indexOf(line) < 0).pop() || DEFAULT_SUMMARY, [lines, errors]);\n\n return (\n <Box flexDirection=\"column\">\n <Header group={item.group} title={item.title} state={item.state} />\n {state === 'running' && <RunningSummary line={summary} />}\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","REGEX_NEW_LINE","REGEX_ANSI","DEFAULT_SUMMARY","type","stdout","text","spinner","interval","frames","ICONS","error","color","cross","success","tick","running","Header","group","title","state","icon","marginRight","bold","pointer","a","b","RunningSummary","line","marginLeft","replace","Lines","lines","flexDirection","map","index","key","ink-text","Expanded","item","data","forEach","x","split","push","Contracted","errors","filter","stderr","summary","length","indexOf","pop","ChildProcess","expanded"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spawn-term",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "Formats spawn with for terminal grouping",
5
5
  "keywords": [
6
6
  "spawn",