eslint-plugin-ecmascript-compat
Version:
ESLint plugin for checking JavaScript code compatibility with target browsers and Node.js versions
66 lines (64 loc) • 1.99 kB
JavaScript
const compatData = require('@mdn/browser-compat-data');
const esPlugin = require('eslint-plugin-es-x');
module.exports = [
{
ruleConfig: {
definition: esPlugin.rules['no-array-prototype-findlast-findlastindex'],
options: [{ aggressive: true }],
},
compatFeatures: [
compatData.javascript.builtins.Array.findLast,
compatData.javascript.builtins.Array.findLastIndex,
compatData.javascript.builtins.TypedArray.findLast,
compatData.javascript.builtins.TypedArray.findLastIndex,
],
polyfill: '{Array,TypedArray}.prototype.findLast',
},
{
ruleConfig: {
definition: esPlugin.rules['no-array-prototype-toreversed'],
options: [{ aggressive: true }],
},
compatFeatures: [
compatData.javascript.builtins.Array.toReversed,
compatData.javascript.builtins.TypedArray.toReversed,
],
polyfill: '{Array,TypedArray}.prototype.toReversed',
},
{
ruleConfig: {
definition: esPlugin.rules['no-array-prototype-tosorted'],
options: [{ aggressive: true }],
},
compatFeatures: [
compatData.javascript.builtins.Array.toSorted,
compatData.javascript.builtins.TypedArray.toSorted,
],
polyfill: '{Array,TypedArray}.prototype.toSorted',
},
{
ruleConfig: {
definition: esPlugin.rules['no-array-prototype-tospliced'],
options: [{ aggressive: true }],
},
compatFeatures: [compatData.javascript.builtins.Array.toSpliced],
polyfill: 'Array.prototype.toSpliced',
},
{
ruleConfig: {
definition: esPlugin.rules['no-array-prototype-with'],
options: [{ aggressive: true }],
},
compatFeatures: [
compatData.javascript.builtins.Array.with,
compatData.javascript.builtins.TypedArray.with,
],
polyfill: '{Array,TypedArray}.prototype.with',
},
{
ruleConfig: {
definition: esPlugin.rules['no-hashbang'],
},
compatFeatures: [compatData.javascript.grammar.hashbang_comments],
},
];