A music player that connects to your cloud/distributed storage.
at main 1.1 kB view raw
1import esbuild from "esbuild" 2import { wasmLoader } from "esbuild-plugin-wasm" 3 4import parseArgv from "tiny-parse-argv" 5 6const args = parseArgv(process.argv.slice(2), { 7 string: ["alias", "define", "inject"], 8}) 9 10esbuild.build({ 11 alias: {...obj("alias") }, 12 bundle: true, 13 define: obj("define"), 14 entryPoints: [args._[0]], 15 format: "esm", 16 inject: arr("inject"), 17 minify: args.minify || false, 18 outdir: args.outdir || undefined, 19 outfile: args.outfile || undefined, 20 plugins: [wasmLoader()], 21 splitting: args.splitting || false, 22 target: "esnext", 23}) 24 25function arr(name) { 26 return Object.entries(args) 27 .filter(([k, v]) => { 28 if (!k.includes(":")) return false 29 return k.split(":")[0] == name 30 }) 31 .map(([k, v]) => { 32 return k.split(":").slice(1).join(":") + v 33 }) 34} 35 36function obj(name) { 37 const entries = Object.entries(args) 38 .filter(([k, v]) => { 39 if (!k.includes(":")) return false 40 return k.split(":")[0] == name 41 }) 42 .map(([k, v]) => { 43 return [k.split(":").slice(1).join(":"), v.toString()] 44 }) 45 46 return Object.fromEntries(entries) 47}