aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/buildMath.js
diff options
context:
space:
mode:
authorkj_sh6042026-03-15 16:19:36 -0400
committerkj_sh6042026-03-15 16:19:36 -0400
commit72ece7c00b091011617fccf719df7f602cf4f7c7 (patch)
tree75a085594679b4282faac3b3646d589bf5a67ea5 /scripts/buildMath.js
parentc142734224f6263180e4cbe6fabec591a27972a1 (diff)
refactor: scripts/
Diffstat (limited to 'scripts/buildMath.js')
-rw-r--r--scripts/buildMath.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/buildMath.js b/scripts/buildMath.js
new file mode 100644
index 0000000..fd2f820
--- /dev/null
+++ b/scripts/buildMath.js
@@ -0,0 +1,52 @@
+const path = require("path");
+const { build } = require("esbuild");
+const { sassPlugin } = require("esbuild-sass-plugin");
+
+// contains all dependencies bundled inside
+const getConfig = (outdir) => ({
+ outdir,
+ bundle: true,
+ format: "esm",
+ entryPoints: ["index.ts"],
+ entryNames: "[name]",
+ assetNames: "[dir]/[name]",
+ alias: {
+ "@excalidraw/excalidraw": path.resolve(__dirname, "../packages/excalidraw"),
+ "@excalidraw/utils": path.resolve(__dirname, "../packages/utils"),
+ "@excalidraw/math": path.resolve(__dirname, "../packages/math"),
+ },
+});
+
+function buildDev(config) {
+ return build({
+ ...config,
+ plugins: [sassPlugin()],
+ sourcemap: true,
+ define: {
+ "import.meta.env": JSON.stringify({ DEV: true }),
+ },
+ });
+}
+
+function buildProd(config) {
+ return build({
+ ...config,
+ plugins: [sassPlugin()],
+ minify: true,
+ define: {
+ "import.meta.env": JSON.stringify({ PROD: true }),
+ },
+ });
+}
+
+const createESMRawBuild = async () => {
+ // development unminified build with source maps
+ buildDev(getConfig("dist/dev"));
+
+ // production minified build without sourcemaps
+ buildProd(getConfig("dist/prod"));
+};
+
+(async () => {
+ await createESMRawBuild();
+})();