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.
24 lines • 3.4 kB
JavaScript
import { WsListener } from './WsListener';
export async function createServerlessSpyListener(params) {
const wsListener = new WsListener();
let resolve, reject;
const promise = new Promise((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;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsTUFBa0Q7SUFFbEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQWMsQ0FBQztJQUNoRCxJQUFJLE9BQU8sRUFBRSxNQUErRCxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzdDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDZCxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLEtBQUssQ0FDVCw2Q0FBNkMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3JCLEdBQUcsTUFBTTtRQUNULGtCQUFrQjtRQUNsQixLQUFLO1FBQ0wscUJBQXFCLEVBQUUsTUFBTSxDQUFDLHFCQUFxQixJQUFJLE9BQU87UUFDOUQsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixJQUFJLE1BQU07S0FDNUQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLE1BQU0sT0FBTyxDQUFDO0lBQ2QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zIH0gZnJvbSAnLi9TZXJ2ZXJsZXNzU3B5TGlzdGVuZXJQYXJhbXMnO1xuaW1wb3J0IHsgV3NMaXN0ZW5lciB9IGZyb20gJy4vV3NMaXN0ZW5lcic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXJsZXNzU3B5TGlzdGVuZXI8VFNweUV2ZW50cz4oXG4gIHBhcmFtczogT21pdDxTZXJ2ZXJsZXNzU3B5TGlzdGVuZXJQYXJhbXMsICdzY29wZSc+XG4pIHtcbiAgY29uc3Qgd3NMaXN0ZW5lciA9IG5ldyBXc0xpc3RlbmVyPFRTcHlFdmVudHM+KCk7XG4gIGxldCByZXNvbHZlLCByZWplY3Q6ICgodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzLCByZWopID0+IHtcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIGNvbnN0IFtzZXJ2ZXJsZXNzU3B5V3NVcmwsIHNjb3BlXSA9IHBhcmFtcy5zZXJ2ZXJsZXNzU3B5V3NVcmwuc3BsaXQoJy8nKTtcbiAgaWYgKCFzY29wZSkge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgYFNlcnZlcmxlc3NTcHlXc1VybCB3YXMgbWlzc2luZyByb290U3RhY2s6ICR7cGFyYW1zLnNlcnZlcmxlc3NTcHlXc1VybH1gXG4gICAgKTtcbiAgfVxuICBhd2FpdCB3c0xpc3RlbmVyLnN0YXJ0KHtcbiAgICAuLi5wYXJhbXMsXG4gICAgc2VydmVybGVzc1NweVdzVXJsLFxuICAgIHNjb3BlLFxuICAgIGNvbm5lY3Rpb25PcGVuUmVzb2x2ZTogcGFyYW1zLmNvbm5lY3Rpb25PcGVuUmVzb2x2ZSB8fCByZXNvbHZlLFxuICAgIGNvbm5lY3Rpb25PcGVuUmVqZWN0OiBwYXJhbXMuY29ubmVjdGlvbk9wZW5SZWplY3QgfHwgcmVqZWN0LFxuICB9KTtcblxuICBjb25zdCBwcm94eSA9IHdzTGlzdGVuZXIuY3JlYXRlUHJveHkoKTtcbiAgYXdhaXQgcHJvbWlzZTtcbiAgcmV0dXJuIHByb3h5O1xufVxuIl19