.
This commit is contained in:
		
							
								
								
									
										46
									
								
								qwen/nodejs/node_modules/eslint/lib/cli-engine/load-rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								qwen/nodejs/node_modules/eslint/lib/cli-engine/load-rules.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
/**
 | 
			
		||||
 * @fileoverview Module for loading rules from files and directories.
 | 
			
		||||
 * @author Michael Ficarra
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
// Requirements
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
const fs = require("fs"),
 | 
			
		||||
    path = require("path");
 | 
			
		||||
 | 
			
		||||
const rulesDirCache = {};
 | 
			
		||||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
// Public Interface
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Load all rule modules from specified directory.
 | 
			
		||||
 * @param {string} relativeRulesDir Path to rules directory, may be relative.
 | 
			
		||||
 * @param {string} cwd Current working directory
 | 
			
		||||
 * @returns {Object} Loaded rule modules.
 | 
			
		||||
 */
 | 
			
		||||
module.exports = function(relativeRulesDir, cwd) {
 | 
			
		||||
    const rulesDir = path.resolve(cwd, relativeRulesDir);
 | 
			
		||||
 | 
			
		||||
    // cache will help performance as IO operation are expensive
 | 
			
		||||
    if (rulesDirCache[rulesDir]) {
 | 
			
		||||
        return rulesDirCache[rulesDir];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const rules = Object.create(null);
 | 
			
		||||
 | 
			
		||||
    fs.readdirSync(rulesDir).forEach(file => {
 | 
			
		||||
        if (path.extname(file) !== ".js") {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        rules[file.slice(0, -3)] = require(path.join(rulesDir, file));
 | 
			
		||||
    });
 | 
			
		||||
    rulesDirCache[rulesDir] = rules;
 | 
			
		||||
 | 
			
		||||
    return rules;
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user