From ba274c752269cc718e2d623d29974ba22f75d4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Gonz=C3=A1lez=20V=C3=A1zquez?= Date: Mon, 20 Nov 2023 16:10:42 +0100 Subject: [PATCH] chore(modifiers): Change modifiers api and make modifiers execute in every log --- README.md | 4 ++-- lib/modifiers.js | 6 ++++++ lib/rubiks.js | 23 ++++++++++++++++++++++- package.json | 2 +- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9635fa4..0f62041 100644 --- a/README.md +++ b/README.md @@ -35,13 +35,13 @@ or your own modifiers... import { rubiks } from "rubiks"; function customModifier(self) { - self.format = `my content: ${self.format}` + return `my content: ${self.format}, and the current level is ${self.level}` } rubiks() .use(customModifier) .log("testing") - .log("more") + .error("more") ``` diff --git a/lib/modifiers.js b/lib/modifiers.js index 6877158..c089f1d 100644 --- a/lib/modifiers.js +++ b/lib/modifiers.js @@ -42,6 +42,8 @@ export function nerdIcons( if (options.info) { self.prefixes.info = self.noColor ? "īš " : "\x1b[34mīš\x1b[0m "; } + + return self.format; }; } @@ -56,6 +58,8 @@ export function withDates(self) { self.prefixes.all = `${self.prefixes.all || ""}${ self.noColor ? "" : "\x1b[90m" }[${date.toLocaleDateString()} ${date.toLocaleTimeString()}]\x1b[0m `; + + return self.format; } /** @@ -64,4 +68,6 @@ export function withDates(self) { */ export function noColor(self) { self.noColor = true; + + return self.format; } diff --git a/lib/rubiks.js b/lib/rubiks.js index 5e2df5f..92dd914 100644 --- a/lib/rubiks.js +++ b/lib/rubiks.js @@ -40,6 +40,11 @@ export class Rubiks { */ noColor = false; + /** + * @type {import("./modifiers").Modifier[]} + */ + modifiers = []; + constructor() { if (process) { this.noColor = process?.env?.NO_COLOR !== undefined ? true : false; @@ -53,7 +58,8 @@ export class Rubiks { * @param {import("./modifiers").Modifier} modifier */ use(modifier) { - modifier(this); + this.format = modifier(this); + this.modifiers.push(modifier); return this; } @@ -64,6 +70,9 @@ export class Rubiks { * @returns {Rubiks} This instance. */ log(content, level = log) { + for (const modifier of this.modifiers) { + modifier(this); + } level(this, this.format.replace("%s", content)); return this; } @@ -74,6 +83,9 @@ export class Rubiks { * @returns {Rubiks} This instance. */ warn(content) { + for (const modifier of this.modifiers) { + modifier(this); + } warn(this, this.format.replace("%s", content)); return this; } @@ -84,6 +96,9 @@ export class Rubiks { * @returns {Rubiks} This instance. */ error(content) { + for (const modifier of this.modifiers) { + modifier(this); + } error(this, this.format.replace("%s", content)); return this; } @@ -94,6 +109,9 @@ export class Rubiks { * @returns {Rubiks} This instance. */ success(content) { + for (const modifier of this.modifiers) { + modifier(this); + } success(this, this.format.replace("%s", content)); return this; } @@ -104,6 +122,9 @@ export class Rubiks { * @returns {Rubiks} This instance. */ info(content) { + for (const modifier of this.modifiers) { + modifier(this); + } info(this, this.format.replace("%s", content)); return this; } diff --git a/package.json b/package.json index 221e325..a668c1e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "rubiks", - "version": "0.6.0", + "version": "0.7.0", "type": "module", "description": "Rubiks is a 0 dependency extendable logging library for modern applications.", "main": "./lib/index.js",