spawn-term 0.1.2 → 0.1.4

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.
@@ -79,6 +79,7 @@ function _object_without_properties_loose(source, excluded) {
79
79
  return target;
80
80
  }
81
81
  import spawn, { crossSpawn } from 'cross-spawn-cb';
82
+ import uuid from 'lil-uuid';
82
83
  import oo from 'on-one';
83
84
  import Queue from 'queue-cb';
84
85
  import createApp from './createApp.mjs';
@@ -86,95 +87,101 @@ import addLines from './lib/addLines.mjs';
86
87
  import concatWritable from './lib/concatWritable.mjs';
87
88
  import { LineType } from './types.mjs';
88
89
  const terminal = createApp();
89
- import throttle from 'lodash.throttle';
90
- const THROTTLE = 100;
91
- const rerender = throttle(()=>{
92
- terminal.rerender();
93
- }, THROTTLE);
94
90
  export default function spawnTerminal(command, args, spawnOptions, _options, callback) {
95
91
  const { encoding, stdio } = spawnOptions, csOptions = _object_without_properties(spawnOptions, [
96
92
  "encoding",
97
93
  "stdio"
98
94
  ]);
99
- terminal.retain();
100
- const item = terminal.addItem({
101
- title: [
102
- command
103
- ].concat(args).join(' '),
104
- state: 'running'
105
- });
106
- terminal.rerender();
107
- const cp = crossSpawn(command, args, csOptions);
108
- const outputs = {
109
- stdout: null,
110
- stderr: null
111
- };
112
- if (cp.stdout && process.stdout.getMaxListeners) {
113
- process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);
114
- process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);
115
- }
116
- const queue = new Queue();
117
- if (cp.stdout) {
118
- if (stdio === 'inherit') {
119
- outputs.stdout = addLines((text)=>{
120
- item.lines.push({
121
- type: LineType.stdout,
122
- text
123
- });
124
- rerender();
125
- });
126
- } else {
127
- outputs.stdout = concatWritable((output)=>{
128
- outputs.stdout.output = output.toString(encoding || 'utf8');
129
- });
95
+ terminal.retain((store)=>{
96
+ const id = uuid();
97
+ store.getState().addProcess({
98
+ id,
99
+ title: [
100
+ command
101
+ ].concat(args).join(' '),
102
+ state: 'running',
103
+ lines: []
104
+ });
105
+ const cp = crossSpawn(command, args, csOptions);
106
+ const outputs = {
107
+ stdout: null,
108
+ stderr: null
109
+ };
110
+ if (cp.stdout && process.stdout.getMaxListeners) {
111
+ process.stdout.setMaxListeners(process.stdout.getMaxListeners() + 1);
112
+ process.stderr.setMaxListeners(process.stderr.getMaxListeners() + 1);
130
113
  }
131
- queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), [
132
- 'error',
133
- 'end',
134
- 'close',
135
- 'finish'
136
- ]));
137
- }
138
- if (cp.stderr) {
139
- if (stdio === 'inherit') {
140
- outputs.stderr = addLines((text)=>{
141
- item.lines.push({
142
- type: LineType.stderr,
143
- text
114
+ const queue = new Queue();
115
+ if (cp.stdout) {
116
+ if (stdio === 'inherit') {
117
+ outputs.stdout = addLines((texts)=>{
118
+ const item = store.getState().processes.find((x)=>x.id === id);
119
+ const lines = item.lines.concat(texts.map((text)=>({
120
+ type: LineType.stdout,
121
+ text
122
+ })));
123
+ store.getState().updateProcess(_object_spread_props(_object_spread({}, item), {
124
+ lines
125
+ }));
144
126
  });
145
- rerender();
146
- });
147
- } else {
148
- outputs.stderr = concatWritable((output)=>{
149
- outputs.stderr.output = output.toString(encoding || 'utf8');
150
- });
127
+ } else {
128
+ outputs.stdout = concatWritable((output)=>{
129
+ outputs.stdout.output = output.toString(encoding || 'utf8');
130
+ });
131
+ }
132
+ queue.defer(oo.bind(null, cp.stdout.pipe(outputs.stdout), [
133
+ 'error',
134
+ 'end',
135
+ 'close',
136
+ 'finish'
137
+ ]));
151
138
  }
152
- queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), [
153
- 'error',
154
- 'end',
155
- 'close',
156
- 'finish'
157
- ]));
158
- }
159
- queue.defer(spawn.worker.bind(null, cp, _object_spread_props(_object_spread({}, csOptions), {
160
- encoding: 'utf8'
161
- })));
162
- queue.await((err)=>{
163
- if (cp.stdout && process.stdout.getMaxListeners) {
164
- process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);
165
- process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);
139
+ if (cp.stderr) {
140
+ if (stdio === 'inherit') {
141
+ outputs.stderr = addLines((texts)=>{
142
+ const item = store.getState().processes.find((x)=>x.id === id);
143
+ const lines = item.lines.concat(texts.map((text)=>({
144
+ type: LineType.stderr,
145
+ text
146
+ })));
147
+ store.getState().updateProcess(_object_spread_props(_object_spread({}, item), {
148
+ lines
149
+ }));
150
+ });
151
+ } else {
152
+ outputs.stderr = concatWritable((output)=>{
153
+ outputs.stderr.output = output.toString(encoding || 'utf8');
154
+ });
155
+ }
156
+ queue.defer(oo.bind(null, cp.stderr.pipe(outputs.stderr), [
157
+ 'error',
158
+ 'end',
159
+ 'close',
160
+ 'finish'
161
+ ]));
166
162
  }
167
- const res = err ? err : {};
168
- res.stdout = outputs.stdout ? outputs.stdout.output : null;
169
- res.stderr = outputs.stderr ? outputs.stderr.output : null;
170
- res.output = [
171
- res.stdout,
172
- res.stderr,
173
- null
174
- ];
175
- item.state = err ? 'error' : 'success';
176
- terminal.rerender();
177
- terminal.release();
178
- err ? callback(err) : callback(null, res);
163
+ queue.defer(spawn.worker.bind(null, cp, _object_spread_props(_object_spread({}, csOptions), {
164
+ encoding: 'utf8'
165
+ })));
166
+ queue.await((err)=>{
167
+ if (cp.stdout && process.stdout.getMaxListeners) {
168
+ process.stdout.setMaxListeners(process.stdout.getMaxListeners() - 1);
169
+ process.stderr.setMaxListeners(process.stderr.getMaxListeners() - 1);
170
+ }
171
+ const res = err ? err : {};
172
+ res.stdout = outputs.stdout ? outputs.stdout.output : null;
173
+ res.stderr = outputs.stderr ? outputs.stderr.output : null;
174
+ res.output = [
175
+ res.stdout,
176
+ res.stderr,
177
+ null
178
+ ];
179
+ const item = store.getState().processes.find((x)=>x.id === id);
180
+ store.getState().updateProcess(_object_spread_props(_object_spread({}, item), {
181
+ state: err ? 'error' : 'success'
182
+ }));
183
+ terminal.release();
184
+ err ? callback(err) : callback(null, res);
185
+ });
179
186
  });
180
187
  }
@@ -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 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\nimport throttle from 'lodash.throttle';\nconst THROTTLE = 100;\nconst rerender = throttle(() => {\n terminal.rerender();\n}, THROTTLE);\n\nexport default function spawnTerminal(command: string, args: string[], spawnOptions: SpawnOptions, _options: TerminalOptions, callback) {\n const { encoding, stdio, ...csOptions } = spawnOptions;\n\n terminal.retain();\n const item = terminal.addItem({ title: [command].concat(args).join(' '), state: 'running' });\n terminal.rerender();\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((text) => {\n item.lines.push({ type: LineType.stdout, text });\n rerender();\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((text) => {\n item.lines.push({ type: LineType.stderr, text });\n rerender();\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 item.state = err ? 'error' : 'success';\n terminal.rerender();\n terminal.release();\n err ? callback(err) : callback(null, res);\n });\n}\n"],"names":["spawn","crossSpawn","oo","Queue","createApp","addLines","concatWritable","LineType","terminal","throttle","THROTTLE","rerender","spawnTerminal","command","args","spawnOptions","_options","callback","encoding","stdio","csOptions","retain","item","addItem","title","concat","join","state","cp","outputs","stdout","stderr","process","getMaxListeners","setMaxListeners","queue","text","lines","push","type","output","toString","defer","bind","pipe","worker","await","err","res","release"],"mappings":"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"}
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: [] });\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 terminal.release();\n err ? callback(err) : callback(null, res);\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","release"],"mappings":"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"}
@@ -1,5 +1 @@
1
- import type { ChildProcess as ChildProcessT } from '../types';
2
- export interface AppProps {
3
- list: ChildProcessT[];
4
- }
5
- export default function App({ list }: AppProps): any;
1
+ export default function App(): any;
@@ -1,9 +1,5 @@
1
- import type { Line, State } from '../types';
2
1
  type ChildProcessProps = {
3
- title: string;
4
- state: State;
5
- lines: Line[];
6
- isExpanded?: boolean;
2
+ id: string;
7
3
  };
8
- export default function ChildProcess({ title, state, lines, isExpanded }: ChildProcessProps): any;
4
+ export default function ChildProcess({ id }: ChildProcessProps): any;
9
5
  export {};
@@ -0,0 +1,2 @@
1
+ declare const _default: import("react").Context<any>;
2
+ export default _default;
@@ -1,7 +1,4 @@
1
- import type { ChildProcess } from './types';
2
1
  export default function createApp(): {
3
- addItem(data: Partial<ChildProcess>): ChildProcess;
4
- rerender(): void;
5
- retain(): void;
2
+ retain(fn: any): void;
6
3
  release(): void;
7
4
  };
@@ -1 +1 @@
1
- export default function addLines(addLine: any): any;
1
+ export default function addLines(fn: any): any;
@@ -16,4 +16,10 @@ export type ChildProcess = {
16
16
  title: string;
17
17
  state: State;
18
18
  lines: Line[];
19
+ isExpanded: boolean;
19
20
  };
21
+ export interface AppState {
22
+ processes: ChildProcess[];
23
+ addProcess: (process: ChildProcess) => void;
24
+ updateProcess: (process: ChildProcess) => void;
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spawn-term",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Formats spawn with for terminal grouping",
5
5
  "keywords": [
6
6
  "spawn",
@@ -42,12 +42,13 @@
42
42
  "core-js": "^3.40.0",
43
43
  "cross-spawn-cb": "^2.1.22",
44
44
  "lil-uuid": "^0.1.1",
45
- "lodash.throttle": "^4.1.1",
46
45
  "on-one": "^0.1.4",
47
46
  "queue-cb": "^1.4.16",
48
47
  "react": "^18.3.1",
49
48
  "readable-stream": "^2.3.8",
50
- "yoga-wasm-web": "^0.3.3"
49
+ "resolve-once-cb": "^0.1.14",
50
+ "yoga-wasm-web": "^0.3.3",
51
+ "zustand": "^5.0.3"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@types/mocha": "*",