Socket
Socket
Sign inDemoInstall

eslint-docgen

Package Overview
Dependencies
100
Maintainers
2
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.2 to 0.7.0

8

package.json
{
"name": "eslint-docgen",
"version": "0.6.2",
"version": "0.7.0",
"description": "Automatically generate ESLint plugin documentation from rule metadata and test cases.",

@@ -28,3 +28,3 @@ "repository": {

"ejs": "^3.1.6",
"eslint": ">=5.0.0",
"eslint": ">=8.0.0",
"import-fresh": "^3.3.0",

@@ -40,7 +40,7 @@ "jsonschema": "^1.4.0",

"devDependencies": {
"eslint-config-wikimedia": "^0.21.0",
"eslint-config-wikimedia": "^0.22.1",
"eslint-plugin-node": "^11.1.0",
"mocha": "^9.1.3",
"mocha": "^9.2.0",
"nyc": "^15.1.0"
}
}

@@ -40,3 +40,3 @@ 'use strict';

function buildDocsFromTests(
async function buildDocsFromTests(
name, ruleMeta, tests, configMap, config, globalTemplates, loadRuleTemplate, testerConfig

@@ -82,3 +82,3 @@ ) {

function buildRuleDetails( testList, isValid, showFixes ) {
async function buildRuleDetails( testList, isValid, showFixes ) {
testList = testList.filter( ( test ) =>

@@ -96,3 +96,3 @@ test.docgen === undefined ?

const fix = require( './fix' );
fixedCode = fix.batchLintFix( codeList, testerConfig );
fixedCode = await fix.batchLintFix( codeList, testerConfig );
} else {

@@ -116,3 +116,3 @@ fixedCode = codeList;

const fix = require( './fix' );
fixedOutput = fix.batchLintFix( outputList, testerConfig );
fixedOutput = await fix.batchLintFix( outputList, testerConfig );
} else {

@@ -222,3 +222,3 @@ fixedOutput = outputList;

// Fixes whitespace in block comment. Too expensive for such a small fix?
comments = fix.batchLintFix( comments, testerConfig );
comments = await fix.batchLintFix( comments, testerConfig );
}

@@ -276,4 +276,4 @@ }

const invalid = buildRuleDetails( tests.invalid, false );
const valid = buildRuleDetails( tests.valid, true );
const invalid = await buildRuleDetails( tests.invalid, false );
const valid = await buildRuleDetails( tests.valid, true );

@@ -288,3 +288,3 @@ const validInvalid = invalid.concat( valid ).sort( ( a, b ) => {

if ( ruleMeta.fixable && config.showFixExamples ) {
fixed = buildRuleDetails(
fixed = await buildRuleDetails(
tests.invalid.filter( ( test ) => !!test.output ),

@@ -291,0 +291,0 @@ false,

'use strict';
const eslint = require( 'eslint' );
const linter = new eslint.Linter();
const cli = new eslint.CLIEngine();
const config = cli.getConfigForFile( require( './main' ) );
const rules = cli.getRules();
const { Linter, ESLint } = require( 'eslint' );
const linter = new Linter();
const eslint = new ESLint();
const mergeOptions = require( 'merge-options' );
// eslint-disable-next-line node/no-missing-require
const { builtinRules } = require( 'eslint/use-at-your-own-risk' );
// Optimization: Only use fixable rules
const fixableRules = {};
Object.keys( config.rules ).forEach( function ( ruleName ) {
if ( rules.has( ruleName ) ) {
const rule = rules.get( ruleName );
if ( rule.meta.fixable ) {
fixableRules[ ruleName ] = config.rules[ ruleName ];
async function getConfig() {
const config = await eslint.calculateConfigForFile( require( './main' ) );
// Optimization: Only use fixable rules
const fixableRules = {};
Object.keys( config.rules ).forEach( function ( ruleName ) {
if ( builtinRules.has( ruleName ) ) {
const rule = builtinRules.get( ruleName );
if ( rule.meta.fixable ) {
fixableRules[ ruleName ] = config.rules[ ruleName ];
}
}
}
} );
config.rules = fixableRules;
} );
config.rules = fixableRules;
return config;
}
/**

@@ -29,4 +35,4 @@ * Lint and fix some code

*/
function lintFix( code, testerConfig ) {
const mergedConfig = mergeOptions( config, testerConfig );
async function lintFix( code, testerConfig ) {
const mergedConfig = mergeOptions( await getConfig(), testerConfig );

@@ -59,7 +65,8 @@ // TODO

*/
function batchLintFix( codeList, testerConfig ) {
async function batchLintFix( codeList, testerConfig ) {
const separator = '\n/* - */\n';
const codeBlock = codeList.join( ';' + separator );
// Add an extra semicolon to avoid syntax error
return lintFix( codeBlock, testerConfig ).split( separator ).map( ( code ) => code.trim() );
const fixed = await lintFix( codeBlock, testerConfig );
return fixed.split( separator ).map( ( code ) => code.trim() );
}

@@ -66,0 +73,0 @@

@@ -38,3 +38,3 @@ 'use strict';

function writeDocsFromTests( name, rule, tests, testerConfig, done ) {
async function writeDocsFromTests( name, rule, tests, testerConfig, done ) {
// If the tests have a `docgenConfig` property, this overrides the global configuration

@@ -55,3 +55,3 @@ let configForRule = config;

try {
( { output, messages } = buildDocsFromTests(
( { output, messages } = await buildDocsFromTests(
name, rule.meta, tests, configMap, configForRule,

@@ -58,0 +58,0 @@ globalTemplates, loadRuleTemplate, testerConfig

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc