aboutsummaryrefslogtreecommitdiffstats
path: root/config/esbuildConfig.js
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-31 01:52:28 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-31 01:56:30 +0100
commit7108c642f4ff6dc5f0c4d30b8a8960064ff8e90f (patch)
treef8c0450a6e1b62f7e7f8470efd375b3659b91b2b /config/esbuildConfig.js
parentrefactor: Install devtools extensions earlier (diff)
downloadsophie-7108c642f4ff6dc5f0c4d30b8a8960064ff8e90f.tar.gz
sophie-7108c642f4ff6dc5f0c4d30b8a8960064ff8e90f.tar.zst
sophie-7108c642f4ff6dc5f0c4d30b8a8960064ff8e90f.zip
test: Add tests for main package
- Changed jest to run from the root package and reference the packages as projects. This required moving the base jest config file away from the project root. - Module isolation seems to prevent ts-jest from loading the shared package, so we disabled it for now. - To better facilitate mocking, services should be split into interfaces and implementation - Had to downgrade to chald 4.1.2 as per https://github.com/chalk/chalk/releases/tag/v5.0.0 at least until https://github.com/microsoft/TypeScript/issues/46452 is resolved.
Diffstat (limited to 'config/esbuildConfig.js')
-rw-r--r--config/esbuildConfig.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/config/esbuildConfig.js b/config/esbuildConfig.js
new file mode 100644
index 0000000..05386b1
--- /dev/null
+++ b/config/esbuildConfig.js
@@ -0,0 +1,42 @@
1import { banner } from './buildConstants.js';
2
3/** @type {string} */
4const mode = process.env.MODE || 'development';
5
6/** @type {boolean} */
7const isDevelopment = mode === 'development';
8
9/** @type {string} */
10const modeString = JSON.stringify(mode);
11
12/**
13 * @param {import('esbuild').BuildOptions} config
14 * @param {Record<string, unknown>} [extraMetaEnvVars]
15 * @returns {import('esbuild').BuildOptions}
16 */
17export function getConfig(config, extraMetaEnvVars) {
18 return {
19 logLevel: 'info',
20 bundle: true,
21 treeShaking: !isDevelopment,
22 minify: !isDevelopment,
23 banner: {
24 js: banner,
25 },
26 ...config,
27 sourcemap: isDevelopment ? (config.sourcemap || true) : false,
28 define: {
29 'process.env.NODE_ENV': modeString,
30 'process.env.MODE': modeString,
31 'import.meta.env': JSON.stringify({
32 DEV: isDevelopment,
33 MODE: mode,
34 PROD: !isDevelopment,
35 ...extraMetaEnvVars,
36 }),
37 },
38 plugins: [
39 ...(config.plugins || []),
40 ],
41 };
42}