UNPKG

graphql-modules

Version:

Create reusable, maintainable, testable and extendable GraphQL modules

27 lines (26 loc) 759 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.forwardRef = forwardRef; exports.resolveForwardRef = resolveForwardRef; const utils_1 = require("./utils"); const forwardRefSymbol = Symbol('__forward_ref__'); /** * Useful in "circular dependencies of modules" situation */ function forwardRef(forwardRefFn) { forwardRefFn[forwardRefSymbol] = forwardRef; forwardRefFn.toString = function () { return (0, utils_1.stringify)(this()); }; return forwardRefFn; } function resolveForwardRef(type) { if (typeof type === 'function' && type.hasOwnProperty(forwardRefSymbol) && type[forwardRefSymbol] === forwardRef) { return type(); } else { return type; } }