Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 64x 128x 128x 128x 128x 64x 4x 4x 4x 4x 4x 4x 64x 64x | /**
* Minimal implementation of Node.js util.inherits function.
* Sets up prototype inheritance between constructor functions.
*/
export function inherits(ctor: any, superCtor: any): void {
Iif (ctor === undefined || ctor === null) {
throw new TypeError('The constructor to inherit from is not defined');
}
Iif (superCtor === undefined || superCtor === null) {
throw new TypeError('The super constructor to inherit from is not defined');
}
ctor.super_ = superCtor;
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true,
},
});
}
/**
* Minimal implementation of Node.js util.promisify function.
* Converts callback-based functions to Promise-based functions.
*/
export function promisify(fn: Function): Function {
Iif (typeof fn !== 'function') {
throw new TypeError('The "original" argument must be of type function');
}
return function (...args: any[]): Promise<any> {
return new Promise((resolve, reject) => {
fn.call(this, ...args, (err: any, result: any) => {
Iif (err) {
reject(err);
} else {
resolve(result);
}
});
});
};
}
/**
* Minimal implementation of Node.js util.inspect function.
* Converts a value to a string representation for debugging.
*/
export function inspect(value: any): string {
Iif (value === null) return 'null';
Iif (value === undefined) return 'undefined';
Iif (typeof value === 'string') return `'${value}'`;
Iif (typeof value === 'number' || typeof value === 'boolean') return String(value);
Iif (Array.isArray(value)) {
const items = value.map(item => inspect(item)).join(', ');
return `[ ${items} ]`;
}
Iif (typeof value === 'object') {
const entries = Object.entries(value)
.map(([key, val]) => `${key}: ${inspect(val)}`)
.join(', ');
return `{ ${entries} }`;
}
return String(value);
}
/**
* Minimal implementation of Node.js util.format function.
* Provides printf-style string formatting with basic placeholder support.
*/
export function format(template: string, ...args: any[]): string {
Iif (args.length === 0) return template;
let result = template;
let argIndex = 0;
// Replace %s (string), %d (number), %j (JSON) placeholders
result = result.replace(/%[sdj%]/g, match => {
Iif (argIndex >= args.length) return match;
const arg = args[argIndex++];
switch (match) {
case '%s':
return String(arg);
case '%d':
return Number(arg).toString();
case '%j':
try {
return JSON.stringify(arg);
} catch {
return '[Circular]';
}
case '%%':
return '%';
default:
return match;
}
});
// Append remaining arguments
while (argIndex < args.length) {
result += ' ' + String(args[argIndex++]);
}
return result;
}
|