123456789101112131415161718192021222324252627282930313233343536373839 |
- "use strict"
- const { CALL, CONSTRUCT, READ } = require("eslint-utils")
- 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
|