All files / packages/design-system/shared/utils tree.js

0% Statements 0/11
100% Branches 0/0
0% Functions 0/6
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23                                             
// Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
// Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license
const I = require('immutable');
 
const reduceTree = (f, empty, x) =>
  f(
    x
      .get('restrictees', I.List())
      .reduce((ac, y) => reduceTree(f, ac, y), empty),
    x
  );
 
const mapTree = (x, f) =>
  f(x).set(
    'restrictees',
    x.get('restrictees', I.List()).map(r => mapTree(r, f))
  );
 
const toList = component =>
  reduceTree((a, b) => a.push(b), I.List(), component).reverse();
 
module.exports = { mapTree, reduceTree, toList };