UNPKG

@sprucelabs/mercury-client

Version:

The simple way to interact with the Spruce Experience Platform

48 lines (47 loc) 1.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils"); const MercurySocketIoClient_1 = __importDefault(require("./MercurySocketIoClient")); class MutableContractClient extends MercurySocketIoClient_1.default { static mixinContract(contract) { this.inMemoryContract = spruce_event_utils_1.eventContractUtil.unifyContracts([ this.inMemoryContract ?? { eventSignatures: {} }, contract, ]); } mixinContract(contract) { MutableContractClient.mixinContract(contract); } static reset() { this.inMemoryContract = { eventSignatures: {}, }; } doesHandleEvent(eventName) { try { this.getEventSignatureByName(eventName); return true; } catch { return false; } } getEventSignatureByName(eventName) { try { const sig = this.eventContract || MutableContractClient.inMemoryContract ? spruce_event_utils_1.eventContractUtil.getSignatureByName(this.eventContract ?? { eventSignatures: {} }, eventName) : {}; return sig; } catch (err) { const inMemorySig = spruce_event_utils_1.eventContractUtil.getSignatureByName(MutableContractClient.inMemoryContract ?? { eventSignatures: {}, }, eventName); return inMemorySig; } } } exports.default = MutableContractClient;