diff options
| author | Adam Soltys <[email protected]> | 2024-10-04 09:29:21 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-10 12:17:05 -0700 |
| commit | 372c635714f6e7de8a0da135980697b49f207f2c (patch) | |
| tree | 5c5af794a4ca18b0919cc363f65fd398bc051b8b /lib/strfry.ts | |
| parent | 5127adbb54b7db6eccf27cc4e498d9dfcdb7a7a4 (diff) | |
| download | coinos-server-372c635714f6e7de8a0da135980697b49f207f2c.tar.gz coinos-server-372c635714f6e7de8a0da135980697b49f207f2c.zip | |
wip socket communication
Diffstat (limited to 'lib/strfry.ts')
| -rw-r--r-- | lib/strfry.ts | 30 |
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)); + }); |
