@public-ui/components
Version:
Contains all web components that belong to KoliBri - The accessible HTML-Standard.
121 lines (120 loc) • 4.14 kB
JavaScript
/*!
* KoliBri - The accessible HTML-Standard
*/
let WINDOW = null;
let DOCUMENT = null;
export const getWindow = () => {
if (WINDOW)
return WINDOW;
if (typeof window !== 'undefined')
return window;
return {};
};
export const setWindow = (value) => {
WINDOW = value;
};
export const getDocument = () => {
if (DOCUMENT)
return DOCUMENT;
const win = getWindow();
if (win && typeof win.document !== 'undefined')
return win.document;
return {};
};
export const setDocument = (value) => {
DOCUMENT = value;
};
const MODES = ['development', 'production', 'test'];
let runtimeMode = 'production';
export const setRuntimeMode = (mode) => {
try {
if (MODES.includes(mode)) {
runtimeMode = mode;
}
else {
throw new Error(`Invalid NODE_ENV value: ${mode}. Expected one of ${MODES.join(', ')}.`);
}
}
catch (_a) {
runtimeMode = 'production';
}
};
const getInitialMode = () => {
try {
const nodeEnv = typeof process !== 'undefined' && process.env ? process.env['NODE_ENV'] : undefined;
if (nodeEnv && MODES.includes(nodeEnv)) {
return nodeEnv;
}
}
catch (_a) {
}
return 'production';
};
setRuntimeMode(getInitialMode());
let EXPERIMENTAL_MODE = false;
let COLOR_CONTRAST_ANALYSIS = false;
export const isDevMode = () => runtimeMode === 'development';
export const isTestMode = () => runtimeMode === 'test';
export const isProdMode = () => runtimeMode === 'production';
export const getExperimentalMode = () => EXPERIMENTAL_MODE === true;
export const setExperimentalMode = (mode) => {
EXPERIMENTAL_MODE = mode === true;
};
export const getColorContrastAnalysis = () => COLOR_CONTRAST_ANALYSIS === true;
export const setColorContrastAnalysis = (mode) => {
COLOR_CONTRAST_ANALYSIS = mode === true;
};
const LOG_STYLE = 'color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000';
const mapToArray = (msg) => {
return Array.isArray(msg) ? msg : [msg];
};
const getLogLabel = (label) => {
return `%c${label}`;
};
const handleClassifier = (label, classifier) => {
if (typeof classifier === 'string' && classifier.length > 0) {
return `${getLogLabel(label)} | ${classifier}`;
}
else {
return getLogLabel(label);
}
};
const getShield = (label, options) => {
return [handleClassifier(label, options === null || options === void 0 ? void 0 : options.classifier), `${LOG_STYLE};${(options === null || options === void 0 ? void 0 : options.overwriteStyle) || ''}`];
};
const isDevModeOrForceLog = (forceLog) => isDevMode() || forceLog === true;
export class Logger {
constructor(label) {
this.label = label;
}
debug(msg, options) {
if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {
console.debug(...getShield(this.label, options), ...mapToArray(msg));
}
}
info(msg, options) {
if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {
console.info(...getShield(this.label, options), ...mapToArray(msg));
}
}
trace(msg, options) {
if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {
console.trace(...getShield(this.label, options), ...mapToArray(msg));
}
}
warn(msg, options) {
if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {
console.warn(...getShield(this.label, options), ...mapToArray(msg));
}
}
error(msg, options) {
console.error(...getShield(this.label, options), ...mapToArray(msg));
}
throw(msg, options) {
if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {
throw new Error(...getShield(this.label, options), ...mapToArray(msg));
}
}
}
export const Log = new Logger('KoliBri');
//# sourceMappingURL=dev.utils.js.map