import {TickingPromise} from '@avocado/core'; import {Collection} from './collection'; import {Traversal} from './traversal'; export class Traversals extends Collection('traversal') { parallel(context) { const results = this.traversals.map((traversal) => { return traversal.traverse(context); }); // Early out if no promises. if (!results.reduce((has, result) => { return has || result instanceof Promise; }, false)) { return results; } return TickingPromise.all(results); } }