UNPKG

react-docgen

Version:

A CLI and toolkit to extract information from React components for documentation generation.

45 lines (39 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = match; /* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * * */ /** * This function takes an AST node and matches it against "pattern". Pattern * is simply a (nested) object literal and it is traversed to see whether node * contains those (nested) properties with the provided values. */ function match(node, pattern) { if (!node) { return false; } for (const prop in pattern) { if (!node[prop]) { return false; } if (pattern[prop] && typeof pattern[prop] === 'object') { if (!match(node[prop], pattern[prop])) { return false; } } else if (node[prop] !== pattern[prop]) { return false; } } return true; }