@sprucelabs/spruce-event-utils
Version:
Some helpful utilities to speed up working with Mercury! 🚅
22 lines (21 loc) • 1.25 kB
TypeScript
import { MercuryAggregateResponse, MercurySingleResponse } from '@sprucelabs/mercury-types';
type MercuryAggregateResponseWithoutErrorInstances = Omit<MercuryAggregateResponse<any>, 'responses'> & {
responses: MercurySingleResponseWithoutErrorInstances[];
};
type MercurySingleResponseWithoutErrorInstances = Omit<MercurySingleResponse<any>, 'errors'> & {
errors?: any[];
};
declare const eventResponseUtil: {
mutatingMapAggregateResponseErrorsToSpruceErrors<R extends MercuryAggregateResponse<any> | MercuryAggregateResponseWithoutErrorInstances, T extends {
prototype: any;
}>(results: R, ClassRef: T): MercuryAggregateResponse<any>;
mutatingMapSingleResonseErrorsToSpruceErrors<R extends MercurySingleResponse<any>, T extends {
prototype: any;
}>(response: R, ClassRef: T): R;
getFirstResponseOrThrow<R extends MercuryAggregateResponse<any>>(emitResponse: R): NonNullable<R["responses"][number]["payload"]>;
getAllResponsePayloadsAndErrors<R extends MercuryAggregateResponse<any>, T extends new (...args: any) => any>(emitResponse: R, ClassRef: T): {
payloads: NonNullable<R["responses"][number]["payload"]>[];
errors?: InstanceType<T>[];
};
};
export default eventResponseUtil;