aboutsummaryrefslogtreecommitdiff
path: root/fzf.js
diff options
context:
space:
mode:
Diffstat (limited to 'fzf.js')
-rw-r--r--fzf.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/fzf.js b/fzf.js
new file mode 100644
index 0000000..85f544c
--- /dev/null
+++ b/fzf.js
@@ -0,0 +1,24 @@
+const child = require("child_process")
+
+module.exports = (options, binary = "fzf") => {
+ let res, rej
+ const prom = new Promise((rs, rj) => [res, rej] = [rs, rj])
+
+ const proc = child.spawn(binary)
+ options.forEach(opt => proc.stdin.write(opt + "\n"))
+
+ let data = ""
+ proc.stdout.on("data", chunk => {
+ data += chunk
+ })
+ proc.stderr.pipe(process.stderr)
+
+ proc.on("close", code => {
+ if (code == 0)
+ res(data.trim())
+ else
+ rej(code)
+ })
+
+ return prom
+}