angular-l10n
Version:
An Angular library to translate messages, dates and numbers
59 lines • 1.67 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable, Inject } from "@angular/core";
import { ReplaySubject } from "rxjs";
import { L10N_CONFIG } from "./l10n-config";
import { LogLevel, LOG_MESSAGES } from "./types";
export class Logger {
/**
* @param {?} configuration
*/
constructor(configuration) {
this.configuration = configuration;
Logger.level = this.configuration.logger.level || LogLevel.Off;
if (Logger.level != LogLevel.Off) {
Logger.buffer.subscribe((log) => {
this.send(log);
});
}
}
/**
* @param {?} name
* @param {?} message
* @return {?}
*/
static log(name, message) {
if (Logger.level == LogLevel.Off)
return;
Logger.buffer.next({ name: name, message: message });
}
/**
* @param {?} log
* @return {?}
*/
send(log) {
/** @type {?} */
const message = `angular-l10n (${log.name}): ${LOG_MESSAGES[log.message]}`;
((/** @type {?} */ (console)))[(/** @type {?} */ (Logger.level))](message);
}
}
Logger.level = null;
Logger.buffer = new ReplaySubject();
Logger.decorators = [
{ type: Injectable }
];
/** @nocollapse */
Logger.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [L10N_CONFIG,] }] }
];
if (false) {
/** @type {?} */
Logger.level;
/** @type {?} */
Logger.buffer;
/** @type {?} */
Logger.prototype.configuration;
}
//# sourceMappingURL=logger.js.map