Added hot dev mode

This commit is contained in:
Mert Sincan 2024-09-17 22:55:40 +01:00
parent 4795c2382b
commit 02094f31ae
5 changed files with 41 additions and 11 deletions

View file

@ -21,6 +21,7 @@ export default defineNuxtModule<ModuleOptions>({
//cssLayerOrder: undefined,
importPT: undefined,
importTheme: undefined,
loadStyles: true,
options: {},
components: {
prefix: '',
@ -47,7 +48,7 @@ export default defineNuxtModule<ModuleOptions>({
const resolver = createResolver(import.meta.url);
const registered = register(moduleOptions);
const { autoImport, importPT, importTheme, options } = moduleOptions;
const { autoImport, importPT, importTheme, options, loadStyles } = moduleOptions;
const hasTheme = (importTheme || options?.theme) && !options?.unstyled;
nuxt.options.runtimeConfig.public.primevue = {
@ -84,6 +85,8 @@ export default defineNuxtModule<ModuleOptions>({
}
const styleContent = () => {
if (!loadStyles) return `export const styles = [], stylesToTop = [], themes = [];`;
const uniqueRegisteredStyles = Array.from(new Map(registeredStyles?.map((m: MetaType) => [m.name, m])).values());
return `
@ -102,11 +105,11 @@ const { options = {} } = config;
const stylesToTop = [${registered.injectStylesAsStringToTop.join('')}].join('');
const styleProps = {
${options?.csp?.nonce ? `nonce: ${options?.csp?.nonce}` : ''}
${options?.csp?.nonce ? `nonce: ${options?.csp?.nonce}` : ''}
}
const styles = [
${registered.injectStylesAsString.join('')},
${uniqueRegisteredStyles?.map((item: MetaType) => `${item.as} && ${item.as}.getStyleSheet ? ${item.as}.getStyleSheet(undefined, styleProps) : ''`).join(',')}
${registered.injectStylesAsString.join('')},
${uniqueRegisteredStyles?.map((item: MetaType) => `${item.as} && ${item.as}.getStyleSheet ? ${item.as}.getStyleSheet(undefined, styleProps) : ''`).join(',')}
].join('');
${hasTheme ? `Theme.setTheme(${importTheme?.as} || options?.theme)` : ''}

View file

@ -14,6 +14,7 @@ export interface ModuleOptions {
/*cssLayerOrder?: string;*/
importPT?: ImportOptions;
importTheme?: ImportOptions;
loadStyles?: boolean;
options?: PrimeVueOptions;
components?: ConstructsType;
directives?: ConstructsType;