Sha256: b615ee657399ae4a75bad7d629d2e12b33233b956c3cea42ff51528a5d58f7ad
Contents?: true
Size: 1.02 KB
Versions: 44
Compression:
Stored size: 1.02 KB
Contents
/** * @author Toru Nagashima <https://github.com/mysticatea> * See LICENSE file in root directory for full license. */ "use strict" const { CALL, CONSTRUCT, READ } = require("eslint-utils") /** * Enumerate property names of a given object recursively. * @param {object} trackMap The map for APIs to enumerate. * @param {string[]|undefined} path The path to the current map. * @returns {IterableIterator<string>} The property names of the map. */ function* enumeratePropertyNames(trackMap, path = []) { for (const key of Object.keys(trackMap)) { const value = trackMap[key] if (typeof value !== "object") { continue } path.push(key) if (value[CALL]) { yield `${path.join(".")}()` } if (value[CONSTRUCT]) { yield `new ${path.join(".")}()` } if (value[READ]) { yield path.join(".") } yield* enumeratePropertyNames(value, path) path.pop() } } module.exports = enumeratePropertyNames
Version data entries
44 entries across 44 versions & 2 rubygems