UNPKG

graphql-modules

Version:

Create reusable, maintainable, testable and extendable GraphQL modules

45 lines (44 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Key = void 0; const utils_1 = require("./utils"); const forward_ref_1 = require("./forward-ref"); class Key { constructor(token, id) { this.token = token; this.id = id; if (!token) { throw new Error('Token must be defined!'); } } /** * Returns a stringified token. */ get displayName() { return (0, utils_1.stringify)(this.token); } static get(token) { return _globalKeyRegistry.get((0, forward_ref_1.resolveForwardRef)(token)); } } exports.Key = Key; class GlobalKeyRegistry { constructor() { this._allKeys = new Map(); } get(token) { if (token instanceof Key) { return token; } if (this._allKeys.has(token)) { return this._allKeys.get(token); } const newKey = new Key(token, _globalKeyRegistry.numberOfKeys); this._allKeys.set(token, newKey); return newKey; } get numberOfKeys() { return this._allKeys.size; } } const _globalKeyRegistry = new GlobalKeyRegistry();