createViteLogger() — astro Function Reference
Architecture documentation for the createViteLogger() function in vite.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 2f5773c1_0902_0334_e9b6_75f0aa1d213f["createViteLogger()"] 0f5f9214_1b3f_8bf1_41bd_715cbd410eb7["vite.ts"] 2f5773c1_0902_0334_e9b6_75f0aa1d213f -->|defined in| 0f5f9214_1b3f_8bf1_41bd_715cbd410eb7 f00a251a_7359_423c_ab3b_66c0b51d59c7["isAstroSrcFile()"] 2f5773c1_0902_0334_e9b6_75f0aa1d213f -->|calls| f00a251a_7359_423c_ab3b_66c0b51d59c7 style 2f5773c1_0902_0334_e9b6_75f0aa1d213f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/core/logger/vite.ts lines 27–110
export function createViteLogger(
astroLogger: AstroLogger,
viteLogLevel: LogLevel = 'info',
): ViteLogger {
const warnedMessages = new Set<string>();
const loggedErrors = new WeakSet<Error | Rollup.RollupError>();
const logger: ViteLogger = {
hasWarned: false,
info(msg) {
if (!isLogLevelEnabled(viteLogLevel, 'info')) return;
const stripped = stripVTControlCharacters(msg);
let m;
// Rewrite HMR page reload message
if ((m = vitePageReloadMsg.exec(stripped))) {
if (isAstroSrcFile(m[1])) return;
astroLogger.info('watch', m[1]);
}
// Rewrite HMR update message
else if ((m = viteHmrUpdateMsg.exec(stripped))) {
if (isAstroSrcFile(m[1])) return;
astroLogger.info('watch', m[1]);
}
// Don't log Vite build messages and shortcut titles
else if (viteBuildMsg.test(stripped) || viteShortcutTitleMsg.test(stripped)) {
// noop
}
// Log shortcuts help messages without indent
else if (viteShortcutHelpMsg.test(stripped)) {
const [, key, label] = viteShortcutHelpMsg.exec(stripped)! as string[];
astroLogger.info('SKIP_FORMAT', formatServerShortcuts({ key, label }));
}
// Fallback
else {
astroLogger.info('vite', msg);
}
},
warn(msg) {
if (!isLogLevelEnabled(viteLogLevel, 'warn')) return;
if (lightningcssUnsupportedPseudoMsg.test(msg)) return;
logger.hasWarned = true;
astroLogger.warn('vite', msg);
},
warnOnce(msg) {
if (!isLogLevelEnabled(viteLogLevel, 'warn')) return;
if (warnedMessages.has(msg)) return;
logger.hasWarned = true;
astroLogger.warn('vite', msg);
warnedMessages.add(msg);
},
error(msg, opts) {
if (!isLogLevelEnabled(viteLogLevel, 'error')) return;
logger.hasWarned = true;
const err = opts?.error;
if (err) loggedErrors.add(err);
// Astro errors are already logged by us, skip logging
if (err && isAstroError(err)) return;
// SSR module and pre-transform errors are always handled by us,
// send to debug logs
if (
msg.includes('Error when evaluating SSR module') ||
msg.includes('Pre-transform error:')
) {
astroLogger.debug('vite', msg);
return;
}
astroLogger.error('vite', msg);
},
// Don't allow clear screen
clearScreen: () => {},
hasErrorLogged(error) {
return loggedErrors.has(error);
},
};
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does createViteLogger() do?
createViteLogger() is a function in the astro codebase, defined in packages/astro/src/core/logger/vite.ts.
Where is createViteLogger() defined?
createViteLogger() is defined in packages/astro/src/core/logger/vite.ts at line 27.
What does createViteLogger() call?
createViteLogger() calls 1 function(s): isAstroSrcFile.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free