| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 'use strict';Object.defineProperty(exports, '__esModule', {  value: true});exports.default = treeProcessor;/** * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */function treeProcessor(options) {  const {nodeComplete, nodeStart, queueRunnerFactory, runnableIds, tree} =    options;  function isEnabled(node, parentEnabled) {    return parentEnabled || runnableIds.indexOf(node.id) !== -1;  }  function getNodeHandler(node, parentEnabled) {    const enabled = isEnabled(node, parentEnabled);    return node.children      ? getNodeWithChildrenHandler(node, enabled)      : getNodeWithoutChildrenHandler(node, enabled);  }  function getNodeWithoutChildrenHandler(node, enabled) {    return function fn(done = () => {}) {      node.execute(done, enabled);    };  }  function getNodeWithChildrenHandler(node, enabled) {    return async function fn(done = () => {}) {      nodeStart(node);      await queueRunnerFactory({        onException: error => node.onException(error),        queueableFns: wrapChildren(node, enabled),        userContext: node.sharedUserContext()      });      nodeComplete(node);      done();    };  }  function hasNoEnabledTest(node) {    var _node$children$every, _node$children;    return (      node.disabled ||      node.markedPending ||      ((_node$children$every =        (_node$children = node.children) === null || _node$children === void 0          ? void 0          : _node$children.every(hasNoEnabledTest)) !== null &&      _node$children$every !== void 0        ? _node$children$every        : false)    );  }  function wrapChildren(node, enabled) {    if (!node.children) {      throw new Error('`node.children` is not defined.');    }    const children = node.children.map(child => ({      fn: getNodeHandler(child, enabled)    }));    if (hasNoEnabledTest(node)) {      return children;    }    return node.beforeAllFns.concat(children).concat(node.afterAllFns);  }  const treeHandler = getNodeHandler(tree, false);  return treeHandler();}
 |