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.
27 lines • 3.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createServerlessSpyListener = createServerlessSpyListener;
const WsListener_1 = require("./WsListener");
async function createServerlessSpyListener(params) {
const wsListener = new WsListener_1.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esa0VBMEJDO0FBNUJELDZDQUEwQztBQUVuQyxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLE1BQWtEO0lBRWxELE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBYyxDQUFDO0lBQ2hELElBQUksT0FBTyxFQUFFLE1BQStELENBQUM7SUFDN0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDN0MsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNkLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sS0FBSyxDQUNULDZDQUE2QyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDckIsR0FBRyxNQUFNO1FBQ1Qsa0JBQWtCO1FBQ2xCLEtBQUs7UUFDTCxxQkFBcUIsRUFBRSxNQUFNLENBQUMscUJBQXFCLElBQUksT0FBTztRQUM5RCxvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CLElBQUksTUFBTTtLQUM1RCxDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsTUFBTSxPQUFPLENBQUM7SUFDZCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJsZXNzU3B5TGlzdGVuZXJQYXJhbXMgfSBmcm9tICcuL1NlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcyc7XG5pbXBvcnQgeyBXc0xpc3RlbmVyIH0gZnJvbSAnLi9Xc0xpc3RlbmVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNlcnZlcmxlc3NTcHlMaXN0ZW5lcjxUU3B5RXZlbnRzPihcbiAgcGFyYW1zOiBPbWl0PFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcywgJ3Njb3BlJz5cbikge1xuICBjb25zdCB3c0xpc3RlbmVyID0gbmV3IFdzTGlzdGVuZXI8VFNweUV2ZW50cz4oKTtcbiAgbGV0IHJlc29sdmUsIHJlamVjdDogKCh2YWx1ZTogdm9pZCB8IFByb21pc2VMaWtlPHZvaWQ+KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXMsIHJlaikgPT4ge1xuICAgIHJlc29sdmUgPSByZXM7XG4gICAgcmVqZWN0ID0gcmVqO1xuICB9KTtcbiAgY29uc3QgW3NlcnZlcmxlc3NTcHlXc1VybCwgc2NvcGVdID0gcGFyYW1zLnNlcnZlcmxlc3NTcHlXc1VybC5zcGxpdCgnLycpO1xuICBpZiAoIXNjb3BlKSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgU2VydmVybGVzc1NweVdzVXJsIHdhcyBtaXNzaW5nIHJvb3RTdGFjazogJHtwYXJhbXMuc2VydmVybGVzc1NweVdzVXJsfWBcbiAgICApO1xuICB9XG4gIGF3YWl0IHdzTGlzdGVuZXIuc3RhcnQoe1xuICAgIC4uLnBhcmFtcyxcbiAgICBzZXJ2ZXJsZXNzU3B5V3NVcmwsXG4gICAgc2NvcGUsXG4gICAgY29ubmVjdGlvbk9wZW5SZXNvbHZlOiBwYXJhbXMuY29ubmVjdGlvbk9wZW5SZXNvbHZlIHx8IHJlc29sdmUsXG4gICAgY29ubmVjdGlvbk9wZW5SZWplY3Q6IHBhcmFtcy5jb25uZWN0aW9uT3BlblJlamVjdCB8fCByZWplY3QsXG4gIH0pO1xuXG4gIGNvbnN0IHByb3h5ID0gd3NMaXN0ZW5lci5jcmVhdGVQcm94eSgpO1xuICBhd2FpdCBwcm9taXNlO1xuICByZXR1cm4gcHJveHk7XG59XG4iXX0=