Binding logging functions to Object
This commit is contained in:
parent
cc5fc5ae08
commit
475b787612
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hibas123/logging",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.1",
|
||||
"description": "",
|
||||
"main": "out/index.js",
|
||||
"types": "out/index.d.ts",
|
||||
|
23
src/base.ts
23
src/base.ts
@ -34,7 +34,7 @@ export class LoggingBase {
|
||||
}
|
||||
|
||||
|
||||
private adapter: Adapter[] = [];
|
||||
private adapter = new Set<Adapter>();
|
||||
private adapter_init: Promise<void>[] = [];
|
||||
|
||||
private messageObservable = new Observable<Message>();
|
||||
@ -64,10 +64,9 @@ export class LoggingBase {
|
||||
opt = options;
|
||||
}
|
||||
|
||||
let config = {
|
||||
let config: LoggingBaseOptions = {
|
||||
name: undefined,
|
||||
console: true,
|
||||
files: true,
|
||||
...opt
|
||||
};
|
||||
|
||||
@ -81,13 +80,25 @@ export class LoggingBase {
|
||||
if (config.console) {
|
||||
this.addAdapter(new ConsoleAdapter());
|
||||
}
|
||||
|
||||
|
||||
//Binding function to this
|
||||
this.debug = this.debug.bind(this);
|
||||
this.log = this.log.bind(this);
|
||||
this.warn = this.warn.bind(this);
|
||||
this.warning = this.warning.bind(this);
|
||||
this.error = this.error.bind(this);
|
||||
this.errorMessage = this.errorMessage.bind(this);
|
||||
this.flush = this.flush.bind(this);
|
||||
}
|
||||
|
||||
addAdapter(adapter: Adapter) {
|
||||
this.adapter.push(adapter);
|
||||
if (!this.adapter.has(adapter)) {
|
||||
this.adapter.add(adapter);
|
||||
let prms = Promise.resolve(adapter.init(this.messageObservable.getPublicApi(), this._name));
|
||||
this.adapter_init.push(prms);
|
||||
}
|
||||
}
|
||||
|
||||
flush(sync: true): void;
|
||||
flush(sync: false): Promise<void>;
|
||||
@ -95,7 +106,9 @@ export class LoggingBase {
|
||||
if (sync) {
|
||||
this.adapter.forEach(elm => elm.flush(true));
|
||||
} else {
|
||||
return Promise.all(this.adapter.map(elm => elm.flush(false))).then(() => { });
|
||||
let adapters: (void | Promise<void>)[] = [];
|
||||
this.adapter.forEach(elm => adapters.push(elm.flush(false)));
|
||||
return Promise.all(adapters).then(() => { });
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user