| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env node
- const { execSync } = require("child_process")
- const esbuild = require("esbuild")
- const watch = process.argv.includes("--watch")
- /**
- * @type {import('esbuild').Plugin}
- */
- const esbuildProblemMatcherPlugin = {
- name: "esbuild-problem-matcher",
- setup(build) {
- build.onStart(() => {
- console.log("[watch] build started")
- })
- build.onEnd((result) => {
- result.errors.forEach(({ text, location }) => {
- console.error(`✘ [ERROR] ${text}`)
- console.error(` ${location.file}:${location.line}:${location.column}:`)
- })
- console.log("[watch] build finished")
- })
- },
- }
- const srcConfig = {
- bundle: true,
- minify: false,
- sourcemap: true,
- sourcesContent: true,
- logLevel: "silent",
- entryPoints: ["src/packages/**/*.ts"],
- outdir: "out/packages",
- format: "cjs",
- platform: "node",
- define: {
- "process.env.IS_TEST": "true",
- },
- external: ["vscode"],
- plugins: [esbuildProblemMatcherPlugin],
- }
- async function main() {
- const srcCtx = await esbuild.context(srcConfig)
- if (watch) {
- await srcCtx.watch()
- } else {
- await srcCtx.rebuild()
- await srcCtx.dispose()
- }
- }
- execSync("tsc -p ./tsconfig.test.json --outDir out", { encoding: "utf-8" })
- main().catch((e) => {
- console.error(e)
- process.exit(1)
- })
|