UNPKG

prettier-plugin-apex

Version:

Salesforce Apex plugin for Prettier

35 lines (34 loc) 1.21 kB
import { spawn } from "child_process"; import path from "path"; import util from "util"; import waitOn from "wait-on"; import { getSerializerBinDirectory } from "./util.js"; const waitOnPromise = util.promisify(waitOn); export async function start(host, port, password, allowedOrigins) { let serializerBin = await getSerializerBinDirectory(); if (process.platform === "win32") { serializerBin = path.join(serializerBin, "apex-ast-serializer-http.bat"); } else { serializerBin = path.join(serializerBin, "apex-ast-serializer-http"); } const args = ["-s", "-a", password, "-h", host, "-p", port.toString()]; if (allowedOrigins !== undefined) { args.push("-c", allowedOrigins); } const command = spawn(serializerBin, args, { shell: true, stdio: "inherit", }); await waitOnPromise({ resources: [`http://${host}:${port}/api/ast`], }); // eslint-disable-next-line no-console console.log(`Server listening on http://${host}:${port}`); return command; } export async function stop(host, port, password) { return fetch(`http://${host}:${port}/shutdown?token=${password}`, { method: "POST", }); }