Supra_App/src/lib/core/utils/vite-logger.ts
pakintada@gmail.com 3cda8aa60b fix: slow get recipe memo
- fix: cannot adb command from blocking suspicious cmd
- change: logging to logtape lib
- change: adb payload handler format to send payload size as header for exact match payload

Signed-off-by: pakintada@gmail.com <Pakin>
2026-07-01 17:08:46 +07:00

70 lines
1.8 KiB
TypeScript

/**
* Custom Vite logger that routes Vite's build/dev-server messages
* through our LogTape-powered logger for consistent formatting.
*
* Usage in vite.config.ts:
* import { createViteLogger } from './src/lib/core/utils/vite-logger';
* export default defineConfig({
* customLogger: createViteLogger(),
* // ...
* });
*/
import type { LogOptions, LogErrorOptions } from 'vite';
import type { Logger } from 'vite';
import { logger } from './logger';
export function createViteLogger(): Logger {
const warnedMessages = new Set<string>();
return {
get hasWarned() {
return warnedMessages.size > 0;
},
info(msg: string, options?: LogOptions) {
const prefix = options?.environment ? `[${options.environment}]` : '';
if (prefix) {
logger.info(`${prefix} ${msg}`);
} else if (options?.timestamp) {
logger.info(`[vite] ${msg}`);
} else {
logger.info(msg);
}
},
warn(msg: string, options?: LogOptions) {
warnedMessages.add(msg);
const prefix = options?.environment ? `[${options.environment}]` : '';
if (prefix) {
logger.warn(`${prefix} ${msg}`);
} else {
logger.warn(msg);
}
},
warnOnce(msg: string, options?: LogOptions) {
if (warnedMessages.has(msg)) return;
this.warn(msg, options);
},
error(msg: string, options?: LogErrorOptions) {
const prefix = options?.environment ? `[${options.environment}]` : '';
const err = options?.error;
const fullMsg = prefix ? `${prefix} ${msg}` : msg;
if (err && err instanceof Error) {
logger.error(fullMsg, err);
} else {
logger.error(fullMsg);
}
},
clearScreen() {
// Let Vite handle screen clearing itself
},
hasErrorLogged(_error: Error | import('rollup').RollupError): boolean {
// Don't keep error state — always re-report
return false;
},
};
}