@vlandoss/loggy 0.0.3 → 0.0.4-git-2ebd77c.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -47,7 +47,8 @@ var DEFAULT_FORMAT_OPTIONS = {
47
47
  colors: true,
48
48
  depth: 3,
49
49
  maxArrayLength: 50,
50
- breakLength: 80
50
+ breakLength: 80,
51
+ date: false
51
52
  };
52
53
  var DEFAULT_FORMATTERS = {
53
54
  o: (arg) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/loggy.ts","../src/const.ts"],"sourcesContent":["export * from \"./loggy\";\nexport * from \"./types\";\n","import util from \"node:util\";\nimport { type ConsolaInstance, createConsola } from \"consola\";\nimport { colors } from \"consola/utils\";\nimport createDebug from \"debug\";\nimport { DEFAULT_FORMAT_OPTIONS, DEFAULT_FORMATTERS } from \"./const\";\nimport type { AnyLogger, CreateOptions, LogFnOptions, LoggerOptions } from \"./types\";\n\nfunction isLogFnOptions(arg: unknown): arg is LogFnOptions {\n try {\n // @ts-expect-error\n return typeof arg.message === \"string\" && typeof arg.tag === \"string\";\n } catch {\n return false;\n }\n}\n\nexport class Loggy implements AnyLogger {\n #options: LoggerOptions;\n #debug: ReturnType<typeof createDebug>;\n #consola: ConsolaInstance;\n\n constructor(options: LoggerOptions) {\n this.#options = options;\n this.#debug = createDebug(`${options.namespace}:root`);\n this.#consola = createConsola({\n formatOptions: options.formatOptions,\n });\n }\n\n get namespace() {\n return this.#options.namespace;\n }\n\n debug(...args: unknown[]) {\n // @ts-expect-error - it really accepts this signature\n this.#debug(...args);\n }\n\n error(...args: unknown[]) {\n this.#consola.error(this.#format(...args));\n }\n\n info(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.info(this.#format(opts, ...args));\n }\n\n trace(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.trace(this.#format(opts, ...args));\n }\n\n warn(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.warn(this.#format(opts, ...args));\n }\n\n child(options: CreateOptions) {\n return new Loggy({\n ...this.#options,\n ...options,\n namespace: `${this.#options.namespace}:${options.namespace}`,\n });\n }\n\n start(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.start(this.#format(opts, ...args));\n }\n\n success(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.success(this.#format(opts, ...args));\n }\n\n subdebug(namespace: string) {\n return createDebug(`${this.#options.namespace}:${namespace}`);\n }\n\n #format(...args: unknown[]) {\n const [firstArg, ...restArgs] = args;\n\n const tag = isLogFnOptions(firstArg) ? firstArg.tag : this.#options.tag;\n const formattedArgs = isLogFnOptions(firstArg) ? [firstArg.message, ...restArgs] : args;\n\n if (typeof formattedArgs[0] !== \"string\") {\n formattedArgs.unshift(\"%O\");\n }\n\n const [message, ...replacements] = formattedArgs;\n let replacementIndex = -1;\n\n if (typeof message !== \"string\") {\n throw new TypeError(\"message must be a string\");\n }\n\n let formattedMessage = message\n .replace(\n /%([a-zA-Z%])/g, // matches %o, %O, %%, etc.\n (match: string, formatKey: string) => {\n if (formatKey === \"%\") {\n return \"%\";\n }\n\n replacementIndex++;\n\n const formatter = this.#options.formatters[formatKey];\n\n if (typeof formatter !== \"function\") {\n return match;\n }\n\n const replacement = replacements[replacementIndex];\n const formattedMatch = formatter(replacement);\n\n replacements.splice(replacementIndex, 1);\n replacementIndex--;\n\n return formattedMatch;\n },\n )\n .split(\"\\n\")\n .join(`\\n${\" \".repeat(2)}`);\n\n formattedMessage = !tag ? formattedMessage : `${colors.cyan(`[${tag}]`)} ${formattedMessage}`;\n\n return util.formatWithOptions(this.#options.formatOptions, formattedMessage, ...replacements);\n }\n}\n\nexport function createLoggy(options: CreateOptions) {\n return new Loggy({\n namespace: options.namespace,\n tag: options.tag,\n formatOptions: {\n ...DEFAULT_FORMAT_OPTIONS,\n ...options.formatOptions,\n },\n formatters: {\n ...DEFAULT_FORMATTERS,\n ...options.formatters,\n },\n });\n}\n","import util from \"node:util\";\nimport type { FormatOptions, Formatters } from \"./types\";\n\nexport const DEFAULT_FORMAT_OPTIONS: FormatOptions = {\n colors: true,\n depth: 3,\n maxArrayLength: 50,\n breakLength: 80,\n};\n\nexport const DEFAULT_FORMATTERS: Formatters = {\n o: (arg: unknown) => {\n return util\n .inspect(arg, DEFAULT_FORMAT_OPTIONS)\n .split(\"\\n\")\n .map((str) => str.trim())\n .join(\" \");\n },\n O: (arg: unknown) => {\n return util.inspect(arg, DEFAULT_FORMAT_OPTIONS);\n },\n};\n"],"mappings":"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","names":["import_node_util","util","createDebug","util"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/loggy.ts","../src/const.ts"],"sourcesContent":["export * from \"./loggy\";\nexport * from \"./types\";\n","import util from \"node:util\";\nimport { type ConsolaInstance, createConsola } from \"consola\";\nimport { colors } from \"consola/utils\";\nimport createDebug from \"debug\";\nimport { DEFAULT_FORMAT_OPTIONS, DEFAULT_FORMATTERS } from \"./const\";\nimport type { AnyLogger, CreateOptions, LogFnOptions, LoggerOptions } from \"./types\";\n\nfunction isLogFnOptions(arg: unknown): arg is LogFnOptions {\n try {\n // @ts-expect-error\n return typeof arg.message === \"string\" && typeof arg.tag === \"string\";\n } catch {\n return false;\n }\n}\n\nexport class Loggy implements AnyLogger {\n #options: LoggerOptions;\n #debug: ReturnType<typeof createDebug>;\n #consola: ConsolaInstance;\n\n constructor(options: LoggerOptions) {\n this.#options = options;\n this.#debug = createDebug(`${options.namespace}:root`);\n this.#consola = createConsola({\n formatOptions: options.formatOptions,\n });\n }\n\n get namespace() {\n return this.#options.namespace;\n }\n\n debug(...args: unknown[]) {\n // @ts-expect-error - it really accepts this signature\n this.#debug(...args);\n }\n\n error(...args: unknown[]) {\n this.#consola.error(this.#format(...args));\n }\n\n info(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.info(this.#format(opts, ...args));\n }\n\n trace(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.trace(this.#format(opts, ...args));\n }\n\n warn(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.warn(this.#format(opts, ...args));\n }\n\n child(options: CreateOptions) {\n return new Loggy({\n ...this.#options,\n ...options,\n namespace: `${this.#options.namespace}:${options.namespace}`,\n });\n }\n\n start(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.start(this.#format(opts, ...args));\n }\n\n success(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.success(this.#format(opts, ...args));\n }\n\n subdebug(namespace: string) {\n return createDebug(`${this.#options.namespace}:${namespace}`);\n }\n\n #format(...args: unknown[]) {\n const [firstArg, ...restArgs] = args;\n\n const tag = isLogFnOptions(firstArg) ? firstArg.tag : this.#options.tag;\n const formattedArgs = isLogFnOptions(firstArg) ? [firstArg.message, ...restArgs] : args;\n\n if (typeof formattedArgs[0] !== \"string\") {\n formattedArgs.unshift(\"%O\");\n }\n\n const [message, ...replacements] = formattedArgs;\n let replacementIndex = -1;\n\n if (typeof message !== \"string\") {\n throw new TypeError(\"message must be a string\");\n }\n\n let formattedMessage = message\n .replace(\n /%([a-zA-Z%])/g, // matches %o, %O, %%, etc.\n (match: string, formatKey: string) => {\n if (formatKey === \"%\") {\n return \"%\";\n }\n\n replacementIndex++;\n\n const formatter = this.#options.formatters[formatKey];\n\n if (typeof formatter !== \"function\") {\n return match;\n }\n\n const replacement = replacements[replacementIndex];\n const formattedMatch = formatter(replacement);\n\n replacements.splice(replacementIndex, 1);\n replacementIndex--;\n\n return formattedMatch;\n },\n )\n .split(\"\\n\")\n .join(`\\n${\" \".repeat(2)}`);\n\n formattedMessage = !tag ? formattedMessage : `${colors.cyan(`[${tag}]`)} ${formattedMessage}`;\n\n return util.formatWithOptions(this.#options.formatOptions, formattedMessage, ...replacements);\n }\n}\n\nexport function createLoggy(options: CreateOptions) {\n return new Loggy({\n namespace: options.namespace,\n tag: options.tag,\n formatOptions: {\n ...DEFAULT_FORMAT_OPTIONS,\n ...options.formatOptions,\n },\n formatters: {\n ...DEFAULT_FORMATTERS,\n ...options.formatters,\n },\n });\n}\n","import util from \"node:util\";\nimport type { FormatOptions, Formatters } from \"./types\";\n\nexport const DEFAULT_FORMAT_OPTIONS: FormatOptions = {\n colors: true,\n depth: 3,\n maxArrayLength: 50,\n breakLength: 80,\n date: false,\n};\n\nexport const DEFAULT_FORMATTERS: Formatters = {\n o: (arg: unknown) => {\n return util\n .inspect(arg, DEFAULT_FORMAT_OPTIONS)\n .split(\"\\n\")\n .map((str) => str.trim())\n .join(\" \");\n },\n O: (arg: unknown) => {\n return util.inspect(arg, DEFAULT_FORMAT_OPTIONS);\n },\n};\n"],"mappings":"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","names":["import_node_util","util","createDebug","util"]}
package/dist/index.js CHANGED
@@ -1,16 +1,17 @@
1
1
  // src/loggy.ts
2
- import util2 from "node:util";
2
+ import util2 from "util";
3
3
  import { createConsola } from "consola";
4
4
  import { colors } from "consola/utils";
5
5
  import createDebug from "debug";
6
6
 
7
7
  // src/const.ts
8
- import util from "node:util";
8
+ import util from "util";
9
9
  var DEFAULT_FORMAT_OPTIONS = {
10
10
  colors: true,
11
11
  depth: 3,
12
12
  maxArrayLength: 50,
13
- breakLength: 80
13
+ breakLength: 80,
14
+ date: false
14
15
  };
15
16
  var DEFAULT_FORMATTERS = {
16
17
  o: (arg) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loggy.ts","../src/const.ts"],"sourcesContent":["import util from \"node:util\";\nimport { type ConsolaInstance, createConsola } from \"consola\";\nimport { colors } from \"consola/utils\";\nimport createDebug from \"debug\";\nimport { DEFAULT_FORMAT_OPTIONS, DEFAULT_FORMATTERS } from \"./const\";\nimport type { AnyLogger, CreateOptions, LogFnOptions, LoggerOptions } from \"./types\";\n\nfunction isLogFnOptions(arg: unknown): arg is LogFnOptions {\n try {\n // @ts-expect-error\n return typeof arg.message === \"string\" && typeof arg.tag === \"string\";\n } catch {\n return false;\n }\n}\n\nexport class Loggy implements AnyLogger {\n #options: LoggerOptions;\n #debug: ReturnType<typeof createDebug>;\n #consola: ConsolaInstance;\n\n constructor(options: LoggerOptions) {\n this.#options = options;\n this.#debug = createDebug(`${options.namespace}:root`);\n this.#consola = createConsola({\n formatOptions: options.formatOptions,\n });\n }\n\n get namespace() {\n return this.#options.namespace;\n }\n\n debug(...args: unknown[]) {\n // @ts-expect-error - it really accepts this signature\n this.#debug(...args);\n }\n\n error(...args: unknown[]) {\n this.#consola.error(this.#format(...args));\n }\n\n info(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.info(this.#format(opts, ...args));\n }\n\n trace(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.trace(this.#format(opts, ...args));\n }\n\n warn(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.warn(this.#format(opts, ...args));\n }\n\n child(options: CreateOptions) {\n return new Loggy({\n ...this.#options,\n ...options,\n namespace: `${this.#options.namespace}:${options.namespace}`,\n });\n }\n\n start(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.start(this.#format(opts, ...args));\n }\n\n success(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.success(this.#format(opts, ...args));\n }\n\n subdebug(namespace: string) {\n return createDebug(`${this.#options.namespace}:${namespace}`);\n }\n\n #format(...args: unknown[]) {\n const [firstArg, ...restArgs] = args;\n\n const tag = isLogFnOptions(firstArg) ? firstArg.tag : this.#options.tag;\n const formattedArgs = isLogFnOptions(firstArg) ? [firstArg.message, ...restArgs] : args;\n\n if (typeof formattedArgs[0] !== \"string\") {\n formattedArgs.unshift(\"%O\");\n }\n\n const [message, ...replacements] = formattedArgs;\n let replacementIndex = -1;\n\n if (typeof message !== \"string\") {\n throw new TypeError(\"message must be a string\");\n }\n\n let formattedMessage = message\n .replace(\n /%([a-zA-Z%])/g, // matches %o, %O, %%, etc.\n (match: string, formatKey: string) => {\n if (formatKey === \"%\") {\n return \"%\";\n }\n\n replacementIndex++;\n\n const formatter = this.#options.formatters[formatKey];\n\n if (typeof formatter !== \"function\") {\n return match;\n }\n\n const replacement = replacements[replacementIndex];\n const formattedMatch = formatter(replacement);\n\n replacements.splice(replacementIndex, 1);\n replacementIndex--;\n\n return formattedMatch;\n },\n )\n .split(\"\\n\")\n .join(`\\n${\" \".repeat(2)}`);\n\n formattedMessage = !tag ? formattedMessage : `${colors.cyan(`[${tag}]`)} ${formattedMessage}`;\n\n return util.formatWithOptions(this.#options.formatOptions, formattedMessage, ...replacements);\n }\n}\n\nexport function createLoggy(options: CreateOptions) {\n return new Loggy({\n namespace: options.namespace,\n tag: options.tag,\n formatOptions: {\n ...DEFAULT_FORMAT_OPTIONS,\n ...options.formatOptions,\n },\n formatters: {\n ...DEFAULT_FORMATTERS,\n ...options.formatters,\n },\n });\n}\n","import util from \"node:util\";\nimport type { FormatOptions, Formatters } from \"./types\";\n\nexport const DEFAULT_FORMAT_OPTIONS: FormatOptions = {\n colors: true,\n depth: 3,\n maxArrayLength: 50,\n breakLength: 80,\n};\n\nexport const DEFAULT_FORMATTERS: Formatters = {\n o: (arg: unknown) => {\n return util\n .inspect(arg, DEFAULT_FORMAT_OPTIONS)\n .split(\"\\n\")\n .map((str) => str.trim())\n .join(\" \");\n },\n O: (arg: unknown) => {\n return util.inspect(arg, DEFAULT_FORMAT_OPTIONS);\n },\n};\n"],"mappings":"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","names":["util","util"]}
1
+ {"version":3,"sources":["../src/loggy.ts","../src/const.ts"],"sourcesContent":["import util from \"node:util\";\nimport { type ConsolaInstance, createConsola } from \"consola\";\nimport { colors } from \"consola/utils\";\nimport createDebug from \"debug\";\nimport { DEFAULT_FORMAT_OPTIONS, DEFAULT_FORMATTERS } from \"./const\";\nimport type { AnyLogger, CreateOptions, LogFnOptions, LoggerOptions } from \"./types\";\n\nfunction isLogFnOptions(arg: unknown): arg is LogFnOptions {\n try {\n // @ts-expect-error\n return typeof arg.message === \"string\" && typeof arg.tag === \"string\";\n } catch {\n return false;\n }\n}\n\nexport class Loggy implements AnyLogger {\n #options: LoggerOptions;\n #debug: ReturnType<typeof createDebug>;\n #consola: ConsolaInstance;\n\n constructor(options: LoggerOptions) {\n this.#options = options;\n this.#debug = createDebug(`${options.namespace}:root`);\n this.#consola = createConsola({\n formatOptions: options.formatOptions,\n });\n }\n\n get namespace() {\n return this.#options.namespace;\n }\n\n debug(...args: unknown[]) {\n // @ts-expect-error - it really accepts this signature\n this.#debug(...args);\n }\n\n error(...args: unknown[]) {\n this.#consola.error(this.#format(...args));\n }\n\n info(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.info(this.#format(opts, ...args));\n }\n\n trace(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.trace(this.#format(opts, ...args));\n }\n\n warn(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.warn(this.#format(opts, ...args));\n }\n\n child(options: CreateOptions) {\n return new Loggy({\n ...this.#options,\n ...options,\n namespace: `${this.#options.namespace}:${options.namespace}`,\n });\n }\n\n start(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.start(this.#format(opts, ...args));\n }\n\n success(opts: LogFnOptions | unknown, ...args: unknown[]) {\n this.#consola.success(this.#format(opts, ...args));\n }\n\n subdebug(namespace: string) {\n return createDebug(`${this.#options.namespace}:${namespace}`);\n }\n\n #format(...args: unknown[]) {\n const [firstArg, ...restArgs] = args;\n\n const tag = isLogFnOptions(firstArg) ? firstArg.tag : this.#options.tag;\n const formattedArgs = isLogFnOptions(firstArg) ? [firstArg.message, ...restArgs] : args;\n\n if (typeof formattedArgs[0] !== \"string\") {\n formattedArgs.unshift(\"%O\");\n }\n\n const [message, ...replacements] = formattedArgs;\n let replacementIndex = -1;\n\n if (typeof message !== \"string\") {\n throw new TypeError(\"message must be a string\");\n }\n\n let formattedMessage = message\n .replace(\n /%([a-zA-Z%])/g, // matches %o, %O, %%, etc.\n (match: string, formatKey: string) => {\n if (formatKey === \"%\") {\n return \"%\";\n }\n\n replacementIndex++;\n\n const formatter = this.#options.formatters[formatKey];\n\n if (typeof formatter !== \"function\") {\n return match;\n }\n\n const replacement = replacements[replacementIndex];\n const formattedMatch = formatter(replacement);\n\n replacements.splice(replacementIndex, 1);\n replacementIndex--;\n\n return formattedMatch;\n },\n )\n .split(\"\\n\")\n .join(`\\n${\" \".repeat(2)}`);\n\n formattedMessage = !tag ? formattedMessage : `${colors.cyan(`[${tag}]`)} ${formattedMessage}`;\n\n return util.formatWithOptions(this.#options.formatOptions, formattedMessage, ...replacements);\n }\n}\n\nexport function createLoggy(options: CreateOptions) {\n return new Loggy({\n namespace: options.namespace,\n tag: options.tag,\n formatOptions: {\n ...DEFAULT_FORMAT_OPTIONS,\n ...options.formatOptions,\n },\n formatters: {\n ...DEFAULT_FORMATTERS,\n ...options.formatters,\n },\n });\n}\n","import util from \"node:util\";\nimport type { FormatOptions, Formatters } from \"./types\";\n\nexport const DEFAULT_FORMAT_OPTIONS: FormatOptions = {\n colors: true,\n depth: 3,\n maxArrayLength: 50,\n breakLength: 80,\n date: false,\n};\n\nexport const DEFAULT_FORMATTERS: Formatters = {\n o: (arg: unknown) => {\n return util\n .inspect(arg, DEFAULT_FORMAT_OPTIONS)\n .split(\"\\n\")\n .map((str) => str.trim())\n .join(\" \");\n },\n O: (arg: unknown) => {\n return util.inspect(arg, DEFAULT_FORMAT_OPTIONS);\n },\n};\n"],"mappings":"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","names":["util","util"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vlandoss/loggy",
3
- "version": "0.0.3",
3
+ "version": "0.0.4-git-2ebd77c.0",
4
4
  "description": "Console wrapper to make logging fun again",
5
5
  "homepage": "https://github.com/variableland/dx/tree/main/packages/loggy#readme",
6
6
  "bugs": {
package/src/const.ts CHANGED
@@ -6,6 +6,7 @@ export const DEFAULT_FORMAT_OPTIONS: FormatOptions = {
6
6
  depth: 3,
7
7
  maxArrayLength: 50,
8
8
  breakLength: 80,
9
+ date: false,
9
10
  };
10
11
 
11
12
  export const DEFAULT_FORMATTERS: Formatters = {