aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-30 23:15:29 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-30 23:15:29 +0100
commitd338fa2ac8f158030fb9070985db4b395f92e79b (patch)
tree54459c09645313f7e54a9da004292425c8f374d8
parenttest: Silence logging in preload tests (diff)
downloadsophie-d338fa2ac8f158030fb9070985db4b395f92e79b.tar.gz
sophie-d338fa2ac8f158030fb9070985db4b395f92e79b.tar.zst
sophie-d338fa2ac8f158030fb9070985db4b395f92e79b.zip
build: Simplify import.meta.env handling
There are less opportunities now to optimize away code relying on import.meta.env, but we can directly check for the presence of import.meta.env.
-rw-r--r--config/esbuild-config.js31
1 files changed, 10 insertions, 21 deletions
diff --git a/config/esbuild-config.js b/config/esbuild-config.js
index 52d1a59..5cef85f 100644
--- a/config/esbuild-config.js
+++ b/config/esbuild-config.js
@@ -9,28 +9,12 @@ const isDevelopment = mode === 'development';
9/** @type {string} */ 9/** @type {string} */
10const modeString = JSON.stringify(mode); 10const modeString = JSON.stringify(mode);
11 11
12/** @type {Record<string, string>} */
13const defineEnv = {
14 'import.meta.env.DEV': JSON.stringify(isDevelopment),
15 'import.meta.env.MODE': modeString,
16 'import.meta.env.PROD': JSON.stringify(!isDevelopment),
17 'process.env.NODE_ENV': modeString,
18 'process.env.MODE': modeString,
19};
20
21/** 12/**
22 * @param {import('esbuild').BuildOptions} config 13 * @param {import('esbuild').BuildOptions} config
23 * @param {Record<string, string>} [metaEnvVars] 14 * @param {Record<string, unknown>} [extraMetaEnvVars]
24 * @returns {import('esbuild').BuildOptions} 15 * @returns {import('esbuild').BuildOptions}
25 */ 16 */
26export function getConfig(config, metaEnvVars) { 17export function getConfig(config, extraMetaEnvVars) {
27 /** @type {Record<string, string>} */
28 const defineMeta = {};
29 if (metaEnvVars) {
30 for (const varName in metaEnvVars) {
31 defineMeta[`import.meta.env.${varName}`] = JSON.stringify(metaEnvVars[varName]);
32 }
33 }
34 return { 18 return {
35 logLevel: 'info', 19 logLevel: 'info',
36 bundle: true, 20 bundle: true,
@@ -42,9 +26,14 @@ export function getConfig(config, metaEnvVars) {
42 ...config, 26 ...config,
43 sourcemap: isDevelopment ? (config.sourcemap || true) : false, 27 sourcemap: isDevelopment ? (config.sourcemap || true) : false,
44 define: { 28 define: {
45 ...defineEnv, 29 'process.env.NODE_ENV': modeString,
46 ...defineMeta, 30 'process.env.MODE': modeString,
47 ...config.define, 31 'import.meta.env': JSON.stringify({
32 DEV: isDevelopment,
33 MODE: mode,
34 PROD: !isDevelopment,
35 ...extraMetaEnvVars,
36 }),
48 }, 37 },
49 plugins: [ 38 plugins: [
50 ...(config.plugins || []), 39 ...(config.plugins || []),