diff options
Diffstat (limited to 'tools/vscode/scripts')
-rw-r--r-- | tools/vscode/scripts/build.mjs | 37 | ||||
-rw-r--r-- | tools/vscode/scripts/esbuild.config.mjs | 7 | ||||
-rw-r--r-- | tools/vscode/scripts/watch.mjs | 27 |
3 files changed, 71 insertions, 0 deletions
diff --git a/tools/vscode/scripts/build.mjs b/tools/vscode/scripts/build.mjs new file mode 100644 index 000000000..baaaa207f --- /dev/null +++ b/tools/vscode/scripts/build.mjs @@ -0,0 +1,37 @@ +import esbuild from 'esbuild'; +import config from './esbuild.config.mjs'; +import { performance } from 'perf_hooks'; + +function buildClient() { + return esbuild.build({ + ...config, + entryPoints: ['packages/client/src/index.ts'], + outfile: 'dist/index.js', + }); +} + +function buildServer() { + return esbuild.build({ + ...config, + entryPoints: ['packages/server/src/index.ts'], + outfile: 'dist/server.js', + }); +} + +async function build() { + const start = performance.now(); + try { + await Promise.all([buildClient(), buildServer()]); + } catch ({ errors }) { + if (errors[0].text.indexOf('Could not resolve') > -1) { + console.error('Make sure you run "npm run bootstrap" first!'); + } + return; + } + const end = performance.now(); + const span = end - start; + + console.log(`✨ Built in ${Math.round(span)}ms!`); +} + +build(); diff --git a/tools/vscode/scripts/esbuild.config.mjs b/tools/vscode/scripts/esbuild.config.mjs new file mode 100644 index 000000000..334429ffd --- /dev/null +++ b/tools/vscode/scripts/esbuild.config.mjs @@ -0,0 +1,7 @@ +export default { + bundle: true, + logLevel: 'error', + platform: 'node', + format: 'cjs', + external: ['vscode', 'vscode-html-languageservice', "vscode-emmet-helper"], +}; diff --git a/tools/vscode/scripts/watch.mjs b/tools/vscode/scripts/watch.mjs new file mode 100644 index 000000000..37bdc53e6 --- /dev/null +++ b/tools/vscode/scripts/watch.mjs @@ -0,0 +1,27 @@ +import esbuild from 'esbuild'; +import config from './esbuild.config.mjs'; + +function buildClient() { + return esbuild.build({ + ...config, + watch: true, + entryPoints: ['packages/client/src/index.ts'], + outfile: 'dist/index.js', + }); +} + +function buildServer() { + return esbuild.build({ + ...config, + watch: true, + entryPoints: ['packages/server/src/index.ts'], + outfile: 'dist/server.js', + }); +} + +async function watch() { + await Promise.all([buildClient(), buildServer()]); + console.log('👀 Watching for changes...'); +} + +watch(); |