1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-26 16:09:27 -05:00
denoland-deno/ext/node/polyfills/internal/hide_stack_frames.ts

20 lines
662 B
TypeScript
Raw Normal View History

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials
// deno-lint-ignore no-explicit-any
type GenericFunction = (...args: any[]) => any;
/** This function removes unnecessary frames from Node.js core errors. */
export function hideStackFrames<T extends GenericFunction = GenericFunction>(
fn: T,
): T {
// We rename the functions that will be hidden to cut off the stacktrace
// at the outermost one.
const hidden = "__node_internal_" + fn.name;
Object.defineProperty(fn, "name", { value: hidden });
return fn;
}