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.
- package/dist/cjs/components/App.cjs +54 -36
- package/dist/cjs/components/App.cjs.map +1 -1
- package/dist/cjs/components/ChildProcess.cjs +51 -2
- package/dist/cjs/components/ChildProcess.cjs.map +1 -1
- package/dist/cjs/contexts/Store.cjs +13 -0
- package/dist/cjs/contexts/Store.cjs.map +1 -0
- package/dist/cjs/createApp.cjs +68 -54
- package/dist/cjs/createApp.cjs.map +1 -1
- package/dist/cjs/lib/addLines.cjs +5 -5
- package/dist/cjs/lib/addLines.cjs.map +1 -1
- package/dist/cjs/types.cjs.map +1 -1
- package/dist/cjs/worker.cjs +98 -81
- package/dist/cjs/worker.cjs.map +1 -1
- package/dist/esm/components/App.mjs +16 -38
- package/dist/esm/components/App.mjs.map +1 -1
- package/dist/esm/components/ChildProcess.mjs +8 -2
- package/dist/esm/components/ChildProcess.mjs.map +1 -1
- package/dist/esm/contexts/Store.mjs +2 -0
- package/dist/esm/contexts/Store.mjs.map +1 -0
- package/dist/esm/createApp.mjs +30 -56
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/lib/addLines.mjs +5 -3
- package/dist/esm/lib/addLines.mjs.map +1 -1
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/worker.mjs +88 -81
- package/dist/esm/worker.mjs.map +1 -1
- package/dist/types/components/App.d.ts +1 -5
- package/dist/types/components/ChildProcess.d.ts +2 -6
- package/dist/types/contexts/Store.d.ts +2 -0
- package/dist/types/createApp.d.ts +1 -4
- package/dist/types/lib/addLines.d.ts +1 -1
- package/dist/types/types.d.ts +6 -0
- package/package.json +4 -3
|
@@ -8,50 +8,66 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return App;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _react = /*#__PURE__*/
|
|
11
|
+
var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
|
+
var _zustand = require("zustand");
|
|
13
|
+
var _Store = /*#__PURE__*/ _interop_require_default(require("../contexts/Store.cjs"));
|
|
12
14
|
var _ink = require("../ink.cjs");
|
|
13
15
|
var _ChildProcess = /*#__PURE__*/ _interop_require_default(require("./ChildProcess.cjs"));
|
|
14
|
-
function _define_property(obj, key, value) {
|
|
15
|
-
if (key in obj) {
|
|
16
|
-
Object.defineProperty(obj, key, {
|
|
17
|
-
value: value,
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true
|
|
21
|
-
});
|
|
22
|
-
} else {
|
|
23
|
-
obj[key] = value;
|
|
24
|
-
}
|
|
25
|
-
return obj;
|
|
26
|
-
}
|
|
27
16
|
function _interop_require_default(obj) {
|
|
28
17
|
return obj && obj.__esModule ? obj : {
|
|
29
18
|
default: obj
|
|
30
19
|
};
|
|
31
20
|
}
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
21
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
22
|
+
if (typeof WeakMap !== "function") return null;
|
|
23
|
+
var cacheBabelInterop = new WeakMap();
|
|
24
|
+
var cacheNodeInterop = new WeakMap();
|
|
25
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
26
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
27
|
+
})(nodeInterop);
|
|
28
|
+
}
|
|
29
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
30
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
31
|
+
return obj;
|
|
32
|
+
}
|
|
33
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
34
|
+
return {
|
|
35
|
+
default: obj
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
39
|
+
if (cache && cache.has(obj)) {
|
|
40
|
+
return cache.get(obj);
|
|
41
|
+
}
|
|
42
|
+
var newObj = {
|
|
43
|
+
__proto__: null
|
|
44
|
+
};
|
|
45
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
|
+
for(var key in obj){
|
|
47
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
48
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
49
|
+
if (desc && (desc.get || desc.set)) {
|
|
50
|
+
Object.defineProperty(newObj, key, desc);
|
|
51
|
+
} else {
|
|
52
|
+
newObj[key] = obj[key];
|
|
53
|
+
}
|
|
40
54
|
}
|
|
41
|
-
ownKeys.forEach(function(key) {
|
|
42
|
-
_define_property(target, key, source[key]);
|
|
43
|
-
});
|
|
44
55
|
}
|
|
45
|
-
|
|
56
|
+
newObj.default = obj;
|
|
57
|
+
if (cache) {
|
|
58
|
+
cache.set(obj, newObj);
|
|
59
|
+
}
|
|
60
|
+
return newObj;
|
|
46
61
|
}
|
|
47
|
-
function App(
|
|
48
|
-
var
|
|
49
|
-
var
|
|
62
|
+
function App() {
|
|
63
|
+
var store = (0, _react.useContext)(_Store.default);
|
|
64
|
+
var appState = (0, _zustand.useStore)(store);
|
|
65
|
+
var running = appState.processes.filter(function(x) {
|
|
50
66
|
return [
|
|
51
67
|
'running'
|
|
52
68
|
].indexOf(x.state) >= 0;
|
|
53
69
|
});
|
|
54
|
-
var done =
|
|
70
|
+
var done = appState.processes.filter(function(x) {
|
|
55
71
|
return [
|
|
56
72
|
'error',
|
|
57
73
|
'success'
|
|
@@ -60,9 +76,10 @@ function App(param) {
|
|
|
60
76
|
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
61
77
|
flexDirection: "column"
|
|
62
78
|
}, running.map(function(item) {
|
|
63
|
-
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default,
|
|
64
|
-
key: item.id
|
|
65
|
-
|
|
79
|
+
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default, {
|
|
80
|
+
key: item.id,
|
|
81
|
+
id: item.id
|
|
82
|
+
});
|
|
66
83
|
})), /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
67
84
|
flexDirection: "column",
|
|
68
85
|
borderStyle: "single",
|
|
@@ -74,9 +91,10 @@ function App(param) {
|
|
|
74
91
|
}), /*#__PURE__*/ _react.default.createElement(_ink.Box, {
|
|
75
92
|
flexDirection: "column"
|
|
76
93
|
}, done.map(function(item) {
|
|
77
|
-
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default,
|
|
78
|
-
key: item.id
|
|
79
|
-
|
|
94
|
+
return /*#__PURE__*/ _react.default.createElement(_ChildProcess.default, {
|
|
95
|
+
key: item.id,
|
|
96
|
+
id: item.id
|
|
97
|
+
});
|
|
80
98
|
})));
|
|
81
99
|
}
|
|
82
100
|
/* 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; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '../ink.mjs';\nimport type { ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/App.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useStore } from 'zustand';\nimport StoreContext from '../contexts/Store';\nimport { Box } from '../ink.mjs';\nimport type { AppState, ChildProcess as ChildProcessT } from '../types';\nimport ChildProcess from './ChildProcess';\n\nexport default function App() {\n const store = useContext(StoreContext);\n const appState = useStore(store) as AppState;\n const running = appState.processes.filter((x) => ['running'].indexOf(x.state) >= 0);\n const done = appState.processes.filter((x) => ['error', 'success'].indexOf(x.state) >= 0);\n\n return (\n <>\n <Box flexDirection=\"column\">\n {running.map((item: ChildProcessT) => (\n <ChildProcess key={item.id} id={item.id} />\n ))}\n </Box>\n <Box flexDirection=\"column\" borderStyle=\"single\" borderColor=\"black\" borderBottom={true} borderTop={false} borderLeft={false} borderRight={false} />\n <Box flexDirection=\"column\">\n {done.map((item: ChildProcessT) => (\n <ChildProcess key={item.id} id={item.id} />\n ))}\n </Box>\n </>\n );\n}\n"],"names":["App","store","useContext","StoreContext","appState","useStore","running","processes","filter","x","indexOf","state","done","Box","flexDirection","map","item","ChildProcess","key","id","borderStyle","borderColor","borderBottom","borderTop","borderLeft","borderRight"],"mappings":";;;;+BAOA;;;eAAwBA;;;6DAPU;uBACT;4DACA;mBACL;mEAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEV,SAASA;IACtB,IAAMC,QAAQC,IAAAA,iBAAU,EAACC,cAAY;IACrC,IAAMC,WAAWC,IAAAA,iBAAQ,EAACJ;IAC1B,IAAMK,UAAUF,SAASG,SAAS,CAACC,MAAM,CAAC,SAACC;eAAM;YAAC;SAAU,CAACC,OAAO,CAACD,EAAEE,KAAK,KAAK;;IACjF,IAAMC,OAAOR,SAASG,SAAS,CAACC,MAAM,CAAC,SAACC;eAAM;YAAC;YAAS;SAAU,CAACC,OAAO,CAACD,EAAEE,KAAK,KAAK;;IAEvF,qBACE,0EACE,6BAACE,QAAG;QAACC,eAAc;OAChBR,QAAQS,GAAG,CAAC,SAACC;6BACZ,6BAACC,qBAAY;YAACC,KAAKF,KAAKG,EAAE;YAAEA,IAAIH,KAAKG,EAAE;;uBAG3C,6BAACN,QAAG;QAACC,eAAc;QAASM,aAAY;QAASC,aAAY;QAAQC,cAAc;QAAMC,WAAW;QAAOC,YAAY;QAAOC,aAAa;sBAC3I,6BAACZ,QAAG;QAACC,eAAc;OAChBF,KAAKG,GAAG,CAAC,SAACC;6BACT,6BAACC,qBAAY;YAACC,KAAKF,KAAKG,EAAE;YAAEA,IAAIH,KAAKG,EAAE;;;AAKjD"}
|
|
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return ChildProcess;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _react = /*#__PURE__*/
|
|
11
|
+
var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
|
+
var _zustand = require("zustand");
|
|
13
|
+
var _Store = /*#__PURE__*/ _interop_require_default(require("../contexts/Store.cjs"));
|
|
12
14
|
var _ink = require("../ink.cjs");
|
|
13
15
|
var _figures = /*#__PURE__*/ _interop_require_default(require("../lib/figures.cjs"));
|
|
14
16
|
var _Spinner = /*#__PURE__*/ _interop_require_default(require("./Spinner.cjs"));
|
|
@@ -18,6 +20,47 @@ function _interop_require_default(obj) {
|
|
|
18
20
|
default: obj
|
|
19
21
|
};
|
|
20
22
|
}
|
|
23
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
24
|
+
if (typeof WeakMap !== "function") return null;
|
|
25
|
+
var cacheBabelInterop = new WeakMap();
|
|
26
|
+
var cacheNodeInterop = new WeakMap();
|
|
27
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
28
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
29
|
+
})(nodeInterop);
|
|
30
|
+
}
|
|
31
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
32
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
36
|
+
return {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
41
|
+
if (cache && cache.has(obj)) {
|
|
42
|
+
return cache.get(obj);
|
|
43
|
+
}
|
|
44
|
+
var newObj = {
|
|
45
|
+
__proto__: null
|
|
46
|
+
};
|
|
47
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
|
+
for(var key in obj){
|
|
49
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
50
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
51
|
+
if (desc && (desc.get || desc.set)) {
|
|
52
|
+
Object.defineProperty(newObj, key, desc);
|
|
53
|
+
} else {
|
|
54
|
+
newObj[key] = obj[key];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
newObj.default = obj;
|
|
59
|
+
if (cache) {
|
|
60
|
+
cache.set(obj, newObj);
|
|
61
|
+
}
|
|
62
|
+
return newObj;
|
|
63
|
+
}
|
|
21
64
|
// From: https://github.com/sindresorhus/cli-spinners/blob/00de8fbeee16fa49502fa4f687449f70f2c8ca2c/spinners.json#L2
|
|
22
65
|
var spinner = {
|
|
23
66
|
interval: 80,
|
|
@@ -52,7 +95,13 @@ var POINTERS = {
|
|
|
52
95
|
}, _figures.default.pointer)
|
|
53
96
|
};
|
|
54
97
|
function ChildProcess(param) {
|
|
55
|
-
var
|
|
98
|
+
var id = param.id;
|
|
99
|
+
var store = (0, _react.useContext)(_Store.default);
|
|
100
|
+
var appState = (0, _zustand.useStore)(store);
|
|
101
|
+
var item = appState.processes.find(function(x) {
|
|
102
|
+
return x.id === id;
|
|
103
|
+
});
|
|
104
|
+
var title = item.title, state = item.state, lines = item.lines, isExpanded = item.isExpanded;
|
|
56
105
|
var icon = isExpanded ? POINTERS[state] || POINTERS.default : ICONS[state];
|
|
57
106
|
var output = state === 'running' && lines.length ? lines[lines.length - 1] : undefined;
|
|
58
107
|
var errors = state !== 'running' ? lines.filter(function(line) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/components/ChildProcess.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '../ink.mjs';\nimport figures from '../lib/figures';\nimport Spinner from './Spinner';\n\nimport type {
|
|
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\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 { title, state, lines, isExpanded } = item;\n\n const icon = isExpanded ? POINTERS[state] || POINTERS.default : ICONS[state];\n const output = state === 'running' && lines.length ? lines[lines.length - 1] : undefined;\n const errors = state !== 'running' ? lines.filter((line) => line.type === LineType.stderr) : [];\n\n return (\n <Box flexDirection=\"column\">\n <Box>\n <Box marginRight={1}>\n <Text>{icon}</Text>\n </Box>\n <Text>{title}</Text>\n </Box>\n {output ? (\n <Box marginLeft={2}>\n <Text color=\"gray\">{`${figures.arrowRight} ${output.text}`}</Text>\n </Box>\n ) : undefined}\n {errors.length > 0 && (\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>{line.text}</Text>\n </Box>\n ))}\n </Box>\n )}\n </Box>\n );\n}\n"],"names":["ChildProcess","spinner","interval","frames","ICONS","error","Text","color","figures","cross","success","tick","running","Spinner","POINTERS","pointer","default","id","store","useContext","StoreContext","appState","useStore","item","processes","find","x","title","state","lines","isExpanded","icon","output","length","undefined","errors","filter","line","type","LineType","stderr","Box","flexDirection","marginRight","marginLeft","arrowRight","text","map","index","key","height"],"mappings":";;;;+BA+BA;;;eAAwBA;;;6DA/BU;uBACT;4DACA;mBACC;8DACN;8DACA;qBAGK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,oHAAoH;AACpH,IAAMC,UAAU;IACdC,UAAU;IACVC,QAAQ;QAAC;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;KAAI;AAC5D;AAEA,IAAMC,QAAQ;IACZC,qBAAO,6BAACC,SAAI;QAACC,OAAM;OAAOC,gBAAO,CAACC,KAAK;IACvCC,uBAAS,6BAACJ,SAAI;QAACC,OAAM;OAASC,gBAAO,CAACG,IAAI;IAC1CC,uBAAS,6BAACC,gBAAO,EAAKZ;AACxB;AAEA,IAAMa,WAAW;IACfT,qBAAO,6BAACC,SAAI;QAACC,OAAM;OAAOC,gBAAO,CAACO,OAAO;IACzCC,uBAAS,6BAACV,SAAI;QAACC,OAAM;OAAUC,gBAAO,CAACO,OAAO;AAChD;AAMe,SAASf,aAAa,KAAyB;QAAzB,AAAEiB,KAAF,MAAEA;IACrC,IAAMC,QAAQC,IAAAA,iBAAU,EAACC,cAAY;IACrC,IAAMC,WAAWC,IAAAA,iBAAQ,EAACJ;IAC1B,IAAMK,OAAOF,SAASG,SAAS,CAACC,IAAI,CAAC,SAACC;eAAMA,EAAET,EAAE,KAAKA;;IACrD,IAAQU,QAAoCJ,KAApCI,OAAOC,QAA6BL,KAA7BK,OAAOC,QAAsBN,KAAtBM,OAAOC,aAAeP,KAAfO;IAE7B,IAAMC,OAAOD,aAAahB,QAAQ,CAACc,MAAM,IAAId,SAASE,OAAO,GAAGZ,KAAK,CAACwB,MAAM;IAC5E,IAAMI,SAASJ,UAAU,aAAaC,MAAMI,MAAM,GAAGJ,KAAK,CAACA,MAAMI,MAAM,GAAG,EAAE,GAAGC;IAC/E,IAAMC,SAASP,UAAU,YAAYC,MAAMO,MAAM,CAAC,SAACC;eAASA,KAAKC,IAAI,KAAKC,eAAQ,CAACC,MAAM;SAAI,EAAE;IAE/F,qBACE,6BAACC,QAAG;QAACC,eAAc;qBACjB,6BAACD,QAAG,sBACF,6BAACA,QAAG;QAACE,aAAa;qBAChB,6BAACrC,SAAI,QAAEyB,sBAET,6BAACzB,SAAI,QAAEqB,SAERK,uBACC,6BAACS,QAAG;QAACG,YAAY;qBACf,6BAACtC,SAAI;QAACC,OAAM;OAAQ,AAAC,GAAwByB,OAAtBxB,gBAAO,CAACqC,UAAU,EAAC,KAAe,OAAZb,OAAOc,IAAI,MAExDZ,WACHC,OAAOF,MAAM,GAAG,mBACf,6BAACQ,QAAG;QAACC,eAAc;QAASE,YAAY;OACrCf,MAAMkB,GAAG,CAAC,SAACV,MAAMW;eAChB,8DAA8D;sBAC9D,6BAACP,QAAG;YAACQ,KAAKD;YAAON,eAAc;YAASQ,QAAQ;yBAC9C,6BAAC5C,SAAI,QAAE+B,KAAKS,IAAI;;AAO9B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 _react = require("react");
|
|
12
|
+
var _default = /*#__PURE__*/ (0, _react.createContext)(undefined);
|
|
13
|
+
/* 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/contexts/Store.tsx"],"sourcesContent":["import { createContext } from 'react';\nexport default createContext(undefined);\n"],"names":["createContext","undefined"],"mappings":";;;;+BACA;;;eAAA;;;qBAD8B;IAC9B,yBAAeA,IAAAA,oBAAa,EAACC"}
|
package/dist/cjs/createApp.cjs
CHANGED
|
@@ -8,80 +8,94 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return createApp;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _liluuid = /*#__PURE__*/ _interop_require_default(require("lil-uuid"));
|
|
12
11
|
var _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
12
|
+
var _resolveoncecb = /*#__PURE__*/ _interop_require_default(require("resolve-once-cb"));
|
|
13
|
+
var _zustand = require("zustand");
|
|
13
14
|
var _App = /*#__PURE__*/ _interop_require_default(require("./components/App.cjs"));
|
|
15
|
+
var _Store = /*#__PURE__*/ _interop_require_default(require("./contexts/Store.cjs"));
|
|
14
16
|
var _ink = require("./ink.cjs");
|
|
15
|
-
function
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
} else {
|
|
24
|
-
obj[key] = value;
|
|
25
|
-
}
|
|
26
|
-
return obj;
|
|
17
|
+
function _array_like_to_array(arr, len) {
|
|
18
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
19
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
20
|
+
return arr2;
|
|
21
|
+
}
|
|
22
|
+
function _array_without_holes(arr) {
|
|
23
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
27
24
|
}
|
|
28
25
|
function _interop_require_default(obj) {
|
|
29
26
|
return obj && obj.__esModule ? obj : {
|
|
30
27
|
default: obj
|
|
31
28
|
};
|
|
32
29
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
39
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
ownKeys.forEach(function(key) {
|
|
43
|
-
_define_property(target, key, source[key]);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return target;
|
|
30
|
+
function _iterable_to_array(iter) {
|
|
31
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
32
|
+
}
|
|
33
|
+
function _non_iterable_spread() {
|
|
34
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
47
35
|
}
|
|
36
|
+
function _to_consumable_array(arr) {
|
|
37
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
38
|
+
}
|
|
39
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
40
|
+
if (!o) return;
|
|
41
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
42
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
46
|
+
}
|
|
47
|
+
var initialize = (0, _resolveoncecb.default)(function(cb) {
|
|
48
|
+
return setTimeout(function() {
|
|
49
|
+
return cb();
|
|
50
|
+
}, 0);
|
|
51
|
+
});
|
|
48
52
|
function createApp() {
|
|
49
53
|
var refCount = 0;
|
|
50
|
-
var
|
|
54
|
+
var store = null;
|
|
51
55
|
var inkApp = null;
|
|
56
|
+
var _waiting = [];
|
|
52
57
|
return {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
retain: function retain(fn) {
|
|
59
|
+
initialize(function() {
|
|
60
|
+
if (++refCount > 1) return fn(store);
|
|
61
|
+
if (store) throw new Error('Not expecting store');
|
|
62
|
+
store = (0, _zustand.createStore)()(function(set) {
|
|
63
|
+
return {
|
|
64
|
+
processes: [],
|
|
65
|
+
addProcess: function(process1) {
|
|
66
|
+
return set(function(state) {
|
|
67
|
+
return {
|
|
68
|
+
processes: _to_consumable_array(state.processes).concat([
|
|
69
|
+
process1
|
|
70
|
+
])
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
updateProcess: function(process1) {
|
|
75
|
+
return set(function(state) {
|
|
76
|
+
return {
|
|
77
|
+
processes: state.processes.map(function(x) {
|
|
78
|
+
return x.id === process1.id ? process1 : x;
|
|
79
|
+
})
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
inkApp = (0, _ink.render)(/*#__PURE__*/ _react.default.createElement(_Store.default.Provider, {
|
|
86
|
+
value: store
|
|
87
|
+
}, /*#__PURE__*/ _react.default.createElement(_App.default, null)), {
|
|
88
|
+
patchConsole: false
|
|
89
|
+
});
|
|
90
|
+
return fn(store);
|
|
77
91
|
});
|
|
78
92
|
},
|
|
79
93
|
release: function release() {
|
|
80
94
|
if (--refCount > 0) return;
|
|
81
|
-
if (!
|
|
95
|
+
if (!store) throw new Error('Expecting store');
|
|
96
|
+
store = null;
|
|
82
97
|
inkApp.unmount();
|
|
83
98
|
inkApp = null;
|
|
84
|
-
list = null;
|
|
85
99
|
process.stdout.write('\x1b[?25h'); // show cursor
|
|
86
100
|
}
|
|
87
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/createApp.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/createApp.tsx"],"sourcesContent":["import React from 'react';\nimport resolveOnce from 'resolve-once-cb';\nimport { createStore } from 'zustand';\nimport App from './components/App';\nimport StoreContext from './contexts/Store';\n\n// @ts-ignore\nimport { type Instance, render } from './ink.mjs';\nimport type { AppState } from './types';\n\nconst initialize = resolveOnce((cb) => setTimeout(() => cb(), 0));\n\nexport default function createApp() {\n let refCount = 0;\n let store = null;\n let inkApp: Instance | null = null;\n const _waiting = [];\n\n return {\n retain(fn) {\n initialize(() => {\n if (++refCount > 1) return fn(store);\n if (store) throw new Error('Not expecting store');\n store = createStore<AppState>()((set) => ({\n processes: [],\n addProcess: (process) => set((state) => ({ processes: [...state.processes, process] })),\n updateProcess: (process) => set((state) => ({ processes: state.processes.map((x) => (x.id === process.id ? process : x)) })),\n }));\n inkApp = render(\n <StoreContext.Provider value={store}>\n <App />\n </StoreContext.Provider>,\n { patchConsole: false }\n );\n return fn(store);\n });\n },\n release() {\n if (--refCount > 0) return;\n if (!store) throw new Error('Expecting store');\n store = null;\n inkApp.unmount();\n inkApp = null;\n process.stdout.write('\\x1b[?25h'); // show cursor\n },\n };\n}\n"],"names":["createApp","initialize","resolveOnce","cb","setTimeout","refCount","store","inkApp","_waiting","retain","fn","Error","createStore","set","processes","addProcess","process","state","updateProcess","map","x","id","render","StoreContext","Provider","value","App","patchConsole","release","unmount","stdout","write"],"mappings":";;;;+BAYA;;;eAAwBA;;;4DAZN;oEACM;uBACI;0DACZ;4DACS;mBAGa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtC,IAAMC,aAAaC,IAAAA,sBAAW,EAAC,SAACC;WAAOC,WAAW;eAAMD;OAAM;;AAE/C,SAASH;IACtB,IAAIK,WAAW;IACf,IAAIC,QAAQ;IACZ,IAAIC,SAA0B;IAC9B,IAAMC,WAAW,EAAE;IAEnB,OAAO;QACLC,QAAAA,SAAAA,OAAOC,EAAE;YACPT,WAAW;gBACT,IAAI,EAAEI,WAAW,GAAG,OAAOK,GAAGJ;gBAC9B,IAAIA,OAAO,MAAM,IAAIK,MAAM;gBAC3BL,QAAQM,IAAAA,oBAAW,IAAa,SAACC;2BAAS;wBACxCC,WAAW,EAAE;wBACbC,YAAY,SAACC;mCAAYH,IAAI,SAACI;uCAAW;oCAAEH,WAAW,AAAC,qBAAGG,MAAMH,SAAS,SAAnB;wCAAqBE;qCAAQ;gCAAC;;;wBACpFE,eAAe,SAACF;mCAAYH,IAAI,SAACI;uCAAW;oCAAEH,WAAWG,MAAMH,SAAS,CAACK,GAAG,CAAC,SAACC;+CAAOA,EAAEC,EAAE,KAAKL,SAAQK,EAAE,GAAGL,WAAUI;;gCAAI;;;oBAC3H;;gBACAb,SAASe,IAAAA,WAAM,gBACb,6BAACC,cAAY,CAACC,QAAQ;oBAACC,OAAOnB;iCAC5B,6BAACoB,YAAG,UAEN;oBAAEC,cAAc;gBAAM;gBAExB,OAAOjB,GAAGJ;YACZ;QACF;QACAsB,SAAAA,SAAAA;YACE,IAAI,EAAEvB,WAAW,GAAG;YACpB,IAAI,CAACC,OAAO,MAAM,IAAIK,MAAM;YAC5BL,QAAQ;YACRC,OAAOsB,OAAO;YACdtB,SAAS;YACTS,QAAQc,MAAM,CAACC,KAAK,CAAC,cAAc,cAAc;QACnD;IACF;AACF"}
|
|
@@ -10,21 +10,21 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _readablestream = require("readable-stream");
|
|
12
12
|
var regEx = /\r\n|[\n\v\f\r\x85\u2028\u2029]/g;
|
|
13
|
-
function addLines(
|
|
13
|
+
function addLines(fn) {
|
|
14
14
|
var last = '';
|
|
15
15
|
var stream = new _readablestream.Writable({
|
|
16
16
|
write: function write(chunk, _enc, callback) {
|
|
17
17
|
var more = last + chunk.toString('utf8');
|
|
18
18
|
var lines = more.split(regEx);
|
|
19
19
|
last = lines.pop();
|
|
20
|
-
lines.
|
|
21
|
-
return addLine(line);
|
|
22
|
-
});
|
|
20
|
+
if (lines.length) fn(lines);
|
|
23
21
|
callback();
|
|
24
22
|
}
|
|
25
23
|
});
|
|
26
24
|
stream.on('finish', function() {
|
|
27
|
-
if (last.length)
|
|
25
|
+
if (last.length) fn([
|
|
26
|
+
last
|
|
27
|
+
]);
|
|
28
28
|
last = '';
|
|
29
29
|
});
|
|
30
30
|
return stream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/lib/addLines.ts"],"sourcesContent":["import { Writable } from 'readable-stream';\n\nconst regEx = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\n\nexport default function addLines(
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/lib/addLines.ts"],"sourcesContent":["import { Writable } from 'readable-stream';\n\nconst regEx = /\\r\\n|[\\n\\v\\f\\r\\x85\\u2028\\u2029]/g;\n\nexport default function addLines(fn) {\n let last = '';\n\n const stream = new Writable({\n write(chunk, _enc, callback) {\n const more = last + chunk.toString('utf8');\n const lines = more.split(regEx);\n last = lines.pop();\n if (lines.length) fn(lines);\n callback();\n },\n });\n stream.on('finish', () => {\n if (last.length) fn([last]);\n last = '';\n });\n return stream;\n}\n"],"names":["addLines","regEx","fn","last","stream","Writable","write","chunk","_enc","callback","more","toString","lines","split","pop","length","on"],"mappings":";;;;+BAIA;;;eAAwBA;;;8BAJC;AAEzB,IAAMC,QAAQ;AAEC,SAASD,SAASE,EAAE;IACjC,IAAIC,OAAO;IAEX,IAAMC,SAAS,IAAIC,wBAAQ,CAAC;QAC1BC,OAAAA,SAAAA,MAAMC,KAAK,EAAEC,IAAI,EAAEC,QAAQ;YACzB,IAAMC,OAAOP,OAAOI,MAAMI,QAAQ,CAAC;YACnC,IAAMC,QAAQF,KAAKG,KAAK,CAACZ;YACzBE,OAAOS,MAAME,GAAG;YAChB,IAAIF,MAAMG,MAAM,EAAEb,GAAGU;YACrBH;QACF;IACF;IACAL,OAAOY,EAAE,CAAC,UAAU;QAClB,IAAIb,KAAKY,MAAM,EAAEb,GAAG;YAACC;SAAK;QAC1BA,OAAO;IACT;IACA,OAAOC;AACT"}
|
package/dist/cjs/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/types.ts"],"sourcesContent":["// @ts-ignore\nexport type { SpawnOptions, SpawnCallback, SpawnResult } from 'cross-spawn-cb';\n\nexport type TerminalOptions = {\n group?: string;\n};\n\nexport enum LineType {\n stdout = 1,\n stderr = 2,\n}\nexport type Line = {\n type: LineType;\n text: string;\n};\n\nexport type State = 'running' | 'error' | 'success';\nexport type ChildProcess = {\n id: string;\n title: string;\n state: State;\n lines: Line[];\n};\n"],"names":["LineType"],"mappings":"AAAA,aAAa;;;;;+BAODA;;;eAAAA;;;AAAL,IAAA,AAAKA,kCAAAA;;;WAAAA"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/types.ts"],"sourcesContent":["// @ts-ignore\nexport type { SpawnOptions, SpawnCallback, SpawnResult } from 'cross-spawn-cb';\n\nexport type TerminalOptions = {\n group?: string;\n};\n\nexport enum LineType {\n stdout = 1,\n stderr = 2,\n}\nexport type Line = {\n type: LineType;\n text: string;\n};\n\nexport type State = 'running' | 'error' | 'success';\nexport type ChildProcess = {\n id: string;\n title: string;\n state: State;\n lines: Line[];\n isExpanded: boolean;\n};\n\nexport interface AppState {\n processes: ChildProcess[];\n addProcess: (process: ChildProcess) => void;\n updateProcess: (process: ChildProcess) => void;\n}\n"],"names":["LineType"],"mappings":"AAAA,aAAa;;;;;+BAODA;;;eAAAA;;;AAAL,IAAA,AAAKA,kCAAAA;;;WAAAA"}
|