Skip to content

Commit

Permalink
Linting fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
piranna committed May 8, 2023
1 parent b266c37 commit 8d0bda7
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 61 deletions.
63 changes: 30 additions & 33 deletions lib/rule-composer.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
'use strict';

/**
* Translates a multi-argument context.report() call into a single object argument call
* @param {...*} arguments A list of arguments passed to `context.report`
Expand Down Expand Up @@ -47,7 +45,6 @@ function normalizeReportLoc(descriptor) {
return descriptor.node.loc;
}


/**
* Interpolates data placeholders in report messages
* @param {MessageDescriptor} descriptor The report message descriptor.
Expand Down Expand Up @@ -115,7 +112,7 @@ function getRuleCreateFunc(rule) {
}

function removeMessageIfMessageIdPresent(reportDescriptor) {
const newDescriptor = Object.assign({}, reportDescriptor);
const newDescriptor = { ...reportDescriptor };

if (typeof reportDescriptor.messageId === 'string' && typeof reportDescriptor.message === 'string') {
delete newDescriptor.message;
Expand Down Expand Up @@ -148,9 +145,9 @@ module.exports = Object.freeze({
}
},
},
}
)
)
},
),
),
);
},
schema: rule.schema,
Expand Down Expand Up @@ -178,15 +175,15 @@ module.exports = Object.freeze({
getReportNormalizer(rule).apply(null, arguments),
{
sourceCode, settings, options, filename,
}
)
)
},
),
),
);
},
},
}
)
)
},
),
),
);
},
schema: rule.schema,
Expand All @@ -197,32 +194,32 @@ module.exports = Object.freeze({
return Object.freeze({
create(context) {
return rules
.map(rule => getRuleCreateFunc(rule)(context))
.map((rule) => getRuleCreateFunc(rule)(context))
.reduce(
(allListeners, ruleListeners) =>
Object.keys(ruleListeners).reduce(
(combinedListeners, key) => {
const currentListener = combinedListeners[key];
const ruleListener = ruleListeners[key];
if (currentListener) {
return Object.assign({}, combinedListeners, {
[key]() {
currentListener.apply(null, arguments);
ruleListener.apply(null, arguments);
},
});
}
return Object.assign({}, combinedListeners, { [key]: ruleListener });
},
allListeners
),
Object.create(null)
(allListeners, ruleListeners) => Object.keys(ruleListeners).reduce(
(combinedListeners, key) => {
const currentListener = combinedListeners[key];
const ruleListener = ruleListeners[key];
if (currentListener) {
return {
...combinedListeners,
[key]() {
currentListener.apply(null, arguments);
ruleListener.apply(null, arguments);
},
};
}
return { ...combinedListeners, [key]: ruleListener };
},
allListeners,
),
Object.create(null),
);
},
meta: Object.freeze({
messages: Object.assign.apply(
null,
[Object.create(null)].concat(rules.map(getMessageIds))
[Object.create(null)].concat(rules.map(getMessageIds)),
),
fixable: 'code',
}),
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
"typescript": "^5.0.4"
},
"engines": {
"node": ">=4.0.0"
"node": ">=8.3.0"
}
}
52 changes: 25 additions & 27 deletions tests/lib/rule-composer.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
'use strict';

const eslint = require('eslint');
const assert = require('chai').assert;
const ruleComposer = require('../..');
Expand All @@ -10,7 +8,7 @@ const coreRules = new eslint.Linter().getRules();

ruleTester.run(
'filterReports',
ruleComposer.filterReports(coreRules.get('no-undef'), descriptor => descriptor.node && descriptor.node.name !== 'foo'),
ruleComposer.filterReports(coreRules.get('no-undef'), (descriptor) => descriptor.node && descriptor.node.name !== 'foo'),
{
valid: [
'foo;',
Expand All @@ -30,7 +28,7 @@ ruleTester.run(
errors: [{ line: 1, column: 1 }],
},
],
}
},
);

// test with settings
Expand Down Expand Up @@ -68,7 +66,7 @@ ruleTester.run(
settings: { tokenWhitelist: ['foo'] },
},
],
}
},
);

const ruleWithOptions = ruleComposer.filterReports(coreRules.get('no-undef'), (descriptor, m) => (
Expand Down Expand Up @@ -109,7 +107,7 @@ ruleTester.run(
options: [{ tokenWhitelist: ['foo'] }],
},
],
}
},
);

ruleTester.run(
Expand All @@ -136,15 +134,15 @@ ruleTester.run(
filename: 'index.js',
},
],
}
},
);

ruleTester.run(
'joinReports',
ruleComposer.joinReports([
context => ({ Program: node => context.report(node, 'foo') }),
context => ({ 'Program:exit': node => context.report(node, 'bar') }),
{ create: context => ({ 'Program:exit': node => context.report(node, 'baz') }) },
(context) => ({ Program: (node) => context.report(node, 'foo') }),
(context) => ({ 'Program:exit': (node) => context.report(node, 'bar') }),
{ create: (context) => ({ 'Program:exit': (node) => context.report(node, 'baz') }) },
]),
{
valid: [],
Expand All @@ -158,14 +156,14 @@ ruleTester.run(
],
},
],
}
},
);

ruleTester.run(
'mapReports',
ruleComposer.mapReports(
context => ({ Program: node => context.report({ node, message: 'foo' }) }),
descriptor => Object.assign({}, descriptor, { message: descriptor.message.toUpperCase() })
(context) => ({ Program: (node) => context.report({ node, message: 'foo' }) }),
(descriptor) => ({ ...descriptor, message: descriptor.message.toUpperCase() }),
),
{
valid: [],
Expand All @@ -177,16 +175,16 @@ ruleTester.run(
],
},
],
}
},
);

// test with settings

ruleTester.run(
'mapReports - with settings',
ruleComposer.mapReports(
context => ({ Program: node => context.report({ node, message: 'foo' }) }),
(descriptor, m) => Object.assign({}, descriptor, { message: descriptor.message[m.settings.method]() })
(context) => ({ Program: (node) => context.report({ node, message: 'foo' }) }),
(descriptor, m) => ({ ...descriptor, message: descriptor.message[m.settings.method]() }),
),
{
valid: [],
Expand All @@ -199,16 +197,16 @@ ruleTester.run(
settings: { method: 'toUpperCase' },
},
],
}
},
);

// test with settings

ruleTester.run(
'mapReports - with options',
ruleComposer.mapReports(
context => ({ Program: node => context.report({ node, message: 'foo' }) }),
(descriptor, m) => Object.assign({}, descriptor, { message: descriptor.message[m.options[0].method]() })
(context) => ({ Program: (node) => context.report({ node, message: 'foo' }) }),
(descriptor, m) => ({ ...descriptor, message: descriptor.message[m.options[0].method]() }),
),
{
valid: [],
Expand All @@ -221,14 +219,14 @@ ruleTester.run(
options: [{ method: 'toUpperCase' }],
},
],
}
},
);

ruleTester.run(
'mapReports with filename',
ruleComposer.mapReports(
context => ({ Program: node => context.report({ node, message: 'foo' }) }),
(descriptor, metadata) => Object.assign({}, descriptor, { message: metadata.filename })
(context) => ({ Program: (node) => context.report({ node, message: 'foo' }) }),
(descriptor, metadata) => ({ ...descriptor, message: metadata.filename }),
),
{
valid: [],
Expand All @@ -241,14 +239,14 @@ ruleTester.run(
],
},
],
}
},
);

ruleTester.run(
'checking the first token of the report',
ruleComposer.filterReports(
coreRules.get('no-unused-expressions'),
(problem, metadata) => metadata.sourceCode.getFirstToken(problem.node).value !== 'expect'
(problem, metadata) => metadata.sourceCode.getFirstToken(problem.node).value !== 'expect',
),
{
valid: [
Expand All @@ -261,7 +259,7 @@ ruleTester.run(
errors: 1,
},
],
}
},
);

ruleTester.run(
Expand Down Expand Up @@ -304,7 +302,7 @@ ruleTester.run(
}

return problem.message === 'Foo error.' || problem.messageId === 'baz';
}
},
),
{
valid: [],
Expand All @@ -317,5 +315,5 @@ ruleTester.run(
],
},
],
}
},
);

0 comments on commit 8d0bda7

Please sign in to comment.