Sha256: b59a3b1c55399da8bc43d807f69b92866c0036cb5a8eb3cd84310ded429933e6

Contents?: true

Size: 570 Bytes

Versions: 27

Compression:

Stored size: 570 Bytes

Contents

'use strict';

exports.__esModule = true;

exports.default = function visit(node, keys, visitorSpec) {
  if (!node || !keys) {
    return;
  }
  const type = node.type;
  if (typeof visitorSpec[type] === 'function') {
    visitorSpec[type](node);
  }
  const childFields = keys[type];
  if (!childFields) {
    return;
  }
  childFields.forEach((fieldName) => {
    [].concat(node[fieldName]).forEach((item) => {
      visit(item, keys, visitorSpec);
    });
  });
  if (typeof visitorSpec[`${type}:Exit`] === 'function') {
    visitorSpec[`${type}:Exit`](node);
  }
};

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
immosquare-cleaner-0.1.11 node_modules/eslint-module-utils/visit.js
immosquare-cleaner-0.1.10 node_modules/eslint-module-utils/visit.js
immosquare-cleaner-0.1.9 node_modules/eslint-module-utils/visit.js
immosquare-cleaner-0.1.8 node_modules/eslint-module-utils/visit.js
immosquare-cleaner-0.1.7 node_modules/eslint-module-utils/visit.js
immosquare-cleaner-0.1.6 node_modules/eslint-module-utils/visit.js
decidim-0.26.8 packages/eslint-config/node_modules/eslint-module-utils/visit.js