UNPKG

lisk-framework

Version:

Lisk blockchain application platform

28 lines 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEndpointPath = exports.mergeEndpointHandlers = exports.getEndpointHandlers = exports.isReservedEndpointFunction = void 0; const reservedEndpointName = ['constructor', 'init', 'addDependencies']; const isReservedEndpointFunction = (key) => key.startsWith('_') || reservedEndpointName.includes(key); exports.isReservedEndpointFunction = isReservedEndpointFunction; const getEndpointHandlers = (endpoint) => { const endpointHandlers = new Map(); let isBaseEndpoint; let localEndpoint = endpoint; do { for (const key of Object.getOwnPropertyNames(localEndpoint)) { const val = localEndpoint[key]; if (!(0, exports.isReservedEndpointFunction)(key) && typeof val === 'function') { endpointHandlers.set(key, val.bind(endpoint)); } } localEndpoint = Object.getPrototypeOf(localEndpoint); isBaseEndpoint = localEndpoint.constructor.name === Object.name; } while (!isBaseEndpoint); return endpointHandlers; }; exports.getEndpointHandlers = getEndpointHandlers; const mergeEndpointHandlers = (...handlers) => handlers.reduce((prev, curr) => new Map([...prev, ...curr]), new Map()); exports.mergeEndpointHandlers = mergeEndpointHandlers; const getEndpointPath = (namespace, method) => `${namespace}_${method}`; exports.getEndpointPath = getEndpointPath; //# sourceMappingURL=endpoint.js.map