All files / src/internal/client/dev console-log.js

78.78% Statements 26/33
60% Branches 3/5
100% Functions 1/1
76.66% Lines 23/30

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 312x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 4x     4x 4x 4x 4x 2x 2x           2x 2x 2x  
import { STATE_SYMBOL } from '../constants.js';
import { snapshot } from '../../shared/clone.js';
import * as w from '../warnings.js';
 
/**
 * @param {string} method
 * @param  {...any} objects
 */
export function log_if_contains_state(method, ...objects) {
	let has_state = false;
	const transformed = [];
 
	for (const obj of objects) {
		if (obj && typeof obj === 'object' && STATE_SYMBOL in obj) {
			transformed.push(snapshot(obj, true));
			has_state = true;
		} else {
			transformed.push(obj);
		}
	}
 
	if (has_state) {
		w.console_log_state(method);

		// eslint-disable-next-line no-console
		console.log('%c[snapshot]', 'color: grey', ...transformed);
	}
 
	return objects;
}