@xyo-network/node 2.33.0-rc.1 → 2.33.0-rc.11
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/XyoNode.d.ts +2 -2
- package/dist/cjs/XyoNode.d.ts.map +1 -1
- package/dist/cjs/XyoNode.js +2 -0
- package/dist/cjs/XyoNode.js.map +1 -1
- package/dist/cjs/cli/terminal.d.ts +1 -1
- package/dist/cjs/cli/terminal.d.ts.map +1 -1
- package/dist/cjs/cli/terminal.js +92 -18
- package/dist/cjs/cli/terminal.js.map +1 -1
- package/dist/cjs/cli/xyo_logo_full_white.png +0 -0
- package/dist/docs.json +571 -519
- package/dist/esm/XyoNode.d.ts +2 -2
- package/dist/esm/XyoNode.d.ts.map +1 -1
- package/dist/esm/XyoNode.js +2 -0
- package/dist/esm/XyoNode.js.map +1 -1
- package/dist/esm/cli/terminal.d.ts +1 -1
- package/dist/esm/cli/terminal.d.ts.map +1 -1
- package/dist/esm/cli/terminal.js +91 -17
- package/dist/esm/cli/terminal.js.map +1 -1
- package/dist/esm/cli/xyo_logo_full_white.png +0 -0
- package/package.json +6 -6
- package/src/XyoNode.ts +3 -1
- package/src/cli/terminal.ts +97 -21
- package/src/cli/xyo_logo_full_white.png +0 -0
- package/xyo-config.js +4 -0
- package/dist/cjs/cli/xyo_logo_black.png +0 -0
- package/dist/esm/cli/xyo_logo_black.png +0 -0
- package/src/cli/xyo_logo_black.png +0 -0
package/dist/esm/XyoNode.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { XyoModule, XyoModuleConfig } from '@xyo-network/module';
|
|
|
3
3
|
import { XyoPayload } from '@xyo-network/payload';
|
|
4
4
|
import { NodeModule } from './Node';
|
|
5
5
|
import { XyoNodeQuery } from './Queries';
|
|
6
|
-
export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModuleConfig, TQuery extends XyoNodeQuery = XyoNodeQuery, TQueryResult extends XyoPayload = XyoPayload, TModule extends XyoModule = XyoModule> extends XyoModule<
|
|
6
|
+
export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModuleConfig, TQuery extends XyoNodeQuery = XyoNodeQuery, TQueryResult extends XyoPayload = XyoPayload, TModule extends XyoModule = XyoModule> extends XyoModule<TQuery, TQueryResult, TConfig> implements NodeModule<TQuery, TQueryResult> {
|
|
7
7
|
/** Query Functions - Start */
|
|
8
8
|
abstract attach(_address: string): void;
|
|
9
9
|
abstract detatch(_address: string): void;
|
|
@@ -13,7 +13,7 @@ export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModul
|
|
|
13
13
|
availableModules(): XyoModule[];
|
|
14
14
|
attachedModules(): XyoModule[];
|
|
15
15
|
/** Query Functions - End */
|
|
16
|
-
query(query: TQuery): import("@xyo-network/promise").PromiseEx<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>, XyoAccount>;
|
|
16
|
+
query(query: TQuery): Promise<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>> | import("@xyo-network/promise").PromiseEx<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>, XyoAccount>;
|
|
17
17
|
register(_module: TModule): void;
|
|
18
18
|
abstract get(_address: string): TModule | undefined;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgH,YAAY,EAAE,MAAM,WAAW,CAAA;AAEtJ,8BAAsB,OAAO,CACzB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CAEvC,SAAQ,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgH,YAAY,EAAE,MAAM,WAAW,CAAA;AAEtJ,8BAAsB,OAAO,CACzB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CAEvC,SAAQ,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAC/C,YAAW,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;IAE3C,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACxC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAEpD,UAAU,IAAI,MAAM,EAAE;IAGtB,QAAQ,IAAI,MAAM,EAAE;IAIpB,gBAAgB,IAAI,SAAS,EAAE;IAG/B,eAAe,IAAI,SAAS,EAAE;IAG9B,4BAA4B;IAE5B,KAAK,CAAC,KAAK,EAAE,MAAM;IA0BnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACpD"}
|
package/dist/esm/XyoNode.js
CHANGED
package/dist/esm/XyoNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAA;AAIhE,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,yBAAyB,EAAgB,MAAM,WAAW,CAAA;AAEtJ,MAAM,OAAgB,OAMpB,SAAQ,SAAwC;IAQhD,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,4BAA4B;IAE5B,KAAK,CAAC,KAAa;QACjB,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,wBAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,yBAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,0BAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,2BAA2B,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,MAAK;aACN;
|
|
1
|
+
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAA;AAIhE,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,yBAAyB,EAAgB,MAAM,WAAW,CAAA;AAEtJ,MAAM,OAAgB,OAMpB,SAAQ,SAAwC;IAQhD,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,4BAA4B;IAE5B,KAAK,CAAC,KAAa;QACjB,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,wBAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,yBAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,0BAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,2BAA2B,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,MAAK;aACN;YACD;gBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC5B;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAClD,CAAC;IAED,QAAQ,CAAC,OAAgB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CAGF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const startTerminal: () => Promise<
|
|
1
|
+
export declare const startTerminal: () => Promise<void>;
|
|
2
2
|
//# sourceMappingURL=terminal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAwGA,eAAO,MAAM,aAAa,qBAOzB,CAAA"}
|
package/dist/esm/cli/terminal.js
CHANGED
|
@@ -1,32 +1,106 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
1
2
|
import path from 'path';
|
|
2
3
|
import { terminal } from 'terminal-kit';
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
function terminate() {
|
|
5
|
+
terminal.grabInput(false);
|
|
6
|
+
terminal.clear();
|
|
7
|
+
terminal.green('\n\nXYO Node Shutdown - Bye\n\n');
|
|
8
|
+
setTimeout(function () {
|
|
9
|
+
process.exit();
|
|
10
|
+
}, 100);
|
|
11
|
+
}
|
|
12
|
+
const readFileDeep = (names) => {
|
|
13
|
+
let depth = 0;
|
|
14
|
+
let result;
|
|
15
|
+
let filename;
|
|
16
|
+
let resolvedPath;
|
|
17
|
+
while (depth < 10 && result === undefined) {
|
|
18
|
+
names.forEach((name) => {
|
|
19
|
+
if (result === undefined) {
|
|
20
|
+
filename = name;
|
|
21
|
+
for (let i = 0; i < depth; i++) {
|
|
22
|
+
filename = `../${filename}`;
|
|
23
|
+
}
|
|
24
|
+
resolvedPath = path.resolve(filename);
|
|
25
|
+
try {
|
|
26
|
+
result = readFileSync(resolvedPath, { encoding: 'utf8' });
|
|
27
|
+
}
|
|
28
|
+
catch (ex) {
|
|
29
|
+
const error = ex;
|
|
30
|
+
if (error.code !== 'ENOENT') {
|
|
31
|
+
terminal.red(`${JSON.stringify(error)}\n`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
depth++;
|
|
37
|
+
}
|
|
38
|
+
return [result, resolvedPath];
|
|
39
|
+
};
|
|
5
40
|
const getCommand = () => {
|
|
6
|
-
return new Promise((resolve
|
|
7
|
-
terminal.
|
|
8
|
-
|
|
41
|
+
return new Promise((resolve) => {
|
|
42
|
+
terminal.once('key', (name) => {
|
|
43
|
+
if (name === 'ESCAPE') {
|
|
44
|
+
resolve(true);
|
|
45
|
+
}
|
|
46
|
+
if (name === 'CTRL_C') {
|
|
47
|
+
resolve(false);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const items = [
|
|
51
|
+
'Register Plugin',
|
|
52
|
+
'Unregister Plugin',
|
|
53
|
+
'List Registered Plugins',
|
|
54
|
+
'Attach Plugin',
|
|
55
|
+
'Detatch Plugin',
|
|
56
|
+
'List Attached Plugins',
|
|
57
|
+
'Show Config',
|
|
58
|
+
'Status',
|
|
59
|
+
'Exit',
|
|
60
|
+
].map((item, index) => {
|
|
61
|
+
return {
|
|
62
|
+
slug: item.toLowerCase().replaceAll(' ', '-'),
|
|
63
|
+
text: `${index + 1}. ${item}`,
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
//terminal.clear()
|
|
67
|
+
terminal.green('\nXYO Node Running\n');
|
|
68
|
+
terminal.singleColumnMenu(items.map((item) => item.text), async (error, response) => {
|
|
9
69
|
if (error) {
|
|
10
|
-
|
|
70
|
+
terminal.red(`Error: ${error}`);
|
|
11
71
|
}
|
|
12
|
-
|
|
13
|
-
|
|
72
|
+
switch (items[response.selectedIndex].slug) {
|
|
73
|
+
case 'exit':
|
|
74
|
+
resolve(false);
|
|
75
|
+
break;
|
|
76
|
+
case 'register-plugin':
|
|
77
|
+
terminal.yellow('Register Plugin');
|
|
78
|
+
break;
|
|
79
|
+
case 'show-config': {
|
|
80
|
+
const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js']);
|
|
81
|
+
let configObj;
|
|
82
|
+
terminal.yellow(`\nConfig found at: ${path}\n`);
|
|
83
|
+
if (config) {
|
|
84
|
+
if (path?.endsWith('.json')) {
|
|
85
|
+
configObj = JSON.parse(config);
|
|
86
|
+
}
|
|
87
|
+
else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
|
|
88
|
+
configObj = (await import(path));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
terminal(JSON.stringify(configObj ?? {}));
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
14
94
|
}
|
|
95
|
+
resolve(true);
|
|
15
96
|
});
|
|
16
97
|
});
|
|
17
98
|
};
|
|
18
99
|
export const startTerminal = async () => {
|
|
19
|
-
const imagePath = path.resolve(__dirname, xyo_logo_black);
|
|
20
|
-
await terminal.drawImage(imagePath);
|
|
21
|
-
terminal.green('XYO Node Started\n\n');
|
|
22
|
-
terminal.green("Type 'exit' to exit\n\n");
|
|
23
100
|
let running = true;
|
|
24
101
|
while (running) {
|
|
25
|
-
|
|
26
|
-
if (command === 'exit') {
|
|
27
|
-
running = false;
|
|
28
|
-
}
|
|
102
|
+
running = await getCommand();
|
|
29
103
|
}
|
|
30
|
-
|
|
104
|
+
terminate();
|
|
31
105
|
};
|
|
32
106
|
//# sourceMappingURL=terminal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.7",
|
|
14
14
|
"@xylabs/forget": "^2.6.7",
|
|
15
|
-
"@xyo-network/account": "^2.33.0-rc.
|
|
16
|
-
"@xyo-network/archivist": "^2.33.0-rc.
|
|
17
|
-
"@xyo-network/module": "^2.33.0-rc.
|
|
18
|
-
"@xyo-network/payload": "^2.33.0-rc.
|
|
19
|
-
"@xyo-network/promise": "^2.33.0-rc.
|
|
15
|
+
"@xyo-network/account": "^2.33.0-rc.11",
|
|
16
|
+
"@xyo-network/archivist": "^2.33.0-rc.11",
|
|
17
|
+
"@xyo-network/module": "^2.33.0-rc.11",
|
|
18
|
+
"@xyo-network/payload": "^2.33.0-rc.11",
|
|
19
|
+
"@xyo-network/promise": "^2.33.0-rc.11",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
21
|
"terminal-kit": "^2.11.4",
|
|
22
22
|
"tslib": "^2.4.0",
|
|
@@ -67,6 +67,6 @@
|
|
|
67
67
|
"xyo-ts": "ts-node src/cli/index.ts"
|
|
68
68
|
},
|
|
69
69
|
"types": "dist/esm/index.d.ts",
|
|
70
|
-
"version": "2.33.0-rc.
|
|
70
|
+
"version": "2.33.0-rc.11",
|
|
71
71
|
"stableVersion": "2.32.1"
|
|
72
72
|
}
|
package/src/XyoNode.ts
CHANGED
|
@@ -11,7 +11,7 @@ export abstract class XyoNode<
|
|
|
11
11
|
TQueryResult extends XyoPayload = XyoPayload,
|
|
12
12
|
TModule extends XyoModule = XyoModule,
|
|
13
13
|
>
|
|
14
|
-
extends XyoModule<
|
|
14
|
+
extends XyoModule<TQuery, TQueryResult, TConfig>
|
|
15
15
|
implements NodeModule<TQuery, TQueryResult>
|
|
16
16
|
{
|
|
17
17
|
/** Query Functions - Start */
|
|
@@ -54,6 +54,8 @@ export abstract class XyoNode<
|
|
|
54
54
|
this.registered()
|
|
55
55
|
break
|
|
56
56
|
}
|
|
57
|
+
default:
|
|
58
|
+
return super.query(query)
|
|
57
59
|
}
|
|
58
60
|
return this.bindPayloads(payloads, queryAccount)
|
|
59
61
|
}
|
package/src/cli/terminal.ts
CHANGED
|
@@ -1,36 +1,112 @@
|
|
|
1
|
+
import { XyoModuleConfig } from '@xyo-network/module'
|
|
2
|
+
import { readFileSync } from 'fs'
|
|
1
3
|
import path from 'path'
|
|
2
4
|
import { terminal } from 'terminal-kit'
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
function terminate() {
|
|
7
|
+
terminal.grabInput(false)
|
|
8
|
+
terminal.clear()
|
|
9
|
+
terminal.green('\n\nXYO Node Shutdown - Bye\n\n')
|
|
10
|
+
setTimeout(function () {
|
|
11
|
+
process.exit()
|
|
12
|
+
}, 100)
|
|
13
|
+
}
|
|
5
14
|
|
|
6
|
-
const
|
|
15
|
+
const readFileDeep = (names: string[]) => {
|
|
16
|
+
let depth = 0
|
|
17
|
+
let result: string | undefined
|
|
18
|
+
let filename
|
|
19
|
+
let resolvedPath
|
|
20
|
+
while (depth < 10 && result === undefined) {
|
|
21
|
+
names.forEach((name) => {
|
|
22
|
+
if (result === undefined) {
|
|
23
|
+
filename = name
|
|
24
|
+
for (let i = 0; i < depth; i++) {
|
|
25
|
+
filename = `../${filename}`
|
|
26
|
+
}
|
|
27
|
+
resolvedPath = path.resolve(filename)
|
|
28
|
+
try {
|
|
29
|
+
result = readFileSync(resolvedPath, { encoding: 'utf8' })
|
|
30
|
+
} catch (ex) {
|
|
31
|
+
const error = ex as NodeJS.ErrnoException
|
|
32
|
+
if (error.code !== 'ENOENT') {
|
|
33
|
+
terminal.red(`${JSON.stringify(error)}\n`)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
depth++
|
|
39
|
+
}
|
|
40
|
+
return [result, resolvedPath]
|
|
41
|
+
}
|
|
7
42
|
|
|
8
|
-
const getCommand = (): Promise<
|
|
9
|
-
return new Promise((resolve
|
|
10
|
-
terminal.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
resolve(
|
|
43
|
+
const getCommand = (): Promise<boolean> => {
|
|
44
|
+
return new Promise((resolve) => {
|
|
45
|
+
terminal.once('key', (name: string) => {
|
|
46
|
+
if (name === 'ESCAPE') {
|
|
47
|
+
resolve(true)
|
|
48
|
+
}
|
|
49
|
+
if (name === 'CTRL_C') {
|
|
50
|
+
resolve(false)
|
|
16
51
|
}
|
|
17
52
|
})
|
|
53
|
+
const items = [
|
|
54
|
+
'Register Plugin',
|
|
55
|
+
'Unregister Plugin',
|
|
56
|
+
'List Registered Plugins',
|
|
57
|
+
'Attach Plugin',
|
|
58
|
+
'Detatch Plugin',
|
|
59
|
+
'List Attached Plugins',
|
|
60
|
+
'Show Config',
|
|
61
|
+
'Status',
|
|
62
|
+
'Exit',
|
|
63
|
+
].map((item, index) => {
|
|
64
|
+
return {
|
|
65
|
+
slug: item.toLowerCase().replaceAll(' ', '-'),
|
|
66
|
+
text: `${index + 1}. ${item}`,
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
//terminal.clear()
|
|
70
|
+
terminal.green('\nXYO Node Running\n')
|
|
71
|
+
terminal.singleColumnMenu(
|
|
72
|
+
items.map((item) => item.text),
|
|
73
|
+
async (error, response) => {
|
|
74
|
+
if (error) {
|
|
75
|
+
terminal.red(`Error: ${error}`)
|
|
76
|
+
}
|
|
77
|
+
switch (items[response.selectedIndex].slug) {
|
|
78
|
+
case 'exit':
|
|
79
|
+
resolve(false)
|
|
80
|
+
break
|
|
81
|
+
case 'register-plugin':
|
|
82
|
+
terminal.yellow('Register Plugin')
|
|
83
|
+
break
|
|
84
|
+
case 'show-config': {
|
|
85
|
+
const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js'])
|
|
86
|
+
let configObj: XyoModuleConfig | undefined
|
|
87
|
+
terminal.yellow(`\nConfig found at: ${path}\n`)
|
|
88
|
+
if (config) {
|
|
89
|
+
if (path?.endsWith('.json')) {
|
|
90
|
+
configObj = JSON.parse(config) as XyoModuleConfig
|
|
91
|
+
} else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
|
|
92
|
+
configObj = (await import(path)) as XyoModuleConfig
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
terminal(JSON.stringify(configObj ?? {}))
|
|
96
|
+
break
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
resolve(true)
|
|
100
|
+
},
|
|
101
|
+
)
|
|
18
102
|
})
|
|
19
103
|
}
|
|
20
104
|
|
|
21
105
|
export const startTerminal = async () => {
|
|
22
|
-
const imagePath = path.resolve(__dirname, xyo_logo_black)
|
|
23
|
-
await terminal.drawImage(imagePath)
|
|
24
|
-
terminal.green('XYO Node Started\n\n')
|
|
25
|
-
terminal.green("Type 'exit' to exit\n\n")
|
|
26
|
-
|
|
27
106
|
let running = true
|
|
28
|
-
|
|
29
107
|
while (running) {
|
|
30
|
-
|
|
31
|
-
if (command === 'exit') {
|
|
32
|
-
running = false
|
|
33
|
-
}
|
|
108
|
+
running = await getCommand()
|
|
34
109
|
}
|
|
35
|
-
|
|
110
|
+
|
|
111
|
+
terminate()
|
|
36
112
|
}
|
|
Binary file
|
package/xyo-config.js
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|