diff --git a/build.rs b/build.rs index 736b677..c6d80f2 100644 --- a/build.rs +++ b/build.rs @@ -1,4 +1,3 @@ -use core::panic; use std::io::Write; use std::process::Command; use std::{env, io}; @@ -19,7 +18,7 @@ fn main() { cmd(Command::new("bun").args(["install"])); cmd(Command::new("bun").args([ "run", - "scripts/build.ts", + "tmpl-build-and-load", "--outdir", out_dir.as_str(), "--globs", diff --git a/bun.lock b/bun.lock index b72bee8..2711991 100644 --- a/bun.lock +++ b/bun.lock @@ -5,7 +5,7 @@ "name": "frontend-compiler-example", "devDependencies": { "@alecodes/bun-plugin-sass": "^0.1.3", - "@alecodes/bun-static-builder": "^0.1.0", + "@alecodes/tmpl-build-and-load": "^0.1.2", "@types/bun": "latest", }, "peerDependencies": { @@ -16,7 +16,7 @@ "packages": { "@alecodes/bun-plugin-sass": ["@alecodes/bun-plugin-sass@0.1.3", "https://git.alecodes.page/api/packages/alecodes/npm/%40alecodes%2Fbun-plugin-sass/-/0.1.3/bun-plugin-sass-0.1.3.tgz", { "dependencies": { "sass": "^1.85.0" }, "peerDependencies": { "typescript": "^5" } }, "sha512-CzI6BCcy6Io5aRFXY0DkyeXfwdM7twqmQwBrjSL81OQl2F6b7ZTN4yt5tjezlKohdF53lKrtJ78K16xE577zXA=="], - "@alecodes/bun-static-builder": ["@alecodes/bun-static-builder@0.1.0", "https://git.alecodes.page/api/packages/alecodes/npm/%40alecodes%2Fbun-static-builder/-/0.1.0/bun-static-builder-0.1.0.tgz", { "dependencies": { "sass": "^1.85.0", "slug": "^10.0.0" }, "peerDependencies": { "typescript": "^5.0.0" }, "bin": { "@alecodes/bun-static-builder": "src/cli.ts" } }, "sha512-1droOGfCr25rnVZCr7WhrECrk/03Y7gAGzhj0hr3h9ECMwIELT8B0nrL/K7j8IxmqfkOvA50l4uxRzgXHpOjGQ=="], + "@alecodes/tmpl-build-and-load": ["@alecodes/tmpl-build-and-load@0.1.2", "https://git.alecodes.page/api/packages/alecodes/npm/%40alecodes%2Ftmpl-build-and-load/-/0.1.2/tmpl-build-and-load-0.1.2.tgz", { "dependencies": { "@alecodes/bun-plugin-sass": "^0.1.3" }, "peerDependencies": { "typescript": "^5" }, "bin": { "@alecodes/tmpl-build-and-load": "index.ts" } }, "sha512-cXV8PY7ytyYc5AJygUp9pK7mI6tN9paIX4qKzpuaEw3QC3Yg81jvvpKYqLycr8o6LQDn9rqIE42aKnqrleYing=="], "@parcel/watcher": ["@parcel/watcher@2.5.1", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-freebsd-x64": "2.5.1", "@parcel/watcher-linux-arm-glibc": "2.5.1", "@parcel/watcher-linux-arm-musl": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", "@parcel/watcher-linux-arm64-musl": "2.5.1", "@parcel/watcher-linux-x64-glibc": "2.5.1", "@parcel/watcher-linux-x64-musl": "2.5.1", "@parcel/watcher-win32-arm64": "2.5.1", "@parcel/watcher-win32-ia32": "2.5.1", "@parcel/watcher-win32-x64": "2.5.1" } }, "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg=="], @@ -80,8 +80,6 @@ "sass": ["sass@1.86.3", "", { "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" }, "bin": { "sass": "sass.js" } }, "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw=="], - "slug": ["slug@10.0.0", "", { "bin": { "slug": "cli.js" } }, "sha512-M8s2PWOUeSCdD4S1NH5lCzXg2zFV1fozrtfr0FSKl65x+EF1rUowj+/vyFlnHgxPxWzT+DL0VXKfYc1DHJoymg=="], - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], diff --git a/dist/main-c13rsdee.js b/dist/main-c13rsdee.js deleted file mode 100644 index e69de29..0000000 diff --git a/dist/main.html b/dist/main.html deleted file mode 100644 index 27089b5..0000000 --- a/dist/main.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - Hello world! - - -
-

Hello world!

-
- - diff --git a/dist/minijinja_templates_main.rs b/dist/minijinja_templates_main.rs deleted file mode 100644 index 36bf3b5..0000000 --- a/dist/minijinja_templates_main.rs +++ /dev/null @@ -1,5 +0,0 @@ -|env: &mut minijinja::Environment| { -env.add_template("assets/main-5d5yeb75.js", "").expect("Embedded an invalid template"); -env.add_template("main.html", "\n\n \n \n \n \n \n Hello world!\n \n \n
\n

Hello world!

\n
\n \n\n").expect("Embedded an invalid template"); -env.add_template("assets/main-an4p6yc8.css", "main{background-color:red}\n").expect("Embedded an invalid template"); -} \ No newline at end of file diff --git a/dist/style-y1kzbynz.scss b/dist/style-y1kzbynz.scss deleted file mode 100644 index c7001ed..0000000 --- a/dist/style-y1kzbynz.scss +++ /dev/null @@ -1,3 +0,0 @@ -main { - background-color: red; -} diff --git a/package.json b/package.json index 12482e5..068d02b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": true, "devDependencies": { "@alecodes/bun-plugin-sass": "^0.1.3", - "@alecodes/bun-static-builder": "^0.1.0", + "@alecodes/tmpl-build-and-load": "^0.1.2", "@types/bun": "latest" }, "peerDependencies": { diff --git a/scripts/build.ts b/scripts/build.ts deleted file mode 100644 index 51c8fca..0000000 --- a/scripts/build.ts +++ /dev/null @@ -1,71 +0,0 @@ -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, -}); - -if (values.globs === undefined || values.outdir === undefined) { - throw new Error("Error in the arguments provided."); -} - -console.log(`Building glob "${values.globs}" to "${values.outdir}"`); - -// parseArgs should throw an error if a property doesn't exist when strict = true -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]", - }, -}); - -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`; -} - -out += "}"; - -Bun.write( - path.join(values.outdir, `minijinja_templates_${values.bundle_name}.rs`), - out, -); - -console.log("Assets compiled!");