UNPKG

@sprucelabs/mercury-client

Version:

The simple way to interact with the Spruce Experience Platform

44 lines (43 loc) 1.51 kB
import { eventContractUtil } from '@sprucelabs/spruce-event-utils'; import MercurySocketIoClient from './MercurySocketIoClient.js'; export default class MutableContractClient extends MercurySocketIoClient { static mixinContract(contract) { var _a; this.inMemoryContract = eventContractUtil.unifyContracts([ (_a = this.inMemoryContract) !== null && _a !== void 0 ? _a : { eventSignatures: {} }, contract, ]); } mixinContract(contract) { MutableContractClient.mixinContract(contract); } static reset() { this.inMemoryContract = { eventSignatures: {}, }; } doesHandleEvent(eventName) { try { this.getEventSignatureByName(eventName); return true; } catch (_a) { return false; } } getEventSignatureByName(eventName) { var _a, _b; try { const sig = this.eventContract || MutableContractClient.inMemoryContract ? eventContractUtil.getSignatureByName((_a = this.eventContract) !== null && _a !== void 0 ? _a : { eventSignatures: {} }, eventName) : {}; return sig; } catch (err) { const inMemorySig = eventContractUtil.getSignatureByName((_b = MutableContractClient.inMemoryContract) !== null && _b !== void 0 ? _b : { eventSignatures: {}, }, eventName); return inMemorySig; } } }