spawn-term 0.1.48 → 0.1.50

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.
@@ -62,8 +62,12 @@ function _interop_require_wildcard(obj, nodeInterop) {
62
62
  return newObj;
63
63
  }
64
64
  var REGEX_ANSI = (0, _ansiRegex.default)();
65
+ var BLANK_LINE = {
66
+ type: _types.LineType.stdout,
67
+ text: ''
68
+ };
65
69
  // From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
66
- var spinner = {
70
+ var SPINNER = {
67
71
  interval: 80,
68
72
  frames: [
69
73
  '⠋',
@@ -79,11 +83,11 @@ var spinner = {
79
83
  ]
80
84
  };
81
85
  var ICONS = {
82
- // @ts-expect-error
86
+ // @ts-ignore
83
87
  error: /*#__PURE__*/ _react.default.createElement("ink-text", null, _ansicolors.default.red(_figures.default.cross)),
84
- // @ts-expect-error
88
+ // @ts-ignore
85
89
  success: /*#__PURE__*/ _react.default.createElement("ink-text", null, _ansicolors.default.green(_figures.default.tick)),
86
- running: /*#__PURE__*/ _react.default.createElement(_Spinner.default, spinner)
90
+ running: /*#__PURE__*/ _react.default.createElement(_Spinner.default, SPINNER)
87
91
  };
88
92
  var Header = /*#__PURE__*/ (0, _react.memo)(function Header(param) {
89
93
  var group = param.group, title = param.title, state = param.state;
@@ -103,7 +107,7 @@ var RunningSummary = /*#__PURE__*/ (0, _react.memo)(function RunningSummary(para
103
107
  }, line.text.replace(REGEX_ANSI, '')));
104
108
  });
105
109
  var renderLine = function(line, index) {
106
- return(// @ts-expect-error
110
+ return(// @ts-ignore
107
111
  /*#__PURE__*/ _react.default.createElement("ink-text", {
108
112
  key: index,
109
113
  style: {
@@ -156,8 +160,8 @@ var Contracted = /*#__PURE__*/ (0, _react.memo)(function Contracted(param) {
156
160
  group: item.group,
157
161
  title: item.title,
158
162
  state: item.state
159
- }), state === 'running' && summary && /*#__PURE__*/ _react.default.createElement(RunningSummary, {
160
- line: summary
163
+ }), state === 'running' && /*#__PURE__*/ _react.default.createElement(RunningSummary, {
164
+ line: summary || BLANK_LINE
161
165
  }), errors.length > 0 && /*#__PURE__*/ _react.default.createElement(Lines, {
162
166
  lines: errors
163
167
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import c from 'ansi-colors';\nimport 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, Line, State } from '../types';\nimport { LineType } from '../types';\n\nconst REGEX_ANSI = 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 // @ts-expect-error\n error: <ink-text>{c.red(figures.cross)}</ink-text>,\n // @ts-expect-error\n success: <ink-text>{c.green(figures.tick)}</ink-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 {icon}\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: Line;\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: Line[];\n};\n\nconst renderLine = (line, index) => {\n return (\n // @ts-expect-error\n <ink-text key={index} style={{ minHeight: 1 }}>\n {line.text}\n {/* @ts-expect-error */}\n </ink-text>\n );\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map(renderLine)}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { lines } = item;\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, lines } = item;\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === LineType.stderr), [lines]);\n const summary = 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' && summary && <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_ANSI","ansiRegex","spinner","interval","frames","ICONS","error","ink-text","c","red","figures","cross","success","green","tick","running","Spinner","Header","memo","group","title","state","icon","Box","Text","bold","pointer","a","b","RunningSummary","line","marginLeft","color","text","replace","renderLine","index","key","style","minHeight","Lines","lines","flexDirection","map","Expanded","item","Contracted","errors","useMemo","filter","type","LineType","stderr","summary","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 c from 'ansi-colors';\nimport 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, Line, State } from '../types';\nimport { LineType } from '../types';\n\nconst REGEX_ANSI = ansiRegex();\nconst BLANK_LINE = { type: LineType.stdout, text: '' };\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 // @ts-ignore\n error: <ink-text>{c.red(figures.cross)}</ink-text>,\n // @ts-ignore\n success: <ink-text>{c.green(figures.tick)}</ink-text>,\n running: <Spinner {...SPINNER} />,\n};\n\ntype ItemProps = {\n item: ChildProcessT;\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 {icon}\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: Line;\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: Line[];\n};\n\nconst renderLine = (line, index) => {\n return (\n // @ts-ignore\n <ink-text key={index} style={{ minHeight: 1 }}>\n {line.text}\n {/* @ts-ignore */}\n </ink-text>\n );\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map(renderLine)}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { lines } = item;\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, lines } = item;\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === LineType.stderr), [lines]);\n const summary = 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' && <RunningSummary line={summary || BLANK_LINE} />}\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_ANSI","ansiRegex","BLANK_LINE","type","LineType","stdout","text","SPINNER","interval","frames","ICONS","error","ink-text","c","red","figures","cross","success","green","tick","running","Spinner","Header","memo","group","title","state","icon","Box","Text","bold","pointer","a","b","RunningSummary","line","marginLeft","color","replace","renderLine","index","key","style","minHeight","Lines","lines","flexDirection","map","Expanded","item","Contracted","errors","useMemo","filter","stderr","summary","length","indexOf","pop","ChildProcess","expanded"],"mappings":"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"}
@@ -6,8 +6,12 @@ import figures from '../lib/figures.mjs';
6
6
  import Spinner from './Spinner.mjs';
7
7
  import { LineType } from '../types.mjs';
8
8
  const REGEX_ANSI = ansiRegex();
9
+ const BLANK_LINE = {
10
+ type: LineType.stdout,
11
+ text: ''
12
+ };
9
13
  // From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
10
- const spinner = {
14
+ const SPINNER = {
11
15
  interval: 80,
12
16
  frames: [
13
17
  '⠋',
@@ -23,11 +27,11 @@ const spinner = {
23
27
  ]
24
28
  };
25
29
  const ICONS = {
26
- // @ts-expect-error
30
+ // @ts-ignore
27
31
  error: /*#__PURE__*/ React.createElement("ink-text", null, c.red(figures.cross)),
28
- // @ts-expect-error
32
+ // @ts-ignore
29
33
  success: /*#__PURE__*/ React.createElement("ink-text", null, c.green(figures.tick)),
30
- running: /*#__PURE__*/ React.createElement(Spinner, spinner)
34
+ running: /*#__PURE__*/ React.createElement(Spinner, SPINNER)
31
35
  };
32
36
  const Header = /*#__PURE__*/ memo(function Header({ group, title, state }) {
33
37
  const icon = ICONS[state];
@@ -43,7 +47,7 @@ const RunningSummary = /*#__PURE__*/ memo(function RunningSummary({ line }) {
43
47
  }, line.text.replace(REGEX_ANSI, '')));
44
48
  });
45
49
  const renderLine = (line, index)=>{
46
- return(// @ts-expect-error
50
+ return(// @ts-ignore
47
51
  /*#__PURE__*/ React.createElement("ink-text", {
48
52
  key: index,
49
53
  style: {
@@ -85,8 +89,8 @@ const Contracted = /*#__PURE__*/ memo(function Contracted({ item }) {
85
89
  group: item.group,
86
90
  title: item.title,
87
91
  state: item.state
88
- }), state === 'running' && summary && /*#__PURE__*/ React.createElement(RunningSummary, {
89
- line: summary
92
+ }), state === 'running' && /*#__PURE__*/ React.createElement(RunningSummary, {
93
+ line: summary || BLANK_LINE
90
94
  }), errors.length > 0 && /*#__PURE__*/ React.createElement(Lines, {
91
95
  lines: errors
92
96
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import c from 'ansi-colors';\nimport 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, Line, State } from '../types';\nimport { LineType } from '../types';\n\nconst REGEX_ANSI = 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 // @ts-expect-error\n error: <ink-text>{c.red(figures.cross)}</ink-text>,\n // @ts-expect-error\n success: <ink-text>{c.green(figures.tick)}</ink-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 {icon}\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: Line;\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: Line[];\n};\n\nconst renderLine = (line, index) => {\n return (\n // @ts-expect-error\n <ink-text key={index} style={{ minHeight: 1 }}>\n {line.text}\n {/* @ts-expect-error */}\n </ink-text>\n );\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map(renderLine)}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { lines } = item;\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, lines } = item;\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === LineType.stderr), [lines]);\n const summary = 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' && summary && <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":["c","React","memo","useMemo","Box","Text","ansiRegex","figures","Spinner","LineType","REGEX_ANSI","spinner","interval","frames","ICONS","error","ink-text","red","cross","success","green","tick","running","Header","group","title","state","icon","bold","pointer","a","b","RunningSummary","line","marginLeft","color","text","replace","renderLine","index","key","style","minHeight","Lines","lines","flexDirection","map","Expanded","item","Contracted","errors","filter","type","stderr","summary","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 c from 'ansi-colors';\nimport 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, Line, State } from '../types';\nimport { LineType } from '../types';\n\nconst REGEX_ANSI = ansiRegex();\nconst BLANK_LINE = { type: LineType.stdout, text: '' };\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 // @ts-ignore\n error: <ink-text>{c.red(figures.cross)}</ink-text>,\n // @ts-ignore\n success: <ink-text>{c.green(figures.tick)}</ink-text>,\n running: <Spinner {...SPINNER} />,\n};\n\ntype ItemProps = {\n item: ChildProcessT;\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 {icon}\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: Line;\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: Line[];\n};\n\nconst renderLine = (line, index) => {\n return (\n // @ts-ignore\n <ink-text key={index} style={{ minHeight: 1 }}>\n {line.text}\n {/* @ts-ignore */}\n </ink-text>\n );\n};\n\nconst Lines = memo(function Lines({ lines }: LinesProps) {\n return (\n <Box flexDirection=\"column\" marginLeft={2}>\n {lines.map(renderLine)}\n </Box>\n );\n});\n\nconst Expanded = memo(function Expanded({ item }: ItemProps) {\n const { lines } = item;\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, lines } = item;\n\n // remove ansi codes when displaying single lines\n const errors = useMemo(() => lines.filter((line) => line.type === LineType.stderr), [lines]);\n const summary = 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' && <RunningSummary line={summary || BLANK_LINE} />}\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":["c","React","memo","useMemo","Box","Text","ansiRegex","figures","Spinner","LineType","REGEX_ANSI","BLANK_LINE","type","stdout","text","SPINNER","interval","frames","ICONS","error","ink-text","red","cross","success","green","tick","running","Header","group","title","state","icon","bold","pointer","a","b","RunningSummary","line","marginLeft","color","replace","renderLine","index","key","style","minHeight","Lines","lines","flexDirection","map","Expanded","item","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.48",
3
+ "version": "0.1.50",
4
4
  "description": "Formats spawn with for terminal grouping",
5
5
  "keywords": [
6
6
  "spawn",
@@ -40,8 +40,8 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "ansi-colors": "^4.1.3",
43
- "core-js": "^3.40.0",
44
- "cross-spawn-cb": "^2.1.22",
43
+ "core-js": "^3.41.0",
44
+ "cross-spawn-cb": "^2.1.23",
45
45
  "lil-uuid": "^0.1.1",
46
46
  "on-one": "^0.1.4",
47
47
  "queue-cb": "^1.4.16",