@ngworker/lumberjack
Version:
Lumberjack is a versatile Angular logging library, specifically designed to be extended and customized
53 lines • 5.98 kB
JavaScript
/**
* Builder for a log with the specified log level and message.
*
* Use this to create a log before passing it to `LumberjackService`.
*/
export class LumberjackLogBuilder {
#payload;
#scope;
#time;
#level;
#message;
/**
* Create a log builder with the specified log level and message.
*
* @param time Pass the `LumberjackTimeService`. Used for timestamping the log.
* @param level The log level.
* @param message The log message.
*/
constructor(time, level, message) {
this.#time = time;
this.#level = level;
this.#message = message;
}
/**
* Create a log with the specified properties and timestamp it.
*
* @param payloadArg Optional dynamic payload.
*/
build(...payloadArg) {
return {
level: this.#level,
message: this.#message,
scope: this.#scope,
createdAt: this.#time.getUnixEpochTicks(),
payload: (payloadArg[0] ?? this.#payload),
};
}
/**
* Optionally add a static payload to the log.
*/
withPayload(...payloadArg) {
this.#payload = payloadArg[0];
return this;
}
/**
* Add a scope to the log.
*/
withScope(scope) {
this.#scope = scope;
return this;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVtYmVyamFjay1sb2cuYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nd29ya2VyL2x1bWJlcmphY2svc3JjL2xpYi9sb2dnaW5nL2x1bWJlcmphY2stbG9nLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0E7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsUUFBUSxDQUFZO0lBQ3BCLE1BQU0sQ0FBVTtJQUNQLEtBQUssQ0FBd0I7SUFDN0IsTUFBTSxDQUFxQjtJQUMzQixRQUFRLENBQVM7SUFFMUI7Ozs7OztPQU1HO0lBQ0gsWUFBWSxJQUEyQixFQUFFLEtBQXlCLEVBQUUsT0FBZTtRQUNqRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FDSCxHQUFHLFVBQThGO1FBRWpHLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3RCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBaUQ7U0FDMUYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FDVCxHQUFHLFVBQXlEO1FBRTVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBYSxDQUFDO1FBRTFDLE9BQU8sSUFBa0UsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEx1bWJlcmphY2tMb2dMZXZlbCB9IGZyb20gJy4uL2xvZ3MvbHVtYmVyamFjay1sb2ctbGV2ZWwnO1xuaW1wb3J0IHsgTHVtYmVyamFja0xvZ1BheWxvYWQgfSBmcm9tICcuLi9sb2dzL2x1bWJlcmphY2stbG9nLXBheWxvYWQnO1xuaW1wb3J0IHsgTHVtYmVyamFja0xvZyB9IGZyb20gJy4uL2xvZ3MvbHVtYmVyamFjay5sb2cnO1xuaW1wb3J0IHsgTHVtYmVyamFja1RpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGltZS9sdW1iZXJqYWNrLXRpbWUuc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGdlbmVyaWMgcGFyYW1ldGVyIG9mIGBMdW1iZXJqYWNrTG9nQnVpbGRlcmAgaXMgZXZhbHVhdGVkIHRvIHRoaXMgdHlwZVxuICogd2hlbiB0aGUgYEx1bWJlcmphY2tMb2dCdWlsZGVyI3dpdGhQYXlsb2FkYCBtZXRob2QgaXMgdXNlZC5cbiAqL1xudHlwZSBJbnRlcm5hbFdpdGhTdGF0aWNQYXlsb2FkID0gJ19fTFVNQkVSSkFDS19JTlRFUk5BTF9XSVRIX1NUQVRJQ19QQVlMT0FEX18nICYgTHVtYmVyamFja0xvZ1BheWxvYWQ7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgYSBsb2cgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZyBsZXZlbCBhbmQgbWVzc2FnZS5cbiAqXG4gKiBVc2UgdGhpcyB0byBjcmVhdGUgYSBsb2cgYmVmb3JlIHBhc3NpbmcgaXQgdG8gYEx1bWJlcmphY2tTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEx1bWJlcmphY2tMb2dCdWlsZGVyPFRQYXlsb2FkIGV4dGVuZHMgTHVtYmVyamFja0xvZ1BheWxvYWQgfCB2b2lkID0gdm9pZD4ge1xuICAjcGF5bG9hZD86IFRQYXlsb2FkO1xuICAjc2NvcGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5ICN0aW1lOiBMdW1iZXJqYWNrVGltZVNlcnZpY2U7XG4gIHJlYWRvbmx5ICNsZXZlbDogTHVtYmVyamFja0xvZ0xldmVsO1xuICByZWFkb25seSAjbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBsb2cgYnVpbGRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbG9nIGxldmVsIGFuZCBtZXNzYWdlLlxuICAgKlxuICAgKiBAcGFyYW0gdGltZSBQYXNzIHRoZSBgTHVtYmVyamFja1RpbWVTZXJ2aWNlYC4gVXNlZCBmb3IgdGltZXN0YW1waW5nIHRoZSBsb2cuXG4gICAqIEBwYXJhbSBsZXZlbCBUaGUgbG9nIGxldmVsLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbG9nIG1lc3NhZ2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0aW1lOiBMdW1iZXJqYWNrVGltZVNlcnZpY2UsIGxldmVsOiBMdW1iZXJqYWNrTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuI3RpbWUgPSB0aW1lO1xuICAgIHRoaXMuI2xldmVsID0gbGV2ZWw7XG4gICAgdGhpcy4jbWVzc2FnZSA9IG1lc3NhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbG9nIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0aWVzIGFuZCB0aW1lc3RhbXAgaXQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXlsb2FkQXJnIE9wdGlvbmFsIGR5bmFtaWMgcGF5bG9hZC5cbiAgICovXG4gIGJ1aWxkKFxuICAgIC4uLnBheWxvYWRBcmc6IEV4dHJhY3Q8VFBheWxvYWQsIEludGVybmFsV2l0aFN0YXRpY1BheWxvYWQ+IGV4dGVuZHMgbmV2ZXIgPyBbVFBheWxvYWRdIDogW25ldmVyP11cbiAgKTogTHVtYmVyamFja0xvZzxFeGNsdWRlPFRQYXlsb2FkLCBJbnRlcm5hbFdpdGhTdGF0aWNQYXlsb2FkPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBsZXZlbDogdGhpcy4jbGV2ZWwsXG4gICAgICBtZXNzYWdlOiB0aGlzLiNtZXNzYWdlLFxuICAgICAgc2NvcGU6IHRoaXMuI3Njb3BlLFxuICAgICAgY3JlYXRlZEF0OiB0aGlzLiN0aW1lLmdldFVuaXhFcG9jaFRpY2tzKCksXG4gICAgICBwYXlsb2FkOiAocGF5bG9hZEFyZ1swXSA/PyB0aGlzLiNwYXlsb2FkKSBhcyBFeGNsdWRlPFRQYXlsb2FkLCBJbnRlcm5hbFdpdGhTdGF0aWNQYXlsb2FkPixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgYWRkIGEgc3RhdGljIHBheWxvYWQgdG8gdGhlIGxvZy5cbiAgICovXG4gIHdpdGhQYXlsb2FkKFxuICAgIC4uLnBheWxvYWRBcmc6IFRQYXlsb2FkIGV4dGVuZHMgdm9pZCA/IFtuZXZlcj9dIDogW1RQYXlsb2FkXVxuICApOiBMdW1iZXJqYWNrTG9nQnVpbGRlcjxJbnRlcm5hbFdpdGhTdGF0aWNQYXlsb2FkIHwgVFBheWxvYWQ+IHtcbiAgICB0aGlzLiNwYXlsb2FkID0gcGF5bG9hZEFyZ1swXSBhcyBUUGF5bG9hZDtcblxuICAgIHJldHVybiB0aGlzIGFzIEx1bWJlcmphY2tMb2dCdWlsZGVyPEludGVybmFsV2l0aFN0YXRpY1BheWxvYWQgfCBUUGF5bG9hZD47XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2NvcGUgdG8gdGhlIGxvZy5cbiAgICovXG4gIHdpdGhTY29wZShzY29wZTogc3RyaW5nKTogTHVtYmVyamFja0xvZ0J1aWxkZXI8VFBheWxvYWQ+IHtcbiAgICB0aGlzLiNzY29wZSA9IHNjb3BlO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==