refactor: use top level await in bundling code
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 12 Jan 2024 19:33:31 +0000 (20:33 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 12 Jan 2024 19:33:31 +0000 (20:33 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
bundle.js

index 455da66fae8497ea74113c1d3813ae34441c765a..9a68fa7ae0684c556644742c829bb737e0913b78 100644 (file)
--- a/bundle.js
+++ b/bundle.js
@@ -6,72 +6,70 @@ import { build } from 'esbuild'
 import { clean } from 'esbuild-plugin-clean'
 import { copy } from 'esbuild-plugin-copy'
 
-;(async () => {
-  const isDevelopmentBuild = env.BUILD === 'development'
-  const sourcemap = !!isDevelopmentBuild
-  console.info(chalk.green(`Building in ${isDevelopmentBuild ? 'development' : 'production'} mode`))
-  console.time('Build time')
-  await build({
-    entryPoints: ['./src/start.ts', './src/charging-station/ChargingStationWorker.ts'],
-    bundle: true,
-    platform: 'node',
-    format: 'esm',
-    external: [
-      '@mikro-orm/*',
-      'ajv',
-      'ajv-formats',
-      'basic-ftp',
-      'chalk',
-      'date-fns',
-      'http-status-codes',
-      'just-merge',
-      'logform',
-      // 'mnemonist',
-      'mongodb',
-      'node:*',
-      'poolifier',
-      'tar',
-      'winston',
-      'winston/*',
-      'winston-daily-rotate-file',
-      'ws'
-    ],
-    minify: true,
-    sourcemap,
-    entryNames: '[name]',
-    outdir: './dist',
-    plugins: [
-      clean({
-        patterns: [
-          './dist/*',
-          '!./dist/assets',
-          './dist/assets/*.json',
-          './dist/assets/json-schemas',
-          './dist/assets/station-templates',
-          './dist/assets/ui-protocol'
-        ]
-      }),
-      copy({
-        assets: [
-          {
-            from: ['./src/assets/config.json'],
-            to: ['./assets']
-          },
-          {
-            from: ['./src/assets/idtags!(-template)*.json'],
-            to: ['./assets']
-          },
-          {
-            from: ['./src/assets/json-schemas/**/*.json'],
-            to: ['./assets/json-schemas']
-          },
-          {
-            from: ['./src/assets/station-templates/**/*.json'],
-            to: ['./assets/station-templates']
-          }
-        ]
-      })
-    ]
-  })
-  console.timeEnd('Build time')
-})()
+const isDevelopmentBuild = env.BUILD === 'development'
+const sourcemap = !!isDevelopmentBuild
+console.info(chalk.green(`Building in ${isDevelopmentBuild ? 'development' : 'production'} mode`))
+console.time('Build time')
+await build({
+  entryPoints: ['./src/start.ts', './src/charging-station/ChargingStationWorker.ts'],
+  bundle: true,
+  platform: 'node',
+  format: 'esm',
+  external: [
+    '@mikro-orm/*',
+    'ajv',
+    'ajv-formats',
+    'basic-ftp',
+    'chalk',
+    'date-fns',
+    'http-status-codes',
+    'just-merge',
+    'logform',
+    // 'mnemonist',
+    'mongodb',
+    'node:*',
+    'poolifier',
+    'tar',
+    'winston',
+    'winston/*',
+    'winston-daily-rotate-file',
+    'ws'
+  ],
+  minify: true,
+  sourcemap,
+  entryNames: '[name]',
+  outdir: './dist',
+  plugins: [
+    clean({
+      patterns: [
+        './dist/*',
+        '!./dist/assets',
+        './dist/assets/*.json',
+        './dist/assets/json-schemas',
+        './dist/assets/station-templates',
+        './dist/assets/ui-protocol'
+      ]
+    }),
+    copy({
+      assets: [
+        {
+          from: ['./src/assets/config.json'],
+          to: ['./assets']
+        },
+        {
+          from: ['./src/assets/idtags!(-template)*.json'],
+          to: ['./assets']
+        },
+        {
+          from: ['./src/assets/json-schemas/**/*.json'],
+          to: ['./assets/json-schemas']
+        },
+        {
+          from: ['./src/assets/station-templates/**/*.json'],
+          to: ['./assets/station-templates']
+        }
+      ]
+    })
+  ]
+})
+console.timeEnd('Build time')