UNPKG

serverless-spy

Version:

CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.

31 lines (28 loc) 960 B
import { ServerlessSpyListenerParams } from './ServerlessSpyListenerParams'; import { WsListener } from './WsListener'; export async function createServerlessSpyListener<TSpyEvents>( params: Omit<ServerlessSpyListenerParams, 'scope'> ) { const wsListener = new WsListener<TSpyEvents>(); let resolve, reject: ((value: void | PromiseLike<void>) => void) | undefined; const promise = new Promise<void>((res, rej) => { resolve = res; reject = rej; }); const [serverlessSpyWsUrl, scope] = params.serverlessSpyWsUrl.split('/'); if (!scope) { throw Error( `ServerlessSpyWsUrl was missing rootStack: ${params.serverlessSpyWsUrl}` ); } await wsListener.start({ ...params, serverlessSpyWsUrl, scope, connectionOpenResolve: params.connectionOpenResolve || resolve, connectionOpenReject: params.connectionOpenReject || reject, }); const proxy = wsListener.createProxy(); await promise; return proxy; }