New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@socketsecurity/registry

Package Overview
Dependencies
Maintainers
0
Versions
131
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@socketsecurity/registry - npm Package Compare versions

Comparing version

to
1.0.101

46

lib/logger.d.ts

@@ -0,1 +1,9 @@

/// <reference types="node" />
import { Console, ConsoleConstructorOptions } from 'node:console'
declare type LoggerMethods = {
[K in keyof Console]: Console[K] extends (...args: infer A) => any
? (...args: A) => Logger
: Console[K]
}
declare namespace LoggerModule {

@@ -8,10 +16,36 @@ export type LogSymbols = {

}
export class Logger {
export interface Task {
run<T>(f: () => T): T
}
export class Logger extends Console {
static get LOG_SYMBOLS(): LogSymbols
constructor()
error(...args: any[]): Logger
info(...args: any[]): Logger
log(...args: any[]): Logger
new(
stdout: NodeJS.WritableStream,
stderr?: NodeJS.WritableStream,
ignoreErrors?: boolean
): Logger
new(options: ConsoleConstructorOptions): Logger
assert: LoggerMethods['assert']
clear: LoggerMethods['clear']
count: LoggerMethods['count']
countReset: LoggerMethods['countReset']
createTask(name: string): Task
debug: LoggerMethods['debug']
dir: LoggerMethods['dir']
dirxml: LoggerMethods['dirxml']
error: LoggerMethods['error']
group: LoggerMethods['group']
groupCollapsed: LoggerMethods['groupCollapsed']
groupEnd: LoggerMethods['groupEnd']
info: LoggerMethods['info']
log: LoggerMethods['log']
profile: LoggerMethods['profile']
profileEnd: LoggerMethods['profileEnd']
success(...args: any[]): Logger
warn(...args: any[]): Logger
table: LoggerMethods['table']
time: LoggerMethods['time']
timeEnd: LoggerMethods['timeEnd']
timeLog: LoggerMethods['timeLog']
trace: LoggerMethods['trace']
warn: LoggerMethods['warn']
}

@@ -18,0 +52,0 @@ export const logger: Logger

'use strict'
const { construct: ReflectConstruct } = Reflect
let _Console
function constructConsole(args) {
if (_Console === undefined) {
// Use non-'node:' prefixed require to avoid Webpack errors.
// eslint-disable-next-line n/prefer-node-protocol
_Console = require('console').Console
}
return ReflectConstruct(_Console, args)
}
let _yoctocolors

@@ -11,3 +23,15 @@ function getYoctocolors() {

const symbolTypeToMethodName = {
error: 'error',
info: 'info',
success: 'log',
warning: 'warn'
}
const privateConsole = new WeakMap()
class Logger {
constructor(...args) {
privateConsole.set(this, args.length ? constructConsole(args) : console)
}
#symbolApply(symbolType, args) {

@@ -22,5 +46,7 @@ let extras

}
console.log(`${Logger.LOG_SYMBOLS[symbolType]} ${text}`)
const methodName = symbolTypeToMethodName[symbolType]
const console = privateConsole.get(this)
console[methodName](`${Logger.LOG_SYMBOLS[symbolType]} ${text}`)
if (extras.length) {
console.log(...extras)
console[methodName](...extras)
}

@@ -53,7 +79,2 @@ return this

log(...args) {
console.log(...args)
return this
}
success(...args) {

@@ -68,2 +89,30 @@ return this.#symbolApply('success', args)

const mixinKeys = []
for (const { 0: key, 1: value } of Object.entries(console)) {
if (!Logger.prototype[key] && typeof value === 'function') {
mixinKeys.push(key)
}
}
if (mixinKeys.length) {
Object.defineProperties(
Logger.prototype,
Object.fromEntries(
mixinKeys.map(key => [
key,
{
__proto__: null,
configurable: true,
value: function (...args) {
const console = privateConsole.get(this)
const result = console[key](...args)
return result === undefined ? this : result
},
writable: true
}
])
)
)
}
const logger = new Logger()

@@ -70,0 +119,0 @@

2

package.json
{
"name": "@socketsecurity/registry",
"version": "1.0.100",
"version": "1.0.101",
"license": "MIT",

@@ -5,0 +5,0 @@ "description": "Socket.dev registry helpers methods and metadata",