feat: add plugin

This commit is contained in:
Alexander Navarro 2025-02-19 09:05:46 -03:00
parent b7452c7996
commit fa09b9e48a
5 changed files with 236 additions and 0 deletions

33
index.ts Normal file
View file

@ -0,0 +1,33 @@
import type { BunPlugin, PluginBuilder } from "bun";
import type { FileImporter } from "sass";
const nodeModuleImporter: FileImporter<"async"> = {
findFileUrl(url: string) {
if (url.startsWith("@")) {
return new URL(import.meta.resolve(url));
}
return null;
},
};
const sassPlugin: BunPlugin = {
name: "Sass Loader",
async setup(build: PluginBuilder) {
const sass = await import("sass");
build.onLoad({ filter: /\.scss$/ }, async ({ path }) => {
const result = await sass.compileAsync(path, {
importers: [nodeModuleImporter],
});
return {
loader: "css",
contents: result.css,
};
});
},
};
export default sassPlugin;