diff options
author | Kristóf Marussy <kristof@marussy.com> | 2022-01-08 21:36:43 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2022-01-09 19:53:03 +0100 |
commit | d07e7b834831230b53860d0919a68edc2d36193d (patch) | |
tree | a1f2a021563ddff54f33341c475fc6c6eb787388 /config/getEsbuildConfig.js | |
parent | New configurations based on review comments (WIP) (diff) | |
download | sophie-d07e7b834831230b53860d0919a68edc2d36193d.tar.gz sophie-d07e7b834831230b53860d0919a68edc2d36193d.tar.zst sophie-d07e7b834831230b53860d0919a68edc2d36193d.zip |
build: Eslint fixes for multi-module project
Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'config/getEsbuildConfig.js')
-rw-r--r-- | config/getEsbuildConfig.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/config/getEsbuildConfig.js b/config/getEsbuildConfig.js new file mode 100644 index 0000000..b338d68 --- /dev/null +++ b/config/getEsbuildConfig.js | |||
@@ -0,0 +1,40 @@ | |||
1 | /* eslint-disable no-process-env */ | ||
2 | import { banner } from './buildConstants.js'; | ||
3 | |||
4 | /** @type {string} */ | ||
5 | const mode = process.env.MODE || 'development'; | ||
6 | |||
7 | /** @type {boolean} */ | ||
8 | const isDevelopment = mode === 'development'; | ||
9 | |||
10 | /** @type {string} */ | ||
11 | const modeString = JSON.stringify(mode); | ||
12 | |||
13 | /** | ||
14 | * @param {import('esbuild').BuildOptions} config | ||
15 | * @param {Record<string, unknown>} [extraMetaEnvVars] | ||
16 | * @returns {import('esbuild').BuildOptions} | ||
17 | */ | ||
18 | export default function getEsbuildConfig(config, extraMetaEnvVars) { | ||
19 | return { | ||
20 | logLevel: 'info', | ||
21 | bundle: true, | ||
22 | treeShaking: !isDevelopment, | ||
23 | minify: !isDevelopment, | ||
24 | banner: { | ||
25 | js: banner, | ||
26 | }, | ||
27 | ...config, | ||
28 | sourcemap: isDevelopment ? (config.sourcemap || true) : false, | ||
29 | define: { | ||
30 | 'process.env.NODE_ENV': modeString, | ||
31 | 'process.env.MODE': modeString, | ||
32 | 'import.meta.env': JSON.stringify({ | ||
33 | DEV: isDevelopment, | ||
34 | MODE: mode, | ||
35 | PROD: !isDevelopment, | ||
36 | ...extraMetaEnvVars, | ||
37 | }), | ||
38 | }, | ||
39 | }; | ||
40 | } | ||