From 77b051fbac5a4d46933e4f069317949a07f5d5c3 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 7 May 2024 07:37:15 +0000 Subject: [PATCH] build: switch from rollup and terser to esbuild for creating contract bundle This commit implements the replacement of rollup and terser with esbuild for generating the contract_bundle binary. The transition is facilitated by optimizations aimed at reducing the bundle size. --- packages/core/BUILD.bazel | 2 +- .../primitives/event-dispatch/BUILD.bazel | 25 +++++++++---------- .../event-dispatch/terser.config.json | 20 --------------- 3 files changed, 13 insertions(+), 34 deletions(-) delete mode 100644 packages/core/primitives/event-dispatch/terser.config.json diff --git a/packages/core/BUILD.bazel b/packages/core/BUILD.bazel index b0773b32d031c..5ab8f6df2e30e 100644 --- a/packages/core/BUILD.bazel +++ b/packages/core/BUILD.bazel @@ -148,5 +148,5 @@ genrule( name = "event_dispatch_contract_binary", srcs = ["//packages/core/primitives/event-dispatch:contract_bundle_min"], outs = ["event-dispatch-contract.min.js"], - cmd = "cat $< >> $@", + cmd = "cp $< $@", ) diff --git a/packages/core/primitives/event-dispatch/BUILD.bazel b/packages/core/primitives/event-dispatch/BUILD.bazel index 7144eff9951d6..238067290fb70 100644 --- a/packages/core/primitives/event-dispatch/BUILD.bazel +++ b/packages/core/primitives/event-dispatch/BUILD.bazel @@ -1,6 +1,4 @@ -load("//tools:defaults.bzl", "ts_library", "tsec_test") -load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") -load("@npm//@bazel/terser:index.bzl", "terser_minified") +load("//tools:defaults.bzl", "esbuild", "ts_library", "tsec_test") package(default_visibility = ["//visibility:public"]) @@ -29,17 +27,18 @@ filegroup( visibility = ["//visibility:public"], ) -rollup_bundle( - name = "contract_bundle", - args = ["--no-sourcemap"], +esbuild( + name = "contract_bundle_min", + args = { + "sourcemap": False, + "resolveExtensions": [ + ".mjs", + ], + "legalComments": "none", + }, entry_point = ":contract_binary.ts", format = "iife", + minify = True, + sourcemap = "inline", deps = [":event-dispatch"], ) - -terser_minified( - name = "contract_bundle_min", - src = ":contract_bundle", - config_file = ":terser.config.json", - sourcemap = False, -) diff --git a/packages/core/primitives/event-dispatch/terser.config.json b/packages/core/primitives/event-dispatch/terser.config.json deleted file mode 100644 index c722de7ad8e0f..0000000000000 --- a/packages/core/primitives/event-dispatch/terser.config.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "ecma": "es2020", - "compress": { - "toplevel": true, - "passes": 2, - "pure_getters": true - }, - "mangle": { - "toplevel": true, - "properties": false, - "keep_classnames": false, - "keep_fnames": false - }, - "format": { - "ecma": "es2020", - "ascii_only": true, - "wrap_func_args": false, - "comments": false - } - } \ No newline at end of file