/home/techb158/balavpn.abdallabala.com/node_modules/eslint/lib/linter
NameSizeModeActions
code-path-analysis/-0777rm
apply-disable-directives.js191050666editdlrm
esquery.js93500666editdlrm
file-context.js36120666editdlrm
file-report.js187100666editdlrm
index.js1790666editdlrm
interpolate.js13440666editdlrm
linter.js777780666editdlrm
rule-fixer.js51580666editdlrm
rules.js16730666editdlrm
source-code-fixer.js42090666editdlrm
source-code-traverser.js98030666editdlrm
source-code-visitor.js21470666editdlrm
timing.js47230666editdlrm
vfile.js28160666editdlrm
Edit: /home/techb158/balavpn.abdallabala.com/node_modules/eslint/lib/linter/source-code-visitor.js (2147B)
/** * @fileoverview SourceCodeVisitor class * @author Nicholas C. Zakas */ "use strict"; //----------------------------------------------------------------------------- // Helpers //----------------------------------------------------------------------------- const emptyArray = Object.freeze([]); //------------------------------------------------------------------------------ // Exports //------------------------------------------------------------------------------ /** * A structure to hold a list of functions to call for a given name. * This is used to allow multiple rules to register functions for a given name * without having to know about each other. */ class SourceCodeVisitor { /** * The functions to call for a given name. * @type {Map} */ #functions = new Map(); /** * Adds a function to the list of functions to call for a given name. * @param {string} name The name of the function to call. * @param {Function} func The function to call. * @returns {void} */ add(name, func) { if (this.#functions.has(name)) { this.#functions.get(name).push(func); } else { this.#functions.set(name, [func]); } } /** * Gets the list of functions to call for a given name. * @param {string} name The name of the function to call. * @returns {Function[]} The list of functions to call. */ get(name) { if (this.#functions.has(name)) { return this.#functions.get(name); } return emptyArray; } /** * Iterates over all names and calls the callback with the name. * @param {(name:string) => void} callback The callback to call for each name. * @returns {void} */ forEachName(callback) { this.#functions.forEach((funcs, name) => { callback(name); }); } /** * Calls the functions for a given name with the given arguments. * @param {string} name The name of the function to call. * @param {any[]} args The arguments to pass to the function. * @returns {void} */ callSync(name, ...args) { if (this.#functions.has(name)) { this.#functions.get(name).forEach(func => func(...args)); } } } module.exports = { SourceCodeVisitor };