UNPKG

mytril

Version:

Mytril Svelte library component for rapidly building modern websites based on Svelte and Sveltekit

40 lines (39 loc) 1.62 kB
import { mytrilConfig } from './config.js'; import { mytrilImporter } from '../../importer.js'; import { mytrilCSS } from '../css/plugin.js'; /** * A Vite plugin for Mytril that handles configuration and file watching. * * @param props - An object containing optional properties. * @param props.modeDev - A boolean indicating if the developer mode is enabled. * @returns An object representing the Vite plugin. */ export async function mytril() { return { name: 'mytril/vite.js', async configResolved() { const configurationGlobal = await mytrilImporter(); const viteConf = mytrilConfig(configurationGlobal.params); await mytrilCSS(viteConf); }, async configureServer(server) { server.watcher.add('./vite.config.ts'); server.watcher.add('./vite.config.js'); server.watcher.add('./mytril.config.js'); server.watcher.on('change', async (filePath) => { if (String(filePath).includes('mytril.config.js')) { const configurationGlobal = await mytrilImporter(); const viteConf = mytrilConfig(configurationGlobal.params); await mytrilCSS(viteConf); } }); }, async transform(code, id) { if (id.includes('mytril/dist/styles/') && id.endsWith('.css')) { const configurationGlobal = await mytrilImporter(); const viteConf = mytrilConfig(configurationGlobal.params); await mytrilCSS(viteConf); } } }; }