diff --git a/index.ts b/index.ts index a664a4d..76cfd13 100644 --- a/index.ts +++ b/index.ts @@ -1,30 +1,32 @@ +#!/usr/bin/env bun + import sassPlugin from "@alecodes/bun-plugin-sass"; import { parseArgs } from "node:util"; import path from "node:path"; const { values } = parseArgs({ - args: Bun.argv, - options: { - globs: { - type: "string", - short: "g", - }, - outdir: { - type: "string", - short: "o", - }, - bundle_name: { - type: "string", - short: "n", - default: "main", - }, - }, - strict: true, - allowPositionals: true, + args: Bun.argv, + options: { + globs: { + type: "string", + short: "g", + }, + outdir: { + type: "string", + short: "o", + }, + bundle_name: { + type: "string", + short: "n", + default: "main", + }, + }, + strict: true, + allowPositionals: true, }); if (values.globs === undefined || values.outdir === undefined) { - throw new Error("Error in the arguments provided."); + throw new Error("Error in the arguments provided."); } console.log(`Building glob "${values.globs}" to "${values.outdir}"`); @@ -33,39 +35,39 @@ console.log(`Building glob "${values.globs}" to "${values.outdir}"`); const entrypoints = Array.from(new Bun.Glob(values.globs).scanSync(".")); const result = await Bun.build({ - entrypoints, - publicPath: "/", - // splitting: true, - plugins: [sassPlugin], - minify: { - whitespace: true, - identifiers: true, - syntax: true, - }, - naming: { - entry: "[dir]/[name].[ext]", - chunk: "assets/[name]-[hash].[ext]", - asset: "assets/[name]-[hash].[ext]", - }, + entrypoints, + publicPath: "/", + // splitting: true, + plugins: [sassPlugin], + minify: { + whitespace: true, + identifiers: true, + syntax: true, + }, + naming: { + entry: "[dir]/[name].[ext]", + chunk: "assets/[name]-[hash].[ext]", + asset: "assets/[name]-[hash].[ext]", + }, }); let out = ""; out += "|env: &mut minijinja::Environment| {\n"; for (const res of result.outputs) { - // Can be consumed as blobs - let asset_text = await res.text(); - asset_text = asset_text.replaceAll(/\n/g, "\\n"); - asset_text = asset_text.replaceAll(/"/g, `\\"`); - const asset_path = path.normalize(res.path); - out += `env.add_template("${asset_path}", "${asset_text}").expect("Embedded an invalid template");\n`; + // Can be consumed as blobs + let asset_text = await res.text(); + asset_text = asset_text.replaceAll(/\n/g, "\\n"); + asset_text = asset_text.replaceAll(/"/g, `\\"`); + const asset_path = path.normalize(res.path); + out += `env.add_template("${asset_path}", "${asset_text}").expect("Embedded an invalid template");\n`; } out += "}"; Bun.write( - path.join(values.outdir, `minijinja_templates_${values.bundle_name}.rs`), - out, + path.join(values.outdir, `minijinja_templates_${values.bundle_name}.rs`), + out, ); console.log("Assets compiled!");