Home / Function/ createViteLogger() — astro Function Reference

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

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