@sprucelabs/mercury-client
Version:
The simple way to interact with the Spruce Experience Platform
58 lines (57 loc) • 2.75 kB
TypeScript
import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter';
import { EventContract, EventName, MercuryAggregateResponse, SkillEventContract, SpruceSchemas } from '@sprucelabs/mercury-types';
import { Schema } from '@sprucelabs/schema';
import MutableContractClient from './MutableContractClient';
declare class InternalEmitter<Contract extends EventContract> extends AbstractEventEmitter<Contract> {
doesHandleEvent(eventName: string): boolean;
protected validateEmitPayload(schema: Schema | undefined | null, actualPayload: any, eventName: string): void;
mixinOnlyUniqueSignatures(contract: EventContract): void;
overrideSignatures(contract: EventContract): void;
getContract(): SpruceSchemas.Mercury.v2020_12_25.EventContract;
setContract(contract: Contract): void;
}
export default class MercuryTestClient<
/** @ts-ignore */
Contract extends EventContract = SkillEventContract> extends MutableContractClient<Contract> {
private static emitter;
private _isConnected;
private isConnectedToApi;
private connectPromise?;
private static shouldCheckPermissionsOnLocalEvents;
private shouldHandleAuthenticateLocallyIfListenerSet;
private static namespacesThatHaveToBeHandledLocally;
private shouldWaitForDelayedConnectIfAuthing;
private static shouldRequireLocalListeners;
protected get eventContract(): Contract;
protected set eventContract(contract: Contract);
static setShouldCheckPermissionsOnLocalEvents(should: boolean): void;
static setNamespacesThatMustBeHandledLocally(namespaces: string[]): void;
static getNamespacesThatMustBeHandledLocally(): string[];
constructor(options: Record<string, any> & {
host: string;
eventContract?: Contract;
});
/** @ts-ignore */
static getInternalEmitter(contract?: EventContract): InternalEmitter<SkillEventContract>;
off(eventName: EventName<Contract>, cb?: any): Promise<number>;
static mixinContract(contract: EventContract): void;
mixinContract(contract: EventContract): void;
doesHandleEvent(eventName: string): boolean;
on(...args: any[]): Promise<void>;
emit(...args: any[]): Promise<MercuryAggregateResponse<any>>;
private shouldHandleEventLocally;
private handleEventLocally;
private assertValidEventSignature;
private optionallyCheckPermissions;
private buildSource;
private connectIfNotConnected;
private delayedConnectAndAuth;
connect(): Promise<void>;
isConnected(): boolean;
disconnect(): Promise<void>;
static reset(): void;
getIsTestClient(): boolean;
static setShouldRequireLocalListeners(shouldRequire: boolean): void;
static getShouldRequireLocalListeners(): boolean;
}
export {};