UNPKG

@iamwaseem99/vite-plugin-django-frontend-kit

Version:

A Vite plugin to generate rollup input for django frontend kit

46 lines (43 loc) 1.25 kB
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; } export default 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 ); }, }; }