blob: 76d6f75cccae6de0c53f5ff7df8326b7a342b5b9 [file] [log] [blame]
// @flow strict
import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
/**
* The `defineToJSON()` function defines toJSON() and inspect() prototype
* methods, if no function provided they become aliases for toString().
*/
export default function defineToJSON(
classObject: Class<any> | ((...args: Array<any>) => mixed),
fn?: () => mixed = classObject.prototype.toString,
): void {
classObject.prototype.toJSON = fn;
classObject.prototype.inspect = fn;
/* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */
if (nodejsCustomInspectSymbol) {
classObject.prototype[nodejsCustomInspectSymbol] = fn;
}
}