spawn-term 0.1.6 → 0.1.8
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/ChildProcess.cjs +74 -33
- package/dist/cjs/components/ChildProcess.cjs.map +1 -1
- package/dist/cjs/index.cjs.cjs +4 -0
- package/dist/cjs/index.cjs.cjs.map +1 -1
- package/dist/cjs/index.esm.cjs +4 -0
- package/dist/cjs/index.esm.cjs.map +1 -1
- package/dist/cjs/lib/formatArguments.cjs +16 -0
- package/dist/cjs/lib/formatArguments.cjs.map +1 -0
- package/dist/cjs/worker.cjs +2 -1
- package/dist/cjs/worker.cjs.map +1 -1
- package/dist/esm/components/ChildProcess.mjs +65 -28
- package/dist/esm/components/ChildProcess.mjs.map +1 -1
- package/dist/esm/index.cjs.mjs +1 -0
- package/dist/esm/index.cjs.mjs.map +1 -1
- package/dist/esm/index.esm.mjs +1 -0
- package/dist/esm/index.esm.mjs.map +1 -1
- package/dist/esm/lib/formatArguments.mjs +1 -0
- package/dist/esm/lib/formatArguments.mjs.map +1 -0
- package/dist/esm/worker.mjs +2 -1
- package/dist/esm/worker.mjs.map +1 -1
- package/dist/types/index.cjs.d.ts +1 -0
- package/dist/types/index.esm.d.ts +1 -0
- package/dist/types/lib/formatArguments.d.ts +2 -0
- package/package.json +1 -1
|
@@ -94,21 +94,23 @@ var POINTERS = {
|
|
|
94
94
|
color: "yellow"
|
|
95
95
|
}, _figures.default.pointer)
|
|
96
96
|
};
|
|
97
|
-
function
|
|
98
|
-
var
|
|
99
|
-
|
|
100
|
-
var icon = ICONS[state];
|
|
101
|
-
var output = state === 'running' && lines.length ? lines[lines.length - 1] : undefined;
|
|
102
|
-
var errors = state !== 'running' ? lines.filter(function(line) {
|
|
103
|
-
return line.type === _types.LineType.stderr;
|
|
104
|
-
}) : [];
|
|
105
|
-
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
97
|
+
function Header(param) {
|
|
98
|
+
var icon = param.icon, title = param.title;
|
|
99
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
106
100
|
marginRight: 1
|
|
107
|
-
}, /*#__PURE__*/ _react.default.createElement(_ink.Text, null, icon)), /*#__PURE__*/ _react.default.createElement(_ink.Text, null, title))
|
|
101
|
+
}, /*#__PURE__*/ _react.default.createElement(_ink.Text, null, icon)), /*#__PURE__*/ _react.default.createElement(_ink.Text, null, title));
|
|
102
|
+
}
|
|
103
|
+
function Output(param) {
|
|
104
|
+
var output = param.output;
|
|
105
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
108
106
|
marginLeft: 2
|
|
109
107
|
}, /*#__PURE__*/ _react.default.createElement(_ink.Text, {
|
|
110
108
|
color: "gray"
|
|
111
|
-
}, "".concat(_figures.default.arrowRight, " ").concat(output.text)))
|
|
109
|
+
}, "".concat(_figures.default.arrowRight, " ").concat(output.text)));
|
|
110
|
+
}
|
|
111
|
+
function Lines(param) {
|
|
112
|
+
var lines = param.lines;
|
|
113
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
112
114
|
flexDirection: "column",
|
|
113
115
|
marginLeft: 2
|
|
114
116
|
}, lines.map(function(line, index) {
|
|
@@ -120,19 +122,62 @@ function Content(param) {
|
|
|
120
122
|
}, /*#__PURE__*/ _react.default.createElement(_ink.Text, {
|
|
121
123
|
color: line.type === _types.LineType.stderr ? 'red' : 'black'
|
|
122
124
|
}, line.text)));
|
|
123
|
-
}))
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
function Content(param) {
|
|
128
|
+
var item = param.item;
|
|
129
|
+
var title = item.title, state = item.state, lines = item.lines, expanded = item.expanded;
|
|
130
|
+
var icon = ICONS[state];
|
|
131
|
+
var output = lines.length ? lines[lines.length - 1] : undefined;
|
|
132
|
+
var errors = lines.filter(function(line) {
|
|
133
|
+
return line.type === _types.LineType.stderr;
|
|
134
|
+
});
|
|
135
|
+
if (expanded) {
|
|
136
|
+
/*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
137
|
+
icon: icon,
|
|
138
|
+
title: title
|
|
139
|
+
}), /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
140
|
+
lines: lines
|
|
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
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function Group(param) {
|
|
154
|
+
var item = param.item;
|
|
155
|
+
var title = item.title, state = item.state, lines = item.lines, group = item.group, expanded = item.expanded;
|
|
156
|
+
var icon = ICONS[state];
|
|
157
|
+
var pointer = POINTERS[state] || POINTERS.default;
|
|
158
|
+
var errors = lines.filter(function(line) {
|
|
159
|
+
return line.type === _types.LineType.stderr;
|
|
160
|
+
});
|
|
161
|
+
if (state === 'running') {
|
|
162
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
163
|
+
flexDirection: "column"
|
|
164
|
+
}, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
165
|
+
icon: pointer,
|
|
166
|
+
title: group
|
|
167
|
+
}), /*#__PURE__*/ _react.default.createElement(Content, {
|
|
168
|
+
item: item
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
172
|
+
flexDirection: "column"
|
|
173
|
+
}, /*#__PURE__*/ _react.default.createElement(Header, {
|
|
174
|
+
icon: icon,
|
|
175
|
+
title: "".concat(group, ": ").concat(title)
|
|
176
|
+
}), expanded && /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
177
|
+
lines: lines
|
|
178
|
+
}), !expanded && errors.length > 0 && /*#__PURE__*/ _react.default.createElement(Lines, {
|
|
179
|
+
lines: errors
|
|
180
|
+
}));
|
|
136
181
|
}
|
|
137
182
|
function ChildProcess(param) {
|
|
138
183
|
var id = param.id;
|
|
@@ -141,17 +186,13 @@ function ChildProcess(param) {
|
|
|
141
186
|
var item = appState.processes.find(function(x) {
|
|
142
187
|
return x.id === id;
|
|
143
188
|
});
|
|
144
|
-
var
|
|
145
|
-
|
|
189
|
+
var group = item.group;
|
|
190
|
+
if (group) return /*#__PURE__*/ _react.default.createElement(Group, {
|
|
191
|
+
item: item
|
|
192
|
+
});
|
|
146
193
|
return /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
147
194
|
flexDirection: "column"
|
|
148
|
-
},
|
|
149
|
-
flexDirection: "column"
|
|
150
|
-
}, /*#__PURE__*/ _react.default.createElement(_ink.Box, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
151
|
-
marginRight: 1
|
|
152
|
-
}, /*#__PURE__*/ _react.default.createElement(_ink.Text, null, pointer)), /*#__PURE__*/ _react.default.createElement(_ink.Text, null, group)), /*#__PURE__*/ _react.default.createElement(Content, {
|
|
153
|
-
item: item
|
|
154
|
-
})), !group && /*#__PURE__*/ _react.default.createElement(Content, {
|
|
195
|
+
}, /*#__PURE__*/ _react.default.createElement(Content, {
|
|
155
196
|
item: item
|
|
156
197
|
}));
|
|
157
198
|
}
|
|
@@ -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
|
|
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 <Header icon={icon} title={title} />\n <Lines lines={lines} />\n </React.Fragment>;\n } else {\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 }\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\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\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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"}
|
package/dist/cjs/index.cjs.cjs
CHANGED
|
@@ -14,10 +14,14 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
figures: function() {
|
|
16
16
|
return _figures.default;
|
|
17
|
+
},
|
|
18
|
+
formatArguments: function() {
|
|
19
|
+
return _formatArguments.default;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
_export_star(require("./types.cjs"), exports);
|
|
20
23
|
var _figures = /*#__PURE__*/ _interop_require_default(require("./lib/figures.cjs"));
|
|
24
|
+
var _formatArguments = /*#__PURE__*/ _interop_require_default(require("./lib/formatArguments.cjs"));
|
|
21
25
|
function _export_star(from, to) {
|
|
22
26
|
Object.keys(from).forEach(function(k) {
|
|
23
27
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.cjs.ts"],"sourcesContent":["import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n const worker = require('./worker.cjs');\n\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["figures","spawnTerminal","command","args","spawnOptions","options","callback","worker","require","Promise","resolve","reject","err","result","major","process","versions","node","split","undefined"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.cjs.ts"],"sourcesContent":["import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n const worker = require('./worker.cjs');\n\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport { default as formatArguments } from './lib/formatArguments';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["figures","formatArguments","spawnTerminal","command","args","spawnOptions","options","callback","worker","require","Promise","resolve","reject","err","result","major","process","versions","node","split","undefined"],"mappings":";;;;;;;;;;;IAoBA,OAAsD;eAAtD;;IAFoBA,OAAO;eAAPA,gBAAO;;IACPC,eAAe;eAAfA,wBAAe;;;qBAFrB;8DACqB;sEACQ;;;;;;;;;;;;;;;;;;;AAjB3C,SAASC,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,IAAMC,SAASC,QAAQ;IAEvB,IAAI,OAAOH,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,OAAOL,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIG,QAAQ,SAACC,SAASC;eAAWJ,OAAOL,SAASC,MAAMC,cAAcC,SAAS,SAACO,KAAKC;mBAAYD,MAAMD,OAAOC,OAAOF,QAAQG;;;AACrI;AAEA,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;IAKlD,WAAeJ,QAAQ,KAAKb,gBAAgBkB"}
|
package/dist/cjs/index.esm.cjs
CHANGED
|
@@ -14,11 +14,15 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
figures: function() {
|
|
16
16
|
return _figures.default;
|
|
17
|
+
},
|
|
18
|
+
formatArguments: function() {
|
|
19
|
+
return _formatArguments.default;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
var _worker = /*#__PURE__*/ _interop_require_default(require("./worker.cjs"));
|
|
20
23
|
_export_star(require("./types.cjs"), exports);
|
|
21
24
|
var _figures = /*#__PURE__*/ _interop_require_default(require("./lib/figures.cjs"));
|
|
25
|
+
var _formatArguments = /*#__PURE__*/ _interop_require_default(require("./lib/formatArguments.cjs"));
|
|
22
26
|
function _export_star(from, to) {
|
|
23
27
|
Object.keys(from).forEach(function(k) {
|
|
24
28
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.esm.ts"],"sourcesContent":["import worker from './worker';\n\nimport type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["figures","spawnTerminal","command","args","spawnOptions","options","callback","worker","Promise","resolve","reject","err","result","major","process","versions","node","split","undefined"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.esm.ts"],"sourcesContent":["import worker from './worker';\n\nimport type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport { default as formatArguments } from './lib/formatArguments';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["figures","formatArguments","spawnTerminal","command","args","spawnOptions","options","callback","worker","Promise","resolve","reject","err","result","major","process","versions","node","split","undefined"],"mappings":";;;;;;;;;;;IAoBA,OAAsD;eAAtD;;IAFoBA,OAAO;eAAPA,gBAAO;;IACPC,eAAe;eAAfA,wBAAe;;;6DAnBhB;qBAiBL;8DACqB;sEACQ;;;;;;;;;;;;;;;;;;;AAf3C,SAASC,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,IAAAA,eAAM,EAACL,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIE,QAAQ,SAACC,SAASC;eAAWH,IAAAA,eAAM,EAACL,SAASC,MAAMC,cAAcC,SAAS,SAACM,KAAKC;mBAAYD,MAAMD,OAAOC,OAAOF,QAAQG;;;AACrI;AAEA,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;IAKlD,WAAeJ,QAAQ,KAAKZ,gBAAgBiB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _default = function(args) {
|
|
12
|
+
return args.map(function(text) {
|
|
13
|
+
return text.indexOf(' ') >= 0 ? '"'.concat(text, '"') : text;
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
/* 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; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/lib/formatArguments.ts"],"sourcesContent":["export default (args) => args.map((text) => (text.indexOf(' ') >= 0 ? `\"${text}\"` : text));\n"],"names":["args","map","text","indexOf"],"mappings":";;;;+BAAA;;;eAAA;;;IAAA,WAAe,SAACA;WAASA,KAAKC,GAAG,CAAC,SAACC;eAAUA,KAAKC,OAAO,CAAC,QAAQ,IAAI,AAAC,IAAQ,OAALD,MAAK,OAAKA"}
|
package/dist/cjs/worker.cjs
CHANGED
|
@@ -16,6 +16,7 @@ var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
|
16
16
|
var _createApp = /*#__PURE__*/ _interop_require_default(require("./createApp.cjs"));
|
|
17
17
|
var _addLines = /*#__PURE__*/ _interop_require_default(require("./lib/addLines.cjs"));
|
|
18
18
|
var _concatWritable = /*#__PURE__*/ _interop_require_default(require("./lib/concatWritable.cjs"));
|
|
19
|
+
var _formatArguments = /*#__PURE__*/ _interop_require_default(require("./lib/formatArguments.cjs"));
|
|
19
20
|
var _types = require("./types.cjs");
|
|
20
21
|
function _define_property(obj, key, value) {
|
|
21
22
|
if (key in obj) {
|
|
@@ -154,7 +155,7 @@ function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
|
154
155
|
id: id,
|
|
155
156
|
title: [
|
|
156
157
|
command
|
|
157
|
-
].concat(args).join(' '),
|
|
158
|
+
].concat((0, _formatArguments.default)(args)).join(' '),
|
|
158
159
|
state: 'running',
|
|
159
160
|
lines: []
|
|
160
161
|
}, options));
|
package/dist/cjs/worker.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/worker.ts"],"sourcesContent":["// @ts-ignore\nimport spawn, { crossSpawn, type SpawnResult } from 'cross-spawn-cb';\nimport uuid from 'lil-uuid';\nimport oo from 'on-one';\nimport Queue from 'queue-cb';\n\nimport createApp from './createApp';\nimport addLines from './lib/addLines';\nimport concatWritable from './lib/concatWritable';\n\nimport type { SpawnOptions, TerminalOptions } from './types';\nimport { LineType } from './types';\n\nconst terminal = createApp();\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options: TerminalOptions, callback) {\n const { encoding, stdio, ...csOptions } = spawnOptions;\n\n terminal.retain((store) => {\n const id = uuid();\n store.getState().addProcess({ id, title: [command].concat(args).join(' '), state: 'running', lines: [], ...options });\n\n const cp = crossSpawn(command, args, csOptions);\n const outputs = { stdout: null, stderr: null };\n\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);\n }\n\n const queue = new Queue();\n if (cp.stdout) {\n if (stdio === 'inherit') {\n outputs.stdout = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stdout, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stdout = concatWritable((output) => {\n outputs.stdout.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), ['error', 'end', 'close', 'finish']));\n }\n if (cp.stderr) {\n if (stdio === 'inherit') {\n outputs.stderr = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stderr, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stderr = concatWritable((output) => {\n outputs.stderr.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), ['error', 'end', 'close', 'finish']));\n }\n queue.defer(spawn.worker.bind(null, cp, { ...csOptions, encoding: 'utf8' }));\n queue.await((err) => {\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);\n }\n\n const res = (err ? err : {}) as SpawnResult;\n res.stdout = outputs.stdout ? outputs.stdout.output : null;\n res.stderr = outputs.stderr ? outputs.stderr.output : null;\n res.output = [res.stdout, res.stderr, null];\n const item = store.getState().processes.find((x) => x.id === id);\n store.getState().updateProcess({ ...item, state: err ? 'error' : 'success' });\n\n // let rendering complete\n setTimeout(() => {\n terminal.release();\n err ? callback(err) : callback(null, res);\n });\n });\n });\n}\n"],"names":["spawnTerminal","terminal","createApp","command","args","spawnOptions","options","callback","encoding","stdio","csOptions","retain","store","id","uuid","getState","addProcess","title","concat","join","state","lines","cp","crossSpawn","outputs","stdout","stderr","process","getMaxListeners","setMaxListeners","queue","Queue","addLines","texts","item","processes","find","x","map","text","type","LineType","updateProcess","concatWritable","output","toString","defer","oo","bind","pipe","spawn","worker","await","err","res","setTimeout","release"],"mappings":"AAAA,aAAa;;;;;+
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/worker.ts"],"sourcesContent":["// @ts-ignore\nimport spawn, { crossSpawn, type SpawnResult } from 'cross-spawn-cb';\nimport uuid from 'lil-uuid';\nimport oo from 'on-one';\nimport Queue from 'queue-cb';\n\nimport createApp from './createApp';\nimport addLines from './lib/addLines';\nimport concatWritable from './lib/concatWritable';\nimport formatArguments from './lib/formatArguments';\n\nimport type { SpawnOptions, TerminalOptions } from './types';\nimport { LineType } from './types';\n\nconst terminal = createApp();\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options: TerminalOptions, callback) {\n const { encoding, stdio, ...csOptions } = spawnOptions;\n\n terminal.retain((store) => {\n const id = uuid();\n store.getState().addProcess({ id, title: [command].concat(formatArguments(args)).join(' '), state: 'running', lines: [], ...options });\n\n const cp = crossSpawn(command, args, csOptions);\n const outputs = { stdout: null, stderr: null };\n\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);\n }\n\n const queue = new Queue();\n if (cp.stdout) {\n if (stdio === 'inherit') {\n outputs.stdout = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stdout, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stdout = concatWritable((output) => {\n outputs.stdout.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), ['error', 'end', 'close', 'finish']));\n }\n if (cp.stderr) {\n if (stdio === 'inherit') {\n outputs.stderr = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stderr, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stderr = concatWritable((output) => {\n outputs.stderr.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), ['error', 'end', 'close', 'finish']));\n }\n queue.defer(spawn.worker.bind(null, cp, { ...csOptions, encoding: 'utf8' }));\n queue.await((err) => {\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);\n }\n\n const res = (err ? err : {}) as SpawnResult;\n res.stdout = outputs.stdout ? outputs.stdout.output : null;\n res.stderr = outputs.stderr ? outputs.stderr.output : null;\n res.output = [res.stdout, res.stderr, null];\n const item = store.getState().processes.find((x) => x.id === id);\n store.getState().updateProcess({ ...item, state: err ? 'error' : 'success' });\n\n // let rendering complete\n setTimeout(() => {\n terminal.release();\n err ? callback(err) : callback(null, res);\n });\n });\n });\n}\n"],"names":["spawnTerminal","terminal","createApp","command","args","spawnOptions","options","callback","encoding","stdio","csOptions","retain","store","id","uuid","getState","addProcess","title","concat","formatArguments","join","state","lines","cp","crossSpawn","outputs","stdout","stderr","process","getMaxListeners","setMaxListeners","queue","Queue","addLines","texts","item","processes","find","x","map","text","type","LineType","updateProcess","concatWritable","output","toString","defer","oo","bind","pipe","spawn","worker","await","err","res","setTimeout","release"],"mappings":"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"}
|
|
@@ -38,18 +38,20 @@ const POINTERS = {
|
|
|
38
38
|
color: "yellow"
|
|
39
39
|
}, figures.pointer)
|
|
40
40
|
};
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
const icon = ICONS[state];
|
|
44
|
-
const output = state === 'running' && lines.length ? lines[lines.length - 1] : undefined;
|
|
45
|
-
const errors = state !== 'running' ? lines.filter((line)=>line.type === LineType.stderr) : [];
|
|
46
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Box, {
|
|
41
|
+
function Header({ icon, title }) {
|
|
42
|
+
return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Box, {
|
|
47
43
|
marginRight: 1
|
|
48
|
-
}, /*#__PURE__*/ React.createElement(Text, null, icon)), /*#__PURE__*/ React.createElement(Text, null, title))
|
|
44
|
+
}, /*#__PURE__*/ React.createElement(Text, null, icon)), /*#__PURE__*/ React.createElement(Text, null, title));
|
|
45
|
+
}
|
|
46
|
+
function Output({ output }) {
|
|
47
|
+
return /*#__PURE__*/ React.createElement(Box, {
|
|
49
48
|
marginLeft: 2
|
|
50
49
|
}, /*#__PURE__*/ React.createElement(Text, {
|
|
51
50
|
color: "gray"
|
|
52
|
-
}, `${figures.arrowRight} ${output.text}`))
|
|
51
|
+
}, `${figures.arrowRight} ${output.text}`));
|
|
52
|
+
}
|
|
53
|
+
function Lines({ lines }) {
|
|
54
|
+
return /*#__PURE__*/ React.createElement(Box, {
|
|
53
55
|
flexDirection: "column",
|
|
54
56
|
marginLeft: 2
|
|
55
57
|
}, lines.map((line, index)=>// biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
|
|
@@ -59,33 +61,68 @@ function Content({ item }) {
|
|
|
59
61
|
height: 1
|
|
60
62
|
}, /*#__PURE__*/ React.createElement(Text, {
|
|
61
63
|
color: line.type === LineType.stderr ? 'red' : 'black'
|
|
62
|
-
}, line.text))))
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
}, line.text))));
|
|
65
|
+
}
|
|
66
|
+
function Content({ item }) {
|
|
67
|
+
const { title, state, lines, expanded } = item;
|
|
68
|
+
const icon = ICONS[state];
|
|
69
|
+
const output = lines.length ? lines[lines.length - 1] : undefined;
|
|
70
|
+
const errors = lines.filter((line)=>line.type === LineType.stderr);
|
|
71
|
+
if (expanded) {
|
|
72
|
+
/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Header, {
|
|
73
|
+
icon: icon,
|
|
74
|
+
title: title
|
|
75
|
+
}), /*#__PURE__*/ React.createElement(Lines, {
|
|
76
|
+
lines: lines
|
|
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
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function Group({ item }) {
|
|
90
|
+
const { title, state, lines, group, expanded } = item;
|
|
91
|
+
const icon = ICONS[state];
|
|
92
|
+
const pointer = POINTERS[state] || POINTERS.default;
|
|
93
|
+
const errors = lines.filter((line)=>line.type === LineType.stderr);
|
|
94
|
+
if (state === 'running') {
|
|
95
|
+
return /*#__PURE__*/ React.createElement(Box, {
|
|
96
|
+
flexDirection: "column"
|
|
97
|
+
}, /*#__PURE__*/ React.createElement(Header, {
|
|
98
|
+
icon: pointer,
|
|
99
|
+
title: group
|
|
100
|
+
}), /*#__PURE__*/ React.createElement(Content, {
|
|
101
|
+
item: item
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
return /*#__PURE__*/ React.createElement(Box, {
|
|
105
|
+
flexDirection: "column"
|
|
106
|
+
}, /*#__PURE__*/ React.createElement(Header, {
|
|
107
|
+
icon: icon,
|
|
108
|
+
title: `${group}: ${title}`
|
|
109
|
+
}), expanded && /*#__PURE__*/ React.createElement(Lines, {
|
|
110
|
+
lines: lines
|
|
111
|
+
}), !expanded && errors.length > 0 && /*#__PURE__*/ React.createElement(Lines, {
|
|
112
|
+
lines: errors
|
|
113
|
+
}));
|
|
73
114
|
}
|
|
74
115
|
export default function ChildProcess({ id }) {
|
|
75
116
|
const store = useContext(StoreContext);
|
|
76
117
|
const appState = useStore(store);
|
|
77
118
|
const item = appState.processes.find((x)=>x.id === id);
|
|
78
|
-
const {
|
|
79
|
-
|
|
119
|
+
const { group } = item;
|
|
120
|
+
if (group) return /*#__PURE__*/ React.createElement(Group, {
|
|
121
|
+
item: item
|
|
122
|
+
});
|
|
80
123
|
return /*#__PURE__*/ React.createElement(Box, {
|
|
81
124
|
flexDirection: "column"
|
|
82
|
-
},
|
|
83
|
-
flexDirection: "column"
|
|
84
|
-
}, /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Box, {
|
|
85
|
-
marginRight: 1
|
|
86
|
-
}, /*#__PURE__*/ React.createElement(Text, null, pointer)), /*#__PURE__*/ React.createElement(Text, null, group)), /*#__PURE__*/ React.createElement(Content, {
|
|
87
|
-
item: item
|
|
88
|
-
})), !group && /*#__PURE__*/ React.createElement(Content, {
|
|
125
|
+
}, /*#__PURE__*/ React.createElement(Content, {
|
|
89
126
|
item: item
|
|
90
127
|
}));
|
|
91
128
|
}
|
|
@@ -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
|
|
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 <Header icon={icon} title={title} />\n <Lines lines={lines} />\n </React.Fragment>;\n } else {\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 }\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\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\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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"}
|
package/dist/esm/index.cjs.mjs
CHANGED
|
@@ -11,4 +11,5 @@ function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
|
11
11
|
const major = +process.versions.node.split('.')[0];
|
|
12
12
|
export * from './types.mjs';
|
|
13
13
|
export { default as figures } from './lib/figures.mjs';
|
|
14
|
+
export { default as formatArguments } from './lib/formatArguments.mjs';
|
|
14
15
|
export default major > 10 ? spawnTerminal : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.cjs.ts"],"sourcesContent":["import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n const worker = require('./worker.cjs');\n\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["spawnTerminal","command","args","spawnOptions","options","callback","worker","require","Promise","resolve","reject","err","result","major","process","versions","node","split","default","figures","undefined"],"mappings":"AAEA,SAASA,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,MAAMC,SAASC,QAAQ;IAEvB,IAAI,OAAOH,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,OAAOL,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIG,QAAQ,CAACC,SAASC,SAAWJ,OAAOL,SAASC,MAAMC,cAAcC,SAAS,CAACO,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AACrI;AAEA,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAElD,cAAc,UAAU;AACxB,SAASC,WAAWC,OAAO,QAAQ,gBAAgB;AACnD,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.cjs.ts"],"sourcesContent":["import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n const worker = require('./worker.cjs');\n\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport { default as formatArguments } from './lib/formatArguments';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["spawnTerminal","command","args","spawnOptions","options","callback","worker","require","Promise","resolve","reject","err","result","major","process","versions","node","split","default","figures","formatArguments","undefined"],"mappings":"AAEA,SAASA,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,MAAMC,SAASC,QAAQ;IAEvB,IAAI,OAAOH,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,OAAOL,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIG,QAAQ,CAACC,SAASC,SAAWJ,OAAOL,SAASC,MAAMC,cAAcC,SAAS,CAACO,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AACrI;AAEA,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAElD,cAAc,UAAU;AACxB,SAASC,WAAWC,OAAO,QAAQ,gBAAgB;AACnD,SAASD,WAAWE,eAAe,QAAQ,wBAAwB;AACnE,eAAeP,QAAQ,KAAKb,gBAAgBqB,UAAU"}
|
package/dist/esm/index.esm.mjs
CHANGED
|
@@ -11,4 +11,5 @@ function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
|
11
11
|
const major = +process.versions.node.split('.')[0];
|
|
12
12
|
export * from './types.mjs';
|
|
13
13
|
export { default as figures } from './lib/figures.mjs';
|
|
14
|
+
export { default as formatArguments } from './lib/formatArguments.mjs';
|
|
14
15
|
export default major > 10 ? spawnTerminal : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.esm.ts"],"sourcesContent":["import worker from './worker';\n\nimport type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["worker","spawnTerminal","command","args","spawnOptions","options","callback","Promise","resolve","reject","err","result","major","process","versions","node","split","default","figures","undefined"],"mappings":"AAAA,OAAOA,YAAY,WAAW;AAI9B,SAASC,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAON,OAAOE,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAAWT,OAAOE,SAASC,MAAMC,cAAcC,SAAS,CAACK,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AACrI;AAEA,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAElD,cAAc,UAAU;AACxB,SAASC,WAAWC,OAAO,QAAQ,gBAAgB;AACnD,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/index.esm.ts"],"sourcesContent":["import worker from './worker';\n\nimport type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';\n\nfunction spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback) {\n if (typeof options === 'function') {\n callback = options as SpawnCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(command, args, spawnOptions, options, callback);\n return new Promise((resolve, reject) => worker(command, args, spawnOptions, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\n\nconst major = +process.versions.node.split('.')[0];\n\nexport * from './types';\nexport { default as figures } from './lib/figures';\nexport { default as formatArguments } from './lib/formatArguments';\nexport default major > 10 ? spawnTerminal : undefined;\n"],"names":["worker","spawnTerminal","command","args","spawnOptions","options","callback","Promise","resolve","reject","err","result","major","process","versions","node","split","default","figures","formatArguments","undefined"],"mappings":"AAAA,OAAOA,YAAY,WAAW;AAI9B,SAASC,cAAcC,OAAe,EAAEC,IAAc,EAAEC,YAA0B,EAAEC,OAAyC,EAAEC,QAAwB;IACrJ,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAON,OAAOE,SAASC,MAAMC,cAAcC,SAASC;IACxF,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAAWT,OAAOE,SAASC,MAAMC,cAAcC,SAAS,CAACK,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AACrI;AAEA,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAElD,cAAc,UAAU;AACxB,SAASC,WAAWC,OAAO,QAAQ,gBAAgB;AACnD,SAASD,WAAWE,eAAe,QAAQ,wBAAwB;AACnE,eAAeP,QAAQ,KAAKX,gBAAgBmB,UAAU"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default ((args)=>args.map((text)=>text.indexOf(' ') >= 0 ? `"${text}"` : text));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/lib/formatArguments.ts"],"sourcesContent":["export default (args) => args.map((text) => (text.indexOf(' ') >= 0 ? `\"${text}\"` : text));\n"],"names":["args","map","text","indexOf"],"mappings":"AAAA,eAAe,CAAA,CAACA,OAASA,KAAKC,GAAG,CAAC,CAACC,OAAUA,KAAKC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAED,KAAK,CAAC,CAAC,GAAGA,KAAK,EAAE"}
|
package/dist/esm/worker.mjs
CHANGED
|
@@ -85,6 +85,7 @@ import Queue from 'queue-cb';
|
|
|
85
85
|
import createApp from './createApp.mjs';
|
|
86
86
|
import addLines from './lib/addLines.mjs';
|
|
87
87
|
import concatWritable from './lib/concatWritable.mjs';
|
|
88
|
+
import formatArguments from './lib/formatArguments.mjs';
|
|
88
89
|
import { LineType } from './types.mjs';
|
|
89
90
|
const terminal = createApp();
|
|
90
91
|
export default function spawnTerminal(command, args, spawnOptions, options, callback) {
|
|
@@ -98,7 +99,7 @@ export default function spawnTerminal(command, args, spawnOptions, options, call
|
|
|
98
99
|
id,
|
|
99
100
|
title: [
|
|
100
101
|
command
|
|
101
|
-
].concat(args).join(' '),
|
|
102
|
+
].concat(formatArguments(args)).join(' '),
|
|
102
103
|
state: 'running',
|
|
103
104
|
lines: []
|
|
104
105
|
}, options));
|
package/dist/esm/worker.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/worker.ts"],"sourcesContent":["// @ts-ignore\nimport spawn, { crossSpawn, type SpawnResult } from 'cross-spawn-cb';\nimport uuid from 'lil-uuid';\nimport oo from 'on-one';\nimport Queue from 'queue-cb';\n\nimport createApp from './createApp';\nimport addLines from './lib/addLines';\nimport concatWritable from './lib/concatWritable';\n\nimport type { SpawnOptions, TerminalOptions } from './types';\nimport { LineType } from './types';\n\nconst terminal = createApp();\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options: TerminalOptions, callback) {\n const { encoding, stdio, ...csOptions } = spawnOptions;\n\n terminal.retain((store) => {\n const id = uuid();\n store.getState().addProcess({ id, title: [command].concat(args).join(' '), state: 'running', lines: [], ...options });\n\n const cp = crossSpawn(command, args, csOptions);\n const outputs = { stdout: null, stderr: null };\n\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);\n }\n\n const queue = new Queue();\n if (cp.stdout) {\n if (stdio === 'inherit') {\n outputs.stdout = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stdout, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stdout = concatWritable((output) => {\n outputs.stdout.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), ['error', 'end', 'close', 'finish']));\n }\n if (cp.stderr) {\n if (stdio === 'inherit') {\n outputs.stderr = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stderr, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stderr = concatWritable((output) => {\n outputs.stderr.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), ['error', 'end', 'close', 'finish']));\n }\n queue.defer(spawn.worker.bind(null, cp, { ...csOptions, encoding: 'utf8' }));\n queue.await((err) => {\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);\n }\n\n const res = (err ? err : {}) as SpawnResult;\n res.stdout = outputs.stdout ? outputs.stdout.output : null;\n res.stderr = outputs.stderr ? outputs.stderr.output : null;\n res.output = [res.stdout, res.stderr, null];\n const item = store.getState().processes.find((x) => x.id === id);\n store.getState().updateProcess({ ...item, state: err ? 'error' : 'success' });\n\n // let rendering complete\n setTimeout(() => {\n terminal.release();\n err ? callback(err) : callback(null, res);\n });\n });\n });\n}\n"],"names":["spawn","crossSpawn","uuid","oo","Queue","createApp","addLines","concatWritable","LineType","terminal","spawnTerminal","command","args","spawnOptions","options","callback","encoding","stdio","csOptions","retain","store","id","getState","addProcess","title","concat","join","state","lines","cp","outputs","stdout","stderr","process","getMaxListeners","setMaxListeners","queue","texts","item","processes","find","x","map","text","type","updateProcess","output","toString","defer","bind","pipe","worker","await","err","res","setTimeout","release"],"mappings":"AAAA,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,OAAOA,SAASC,UAAU,QAA0B,iBAAiB;AACrE,OAAOC,UAAU,WAAW;AAC5B,OAAOC,QAAQ,SAAS;AACxB,OAAOC,WAAW,WAAW;AAE7B,OAAOC,eAAe,cAAc;AACpC,OAAOC,cAAc,iBAAiB;AACtC,OAAOC,oBAAoB,uBAAuB;
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/worker.ts"],"sourcesContent":["// @ts-ignore\nimport spawn, { crossSpawn, type SpawnResult } from 'cross-spawn-cb';\nimport uuid from 'lil-uuid';\nimport oo from 'on-one';\nimport Queue from 'queue-cb';\n\nimport createApp from './createApp';\nimport addLines from './lib/addLines';\nimport concatWritable from './lib/concatWritable';\nimport formatArguments from './lib/formatArguments';\n\nimport type { SpawnOptions, TerminalOptions } from './types';\nimport { LineType } from './types';\n\nconst terminal = createApp();\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options: TerminalOptions, callback) {\n const { encoding, stdio, ...csOptions } = spawnOptions;\n\n terminal.retain((store) => {\n const id = uuid();\n store.getState().addProcess({ id, title: [command].concat(formatArguments(args)).join(' '), state: 'running', lines: [], ...options });\n\n const cp = crossSpawn(command, args, csOptions);\n const outputs = { stdout: null, stderr: null };\n\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);\n }\n\n const queue = new Queue();\n if (cp.stdout) {\n if (stdio === 'inherit') {\n outputs.stdout = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stdout, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stdout = concatWritable((output) => {\n outputs.stdout.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), ['error', 'end', 'close', 'finish']));\n }\n if (cp.stderr) {\n if (stdio === 'inherit') {\n outputs.stderr = addLines((texts) => {\n const item = store.getState().processes.find((x) => x.id === id);\n const lines = item.lines.concat(texts.map((text) => ({ type: LineType.stderr, text })));\n store.getState().updateProcess({ ...item, lines });\n });\n } else {\n outputs.stderr = concatWritable((output) => {\n outputs.stderr.output = output.toString(encoding || 'utf8');\n });\n }\n queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), ['error', 'end', 'close', 'finish']));\n }\n queue.defer(spawn.worker.bind(null, cp, { ...csOptions, encoding: 'utf8' }));\n queue.await((err) => {\n if (cp.stdout && process.stdout.getMaxListeners) {\n process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);\n process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);\n }\n\n const res = (err ? err : {}) as SpawnResult;\n res.stdout = outputs.stdout ? outputs.stdout.output : null;\n res.stderr = outputs.stderr ? outputs.stderr.output : null;\n res.output = [res.stdout, res.stderr, null];\n const item = store.getState().processes.find((x) => x.id === id);\n store.getState().updateProcess({ ...item, state: err ? 'error' : 'success' });\n\n // let rendering complete\n setTimeout(() => {\n terminal.release();\n err ? callback(err) : callback(null, res);\n });\n });\n });\n}\n"],"names":["spawn","crossSpawn","uuid","oo","Queue","createApp","addLines","concatWritable","formatArguments","LineType","terminal","spawnTerminal","command","args","spawnOptions","options","callback","encoding","stdio","csOptions","retain","store","id","getState","addProcess","title","concat","join","state","lines","cp","outputs","stdout","stderr","process","getMaxListeners","setMaxListeners","queue","texts","item","processes","find","x","map","text","type","updateProcess","output","toString","defer","bind","pipe","worker","await","err","res","setTimeout","release"],"mappings":"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"}
|
|
@@ -2,5 +2,6 @@ import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';
|
|
|
2
2
|
declare function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback): any;
|
|
3
3
|
export * from './types';
|
|
4
4
|
export { default as figures } from './lib/figures';
|
|
5
|
+
export { default as formatArguments } from './lib/formatArguments';
|
|
5
6
|
declare const _default: typeof spawnTerminal;
|
|
6
7
|
export default _default;
|
|
@@ -2,5 +2,6 @@ import type { SpawnCallback, SpawnOptions, TerminalOptions } from './types';
|
|
|
2
2
|
declare function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, options?: TerminalOptions | SpawnCallback, callback?: SpawnCallback): void | Promise<unknown>;
|
|
3
3
|
export * from './types';
|
|
4
4
|
export { default as figures } from './lib/figures';
|
|
5
|
+
export { default as formatArguments } from './lib/formatArguments';
|
|
5
6
|
declare const _default: typeof spawnTerminal;
|
|
6
7
|
export default _default;
|