All files createSelectorMapper.js

100% Statements 13/13
100% Branches 4/4
100% Functions 5/5
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  12x   14x 1x 3x   1x           11x 11x       15x 11x 11x      
export default function createSelectorMapper(selector, ...rest) {
  const listeners = Array.isArray(rest[0]) ? rest[0] : rest;
 
  if (!listeners.every(dep => typeof dep === 'function')) {
    const dependencyTypes = listeners.map(
      dep => typeof dep,
    ).join(', ');
    throw new Error(
      'SelectorMapper expect all listener to be functions, ' +
      `instead received the following types: [${dependencyTypes}]`,
    );
  }
 
  let preResult = null;
  const selectorMapper = {
    selector,
    handlers: listeners,
  };
  selectorMapper.getPreResult = () => preResult;
  selectorMapper.updateResult = (curResult) => { preResult = curResult; };
  return selectorMapper;
}