UNPKG

@aimee-blue/ab-service-kit

Version:
18 lines (17 loc) 1.02 kB
/// <reference types="node" /> import { Observable, ObservedValueOf } from 'rxjs'; import { Auth, Apps } from '@aimee-blue/ab-contracts'; import { IJwt, decodeJwt } from '@aimee-blue/ab-auth'; import { ISocketEpicAttributes, ISocketEpicContext } from '../kit'; import { IAction } from '../action'; export interface IInjectedAuthDetails { id: string; auth?: IJwt; } export interface ISocketEpicWithAuth<I extends IAction = IAction, O extends IAction | Buffer = IAction | Buffer, D = {}, R extends unknown[] = unknown[]> extends ISocketEpicAttributes<O, D> { (commands: Observable<IAction | I>, ctx: ISocketEpicContext & IInjectedAuthDetails & D, ...rest: R): Observable<O>; } export declare function epicWithAuth<E extends ISocketEpicWithAuth>(allow: Auth.Role[], epic: E, deps?: { verifyToken: (param: Auth.IVerifyParams) => Observable<Auth.IVerifyResult>; decodeJwt: typeof decodeJwt; }): (...[cmd, ctx, ...rest]: Parameters<E>) => Observable<Apps.IErrorAction | ObservedValueOf<ReturnType<E>>>;