Blame view
node_modules/eslint/lib/util/estraverse.js
1.55 KB
c39994410
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/** * @fileoverview Patch for estraverse * @author Toru Nagashima * @copyright 2015 Toru Nagashima. All rights reserved. * See LICENSE file in root directory for full license. */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ var estraverse = require("estraverse"), jsxKeys = require("estraverse-fb/keys"); //------------------------------------------------------------------------------ // Helers //------------------------------------------------------------------------------ var experimentalKeys = { ExperimentalRestProperty: ["argument"], ExperimentalSpreadProperty: ["argument"] }; /** * Adds a given keys to Syntax and VisitorKeys of estraverse. * * @param {object} keys - Key definitions to add. * This is an object as map. * Keys are the node type. * Values are an array of property names to visit. * @returns {void} */ function installKeys(keys) { for (var key in keys) { if (keys.hasOwnProperty(key)) { estraverse.Syntax[key] = key; if (keys[key]) { estraverse.VisitorKeys[key] = keys[key]; } } } } // Add JSX node types. installKeys(jsxKeys); // Add Experimental node types. installKeys(experimentalKeys); //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = estraverse; |