import { builtinModules } from "module" import { get } from "http" import { green } from "chalk" import { exec, spawn, ChildProcess } from "child_process" /** 轮询监听 vite 启动 */ export function waitOn(arg0: { port: string | number; interval?: number }) { return new Promise(resolve => { const { port, interval = 149 } = arg0 const url = `http://localhost:${port}` let counter = 0 const timer: NodeJS.Timer = setInterval(() => { get(url, res => { clearInterval(timer) console.log("[waitOn]", green(`"${url}" are already responsive.`), `(${res.statusCode}: ${res.statusMessage})`) resolve(res.statusCode) }).on("error", err => { console.log("[waitOn]", `counter: ${counter++}`) }) }, interval) }) } /** node.js builtins module */ export const builtins = () => builtinModules.filter(x => !/^_|^(internal|v8|node-inspect)\/|\//.test(x))