@iamwaseem99/vite-plugin-django-frontend-kit
Version:
A Vite plugin to generate rollup input for django frontend kit
41 lines (40 loc) • 1.07 kB
JavaScript
// src/index.js
import { glob } from "glob";
import path from "path";
async function generateRollupInput(frontendDirs) {
const glob_patterns = [
"/**/entry.{js,ts}",
"/**/entry.head.{js,ts}",
"/**/*.entry.{js,ts}"
];
let rollupInput = {};
for (let dir of frontendDirs) {
dir = path.resolve(dir);
let resolved_files = await glob(
glob_patterns.map((pattern) => dir + pattern)
);
for (let file of resolved_files) {
let key = path.resolve(file).replace(dir, "").replace(/^\/|\\/g, "");
key = key.replace(/(index)?\.(js|ts|css)$/g, "").replace(/\//g, "-");
if (key.endsWith("-")) key = key.slice(0, -1);
rollupInput[key] = file;
}
}
return rollupInput;
}
function DjangoFrontendKit(options = {
frontendDirs: ["./frontend"]
}) {
return {
name: "vite-plugin-django-frontend-kit",
enforce: "pre",
async configResolved(config) {
config.build.rollupOptions.input = await generateRollupInput(
options.frontendDirs
);
}
};
}
export {
DjangoFrontendKit as default
};