UNPKG

microsite

Version:
44 lines (43 loc) 1.55 kB
import { dirExists } from "../utils/fs.js"; import { resolveNormalizedBasePath } from '../utils/command.js'; import { openInBrowser } from "../utils/open.js"; import { OUT_DIR } from "../utils/build.js"; import { green } from "kleur/colors"; import polka from "polka"; import sirv from "sirv"; import arg from "arg"; function parseArgs(argv) { return arg({ "--port": Number, "--base-path": String, "--no-open": Boolean, // Aliases "-p": "--port", }, { permissive: true, argv }); } export default async function start(argvOrParsedArgs) { var _a; const args = Array.isArray(argvOrParsedArgs) ? parseArgs(argvOrParsedArgs) : argvOrParsedArgs; const PORT = (_a = args["--port"]) !== null && _a !== void 0 ? _a : 8888; const basePath = resolveNormalizedBasePath(args); if (await dirExists(OUT_DIR)) { const assets = sirv("dist", { etag: true }); const server = polka().use(assets); await new Promise((resolve) => server.listen(PORT, (err) => { if (err) throw err; resolve(); })); let protocol = "http:"; let hostname = "localhost"; if (!args['--no-open']) { await openInBrowser(protocol, hostname, PORT, basePath, "chrome"); } console.log(`${green("✔")} Microsite started on ${green(`${protocol}//${hostname}:${PORT}`)}\n`); } else { console.log(`No dist/ directory found. Did you run "microsite build" first?`); } }