eslint-plugin-ecmalist
Version:
Combination of eslint, ecmascript and browserslist
181 lines (174 loc) • 10.1 kB
JavaScript
const verReg = /^\D?(\d+).?(\d+)?.?(\d+)?/
const blToMdn = {
chrome: 'chrome',
and_chr: 'chrome_android',
deno: 'deno',
edge: 'edge',
firefox: 'firefox',
and_ff: 'firefox_android',
ie: 'ie',
node: 'nodejs',
opera: 'opera',
op_mob: 'opera_android',
safari: 'safari',
ios_saf: 'safari_ios',
samsung: 'samsunginternet_android',
android: 'webview_android',
}
const mdnToBl = Object.keys(blToMdn).reduce((acc, blName) => {
acc[blToMdn[blName]] = blName
return acc
}, {})
// prettier-ignore
const localRules = {
'no-accessor-properties': ['operators', 'property_accessors'],
'no-array-from': ['builtins', 'Array', 'from'],
'no-array-isarray': ['builtins', 'Array', 'isArray'],
'no-array-of': ['builtins', 'Array', 'of'],
'no-array-prototype-copywithin': ['builtins', 'Array', 'copyWithin'],
'no-array-prototype-entries': ['builtins', 'Array', 'entries'],
'no-array-prototype-every': ['builtins', 'Array', 'every'],
'no-array-prototype-fill': ['builtins', 'Array', 'fill'],
'no-array-prototype-filter': ['builtins', 'Array', 'filter'],
'no-array-prototype-find': ['builtins', 'Array', 'find'],
'no-array-prototype-findindex': ['builtins', 'Array', 'findIndex'],
'no-array-prototype-flat': ['builtins', 'Array', 'flat'],
'no-array-prototype-foreach': ['builtins', 'Array', 'forEach'],
'no-array-prototype-includes': ['builtins', 'Array', 'includes'],
'no-array-prototype-indexof': ['builtins', 'Array', 'indexOf'],
'no-array-prototype-keys': ['builtins', 'Array', 'keys'],
'no-array-prototype-lastindexof': ['builtins', 'Array', 'lastIndexOf'],
'no-array-prototype-map': ['builtins', 'Array', 'map'],
'no-array-prototype-reduce': ['builtins', 'Array', 'reduce'],
'no-array-prototype-reduceright': ['builtins', 'Array', 'reduceRight'],
'no-array-prototype-some': ['builtins', 'Array', 'some'],
'no-array-prototype-values': ['builtins', 'Array', 'values'],
'no-arrow-functions': ['functions', 'arrow_functions'],
'no-async-functions': ['statements', 'async_function'],
'no-async-iteration': ['statements', 'for_await_of'],
'no-atomics': ['builtins', 'Atomics'],
'no-bigint': ['builtins', 'BigInt'],
'no-binary-numeric-literals': ['grammar', 'binary_numeric_literals'],
'no-block-scoped-functions': ['functions', 'block_level_functions'],
'no-block-scoped-variables': ['statements', 'let'],
'no-classes': ['statements', 'class'],
'no-computed-properties': ['operators', 'object_initializer', 'computed_property_names'],
'no-date-now': ['builtins', 'Date', 'now'],
'no-default-parameters': ['functions', 'default_parameters'],
'no-destructuring': ['operators', 'destructuring'],
'no-dynamic-import': ['statements', 'import', 'dynamic_import'],
'no-exponential-operators': ['operators', 'exponentiation'],
'no-export-ns-from': ['statements', 'export', 'namespace'],
'no-for-of-loops': ['statements', 'for_of'],
'no-function-prototype-bind': ['builtins', 'Function', 'bind'],
'no-generators': ['statements', 'generator_function'],
'no-global-this': ['builtins', 'globalThis'],
'no-import-meta': ['statements', 'import_meta'],
'no-json': ['builtins', 'JSON'],
'no-json-superset': ['builtins', 'JSON', 'json_superset'],
'no-keyword-properties': ['builtins', 'Object', 'assign'],
'no-logical-assignment-operators': ['operators', 'logical_nullish_assignment'],
'no-malformed-template-literals': ['grammar', 'template_literals', 'template_literal_revision'],
'no-map': ['builtins', 'Map'],
'no-math-acosh': ['builtins', 'Math', 'acosh'],
'no-math-asinh': ['builtins', 'Math', 'asinh'],
'no-math-atanh': ['builtins', 'Math', 'atanh'],
'no-math-cbrt': ['builtins', 'Math', 'cbrt'],
'no-math-clz32': ['builtins', 'Math', 'clz32'],
'no-math-cosh': ['builtins', 'Math', 'cosh'],
'no-math-expm1': ['builtins', 'Math', 'expm1'],
'no-math-fround': ['builtins', 'Math', 'fround'],
'no-math-hypot': ['builtins', 'Math', 'hypot'],
'no-math-imul': ['builtins', 'Math', 'imul'],
'no-math-log1p': ['builtins', 'Math', 'log1p'],
'no-math-log2': ['builtins', 'Math', 'log2'],
'no-math-log10': ['builtins', 'Math', 'log10'],
'no-math-sign': ['builtins', 'Math', 'sign'],
'no-math-sinh': ['builtins', 'Math', 'sinh'],
'no-math-tanh': ['builtins', 'Math', 'tanh'],
'no-math-trunc': ['builtins', 'Math', 'trunc'],
'no-modules': ['statements', 'export'],
'no-new-target': ['operators', 'new_target'],
'no-nullish-coalescing-operators': ['operators', 'nullish_coalescing'],
'no-number-epsilon': ['builtins', 'Number', 'EPSILON'],
'no-number-isfinite': ['builtins', 'Number', 'isFinite'],
'no-number-isinteger': ['builtins', 'Number', 'isInteger'],
'no-number-isnan': ['builtins', 'Number', 'isNaN'],
'no-number-issafeinteger': ['builtins', 'Number', 'isSafeInteger'],
'no-number-maxsafeinteger': ['builtins', 'Number', 'MAX_SAFE_INTEGER'],
'no-number-minsafeinteger': ['builtins', 'Number', 'MIN_SAFE_INTEGER'],
'no-number-parsefloat': ['builtins', 'Number', 'parseFloat'],
'no-number-parseint': ['builtins', 'Number', 'parseInt'],
'no-numeric-separators': ['grammar', 'numeric_separators'],
'no-object-assign': ['builtins', 'Object', 'assign'],
'no-object-create': ['builtins', 'Object', 'create'],
'no-object-defineproperties': ['builtins', 'Object', 'defineProperties'],
'no-object-defineproperty': ['builtins', 'Object', 'defineProperty'],
'no-object-entries': ['builtins', 'Object', 'entries'],
'no-object-freeze': ['builtins', 'Object', 'freeze'],
'no-object-fromentries': ['builtins', 'Object', 'fromEntries'],
'no-object-getownpropertydescriptor': ['builtins', 'Object', 'getOwnPropertyDescriptor'],
'no-object-getownpropertydescriptors': ['builtins', 'Object', 'getOwnPropertyDescriptors'],
'no-object-getownpropertynames': ['builtins', 'Object', 'getOwnPropertyNames'],
'no-object-getownpropertysymbols': ['builtins', 'Object', 'getOwnPropertySymbols'],
'no-object-getprototypeof': ['builtins', 'Object', 'getPrototypeOf'],
'no-object-is': ['builtins', 'Object', 'is'],
'no-object-isextensible': ['builtins', 'Object', 'isExtensible'],
'no-object-isfrozen': ['builtins', 'Object', 'isFrozen'],
'no-object-issealed': ['builtins', 'Object', 'isSealed'],
'no-object-keys': ['builtins', 'Object', 'keys'],
'no-object-preventextensions': ['builtins', 'Object', 'preventExtensions'],
'no-object-seal': ['builtins', 'Object', 'seal'],
'no-object-setprototypeof': ['builtins', 'Object', 'setPrototypeOf'],
'no-object-super-properties': ['operators', 'super'],
'no-object-values': ['builtins', 'Object', 'values'],
'no-octal-numeric-literals': ['grammar', 'octal_numeric_literals'],
'no-optional-catch-binding': ['statements', 'try_catch', 'optional_catch_binding'],
'no-optional-chaining': ['operators', 'optional_chaining'],
'no-promise': ['builtins', 'Promise'],
'no-promise-all-settled': ['builtins', 'Promise', 'allSettled'],
'no-promise-any': ['builtins', 'Promise', 'any'],
'no-promise-prototype-finally': ['builtins', 'Promise', 'finally'],
'no-property-shorthands': ['operators', 'object_initializer', 'shorthand_method_names'],
'no-proxy': ['builtins', 'Proxy'],
'no-reflect': ['builtins', 'Reflect'],
'no-regexp-lookbehind-assertions': ['builtins', 'RegExp', 'lookbehind_assertion'],
'no-regexp-named-capture-groups': ['builtins', 'RegExp', 'named_capture_groups'],
'no-regexp-prototype-flags': ['builtins', 'RegExp', 'flags'],
'no-regexp-s-flag': ['builtins', 'RegExp', 'dotAll'],
'no-regexp-u-flag': ['builtins', 'RegExp', 'unicode'],
'no-regexp-unicode-property-escapes': ['builtins', 'RegExp', 'property_escapes'],
'no-regexp-unicode-property-escapes-2019': ['builtins', 'RegExp', 'property_escapes'],
'no-regexp-y-flag': ['builtins', 'RegExp', 'sticky'],
'no-rest-parameters': ['functions', 'rest_parameters'],
'no-rest-spread-properties': ['operators', 'destructuring', 'rest_in_objects'],
'no-set': ['builtins', 'Set'],
'no-shared-array-buffer': ['builtins', 'SharedArrayBuffer'],
'no-spread-elements': ['operators', 'object_initializer', 'spread_properties'],
'no-string-fromcodepoint': ['builtins', 'String', 'fromCodePoint'],
'no-string-prototype-codepointat': ['builtins', 'String', 'codePointAt'],
'no-string-prototype-endswith': ['builtins', 'String', 'endsWith'],
'no-string-prototype-includes': ['builtins', 'String', 'includes'],
'no-string-prototype-matchall': ['builtins', 'String', 'matchAll'],
'no-string-prototype-normalize': ['builtins', 'String', 'normalize'],
'no-string-prototype-padstart-padend': ['builtins', 'String', 'padEnd'],
'no-string-prototype-repeat': ['builtins', 'String', 'repeat'],
'no-string-prototype-replaceall': ['builtins', 'String', 'replaceAll'],
'no-string-prototype-startswith': ['builtins', 'String', 'startsWith'],
'no-string-prototype-trim': ['builtins', 'String', 'trim'],
'no-string-prototype-trimstart-trimend': ['builtins', 'String', 'trimEnd'],
'no-string-raw': ['builtins', 'String', 'raw'],
'no-subclassing-builtins': ['classes', 'extends'],
'no-symbol': ['builtins', 'Symbol'],
'no-symbol-prototype-description': ['builtins', 'Symbol', 'description'],
'no-template-literals': ['grammar', 'template_literals'],
'no-trailing-commas': ['grammar', 'trailing_commas'],
'no-trailing-function-commas': ['grammar', 'trailing_commas', 'trailing_commas_in_functions'],
'no-typed-arrays': ['builtins', 'TypedArray'],
'no-unicode-codepoint-escapes': ['grammar', 'unicode_point_escapes'],
'no-weak-map': ['builtins', 'WeakMap'],
'no-weak-set': ['builtins', 'WeakSet'],
'no-weakrefs': ['builtins', 'WeakRef'],
}
module.exports = { verReg, blToMdn, mdnToBl, localRules }