aboutsummaryrefslogtreecommitdiffstats
path: root/lib/strfry.ts
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-10-04 09:29:21 -0700
committerAdam Soltys <[email protected]>2024-10-10 12:17:05 -0700
commit372c635714f6e7de8a0da135980697b49f207f2c (patch)
tree5c5af794a4ca18b0919cc363f65fd398bc051b8b /lib/strfry.ts
parent5127adbb54b7db6eccf27cc4e498d9dfcdb7a7a4 (diff)
downloadcoinos-server-372c635714f6e7de8a0da135980697b49f207f2c.tar.gz
coinos-server-372c635714f6e7de8a0da135980697b49f207f2c.zip
wip socket communication
Diffstat (limited to 'lib/strfry.ts')
-rw-r--r--lib/strfry.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/strfry.ts b/lib/strfry.ts
new file mode 100644
index 00000000..ebc14ed3
--- /dev/null
+++ b/lib/strfry.ts
@@ -0,0 +1,30 @@
+import { connect } from "net";
+
+export default (cmd) =>
+ new Promise((r, j) => {
+ let results = [];
+ let c = `/app/strfry ${cmd} 2>/dev/null\n`;
+ let client = connect("/sockets/ctrl", () => client.write(c));
+
+ let s = "";
+ client.on("data", (data) => {
+ s += data.toString();
+ // console.log("S", s);
+
+ try {
+ let parts = s.split("}");
+
+ for (let i = 0; i < parts.length - 1; i++) {
+ let completeJson = parts[i] + "}";
+ results.push(JSON.parse(completeJson));
+ }
+
+ s = parts[parts.length - 1];
+ } catch (err) {
+ console.error("Error parsing JSON:", err.message);
+ }
+ });
+
+ client.on("error", (e) => j(e.message));
+ client.on("close", () => r(results));
+ });