Precise DOM morphing
morphing typescript dom
at main 27 lines 903 B view raw
1import { build } from "bun" 2import { $ } from "bun" 3import { gzipSync } from "zlib" 4import { statSync, readFileSync } from "fs" 5 6// Build and minify with Bun 7await build({ 8 entrypoints: ["./src/morphlex.ts"], 9 outdir: "./dist", 10 minify: true, 11 sourcemap: "external", 12 naming: "[dir]/[name].min.[ext]", 13 target: "browser", 14}) 15 16// Generate TypeScript declarations (skip lib check to avoid node type errors) 17await $`tsgo --emitDeclarationOnly --declaration --outDir dist --skipLibCheck` 18 19// Calculate and display file sizes 20const minifiedPath = "./dist/morphlex.min.js" 21const minifiedSize = statSync(minifiedPath).size 22const minifiedContent = readFileSync(minifiedPath) 23const gzippedSize = gzipSync(new Uint8Array(minifiedContent)).length 24 25console.log("Build complete") 26console.log(`Minified size: ${(minifiedSize / 1024).toFixed(2)} KB`) 27console.log(`Gzipped size: ${(gzippedSize / 1024).toFixed(2)} KB`)