ags
This commit is contained in:
parent
eddf7cecb8
commit
aea798d119
16631 changed files with 1480363 additions and 257 deletions
40
home/ags/node_modules/eslint-plugin-n/lib/util/enumerate-property-names.js
generated
vendored
Normal file
40
home/ags/node_modules/eslint-plugin-n/lib/util/enumerate-property-names.js
generated
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/**
|
||||
* @author Toru Nagashima <https://github.com/mysticatea>
|
||||
* See LICENSE file in root directory for full license.
|
||||
*/
|
||||
"use strict"
|
||||
|
||||
const { CALL, CONSTRUCT, READ } = require("@eslint-community/eslint-utils")
|
||||
const unprefixNodeColon = require("./unprefix-node-colon")
|
||||
|
||||
/**
|
||||
* 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)
|
||||
|
||||
const name = unprefixNodeColon(path.join("."))
|
||||
if (value[CALL]) {
|
||||
yield `${name}()`
|
||||
}
|
||||
if (value[CONSTRUCT]) {
|
||||
yield `new ${name}()`
|
||||
}
|
||||
if (value[READ]) {
|
||||
yield name
|
||||
}
|
||||
yield* enumeratePropertyNames(value, path)
|
||||
|
||||
path.pop()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = enumeratePropertyNames
|
||||
Loading…
Add table
Add a link
Reference in a new issue