util y structuredClone en JavaScript
promisify para API de callbacks, y una copia profunda que maneja ciclos.
import { inspect, promisify } from "node:util";
function legacy(value, callback) {
if (value < 0) return callback(new Error("negative"));
return callback(null, value * 2);
}
const modern = promisify(legacy);
console.log(await modern(21));
console.log(await modern(-1).catch((error) => error.message));
const original = { when: new Date(0), tags: new Set(["a"]) };
original.self = original;
const copy = structuredClone(original);
console.log(copy.self === copy, copy.tags.has("a"), copy.when.getTime());
console.log(inspect({ nested: { deep: [1, 2] } }, { depth: 0 }));
Cómo funciona
promisifyconvierte una función con callback de error primero.structuredClonecopia Maps, Sets, Dates y ciclos.util.inspectes lo que console.log usa por debajo.
Palabras clave y builtins usados aquí
DateSetawaitcatchconstfromfunctionifimportreturn
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 573
- Tokens
- 179
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 102 segundos.
Paso 2 de 3 en El proceso; paso 8 de 18 en Node.js.