UNPKG

suitest-js-api

Version:

Suitest is a test automation and device manipulation tool for living room devices and web browsers.

27 lines (18 loc) 669 B
const {mergeAll} = require('ramda'); const {wrapThrow} = require('./sentry/Sentry'); const makeChain = (instance, getComposers, data) => { const makeNewChain = wrapThrow(updatedData => { const composers = getComposers(updatedData); const chain = {}; // refresh stack every time a new method is called on the chain. updatedData.stack = Error().stack; Object.defineProperties(chain, mergeAll( composers.map(composer => composer(instance, updatedData, chain, makeNewChain))) ); return chain; }); const chain = makeNewChain(data); instance.unusedExpressionWatchers.registerLeaf(chain, data.stack); return chain; }; module.exports = makeChain;