UNPKG

@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
// 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 };