Compare commits

..

No commits in common. "5786338063a3a4c87d5269576b9e7cd28371abff" and "e43815f2a6d8324ac4f1da59215c79b299c00f31" have entirely different histories.

3 changed files with 42 additions and 50 deletions

View file

@ -2,12 +2,6 @@
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
- - - - - -
## v0.1.2 - 2025-04-11
#### Bug Fixes
- add shebang to entrypoint - (b4a5514) - aleidk
- - -
## v0.1.1 - 2025-04-11 ## v0.1.1 - 2025-04-11
#### Bug Fixes #### Bug Fixes
- remove unecesary dependency - (cf7bf3f) - aleidk - remove unecesary dependency - (cf7bf3f) - aleidk

View file

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

View file

@ -1,5 +1,5 @@
{ {
"version": "0.1.2", "version": "0.1.1",
"name": "@alecodes/tmpl-build-and-load", "name": "@alecodes/tmpl-build-and-load",
"module": "index.ts", "module": "index.ts",
"type": "module", "type": "module",