« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/util/node-utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/node-utils.js')
-rw-r--r--src/util/node-utils.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/util/node-utils.js b/src/util/node-utils.js
new file mode 100644
index 0000000..d660612
--- /dev/null
+++ b/src/util/node-utils.js
@@ -0,0 +1,27 @@
+// Utility functions which are only relevant to particular Node.js constructs.
+
+// Very cool function origin8ting in... http-music pro8a8ly!
+// Sorry if we happen to 8e violating past-us's copyright, lmao.
+export function promisifyProcess(proc, showLogging = true) {
+    // Takes a process (from the child_process module) and returns a promise
+    // that resolves when the process exits (or rejects, if the exit code is
+    // non-zero).
+    //
+    // Ayy look, no alpha8etical second letter! Couldn't tell this was written
+    // like three years ago 8efore I was me. 8888)
+
+    return new Promise((resolve, reject) => {
+        if (showLogging) {
+            proc.stdout.pipe(process.stdout);
+            proc.stderr.pipe(process.stderr);
+        }
+
+        proc.on('exit', code => {
+            if (code === 0) {
+                resolve();
+            } else {
+                reject(code);
+            }
+        })
+    })
+}