Compare commits
2 commits
f6077d4a1d
...
76b8d3b342
| Author | SHA1 | Date | |
|---|---|---|---|
| 76b8d3b342 | |||
| a1b480fc47 |
3 changed files with 48 additions and 43 deletions
|
|
@ -2,6 +2,14 @@
|
||||||
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.3 - 2025-04-14
|
||||||
|
#### Bug Fixes
|
||||||
|
- use raw string to prevent quote issues - (a1b480f) - aleidk
|
||||||
|
#### Documentation
|
||||||
|
- fix example - (f6077d4) - aleidk
|
||||||
|
|
||||||
|
- - -
|
||||||
|
|
||||||
## v0.1.2 - 2025-04-11
|
## v0.1.2 - 2025-04-11
|
||||||
#### Bug Fixes
|
#### Bug Fixes
|
||||||
- add shebang to entrypoint - (b4a5514) - aleidk
|
- add shebang to entrypoint - (b4a5514) - aleidk
|
||||||
|
|
|
||||||
81
index.ts
81
index.ts
|
|
@ -5,28 +5,28 @@ 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,40 +35,37 @@ 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();
|
const asset_text = await res.text();
|
||||||
asset_text = asset_text.replaceAll(/\n/g, "\\n");
|
const asset_path = path.normalize(res.path);
|
||||||
asset_text = asset_text.replaceAll(/"/g, `\\"`);
|
out += `env.add_template("${asset_path}", r##"${asset_text}"##).expect("Embedded an invalid template");\n`;
|
||||||
const asset_path = path.normalize(res.path);
|
|
||||||
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!");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "0.1.2",
|
"version": "0.1.3",
|
||||||
"name": "@alecodes/tmpl-build-and-load",
|
"name": "@alecodes/tmpl-build-and-load",
|
||||||
"module": "index.ts",
|
"module": "index.ts",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue