UNPKG

@guidepup/setup

Version:

Setup your environment for screen-reader automation.

41 lines (40 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runVbsScript = runVbsScript; const path_1 = require("path"); const promises_1 = require("fs/promises"); const child_process_1 = require("child_process"); const os_1 = require("os"); const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; const CSCRIPT = "cscript"; const withTempFile = async (fn) => await withTempDir((dir) => fn((0, path_1.join)(dir, "script.vbs"))); const withTempDir = async (fn) => { const dir = await (0, promises_1.mkdtemp)((await (0, promises_1.realpath)((0, os_1.tmpdir)())) + path_1.sep); try { return await fn(dir); } finally { await (0, promises_1.rm)(dir, { recursive: true }); } }; async function runVbsScript(script) { return await withTempFile(async (filePath) => { await (0, promises_1.writeFile)(filePath, script); return new Promise((resolve, reject) => { const child = (0, child_process_1.execFile)(CSCRIPT, [filePath], { maxBuffer: DEFAULT_MAX_BUFFER, }, (e, stdout) => { if (e) { return reject(e); } if (!stdout) { return resolve(); } else { return resolve(stdout.trim()); } }); child.stdin.end(); }); }); }