8d56a69e74
With these changes SystemJS is now only used, during development, on the worker-thread and in the unit/font-tests, since Firefox is currently missing support for worker modules; please see https://bugzilla.mozilla.org/show_bug.cgi?id=1247687 Hence all the JavaScript files in the `web/` and `src/display/` folders are now loaded *natively* by the browser (during development) using standard `import` statements/calls, thanks to a nice `import-maps` polyfill. *Please note:* As soon as https://bugzilla.mozilla.org/show_bug.cgi?id=1247687 is fixed in Firefox, we should be able to remove all traces of SystemJS and thus finally be able to use every possible modern JavaScript feature.
196 lines
5.5 KiB
Plaintext
196 lines
5.5 KiB
Plaintext
{
|
|
"parserOptions": {
|
|
"ecmaVersion": 2020,
|
|
"sourceType": "module",
|
|
},
|
|
|
|
"plugins": [
|
|
"import",
|
|
"mozilla",
|
|
"no-unsanitized",
|
|
"unicorn",
|
|
],
|
|
|
|
"extends": [
|
|
"plugin:prettier/recommended"
|
|
],
|
|
|
|
"env": {
|
|
"browser": true,
|
|
"es2020": true,
|
|
"worker": true,
|
|
"amd": true,
|
|
},
|
|
|
|
"globals": {
|
|
"PDFJSDev": false,
|
|
"exports": false,
|
|
"SystemJS": false,
|
|
},
|
|
|
|
"rules": {
|
|
// Plugins
|
|
"import/extensions": ["error", "always", { "ignorePackages": true, }],
|
|
"import/no-unresolved": "error",
|
|
"mozilla/avoid-removeChild": "error",
|
|
"mozilla/use-includes-instead-of-indexOf": "error",
|
|
"no-unsanitized/method": "error",
|
|
"no-unsanitized/property": "error",
|
|
"unicorn/no-array-instanceof": "error",
|
|
"unicorn/prefer-starts-ends-with": "error",
|
|
|
|
// Possible errors
|
|
"for-direction": "error",
|
|
"getter-return": "error",
|
|
"no-async-promise-executor": "error",
|
|
"no-cond-assign": ["error", "except-parens"],
|
|
"no-constant-condition": ["error", { "checkLoops": false, }],
|
|
"no-dupe-args": "error",
|
|
"no-dupe-else-if": "error",
|
|
"no-dupe-keys": "error",
|
|
"no-duplicate-case": "error",
|
|
"no-empty": ["error", { "allowEmptyCatch": true, }],
|
|
"no-ex-assign": "error",
|
|
"no-extra-boolean-cast": "error",
|
|
"no-func-assign": "error",
|
|
"no-inner-declarations": ["error", "functions"],
|
|
"no-invalid-regexp": "error",
|
|
"no-irregular-whitespace": "error",
|
|
"no-obj-calls": "error",
|
|
"no-regex-spaces": "error",
|
|
"no-setter-return": "error",
|
|
"no-sparse-arrays": "error",
|
|
"no-unexpected-multiline": "error",
|
|
"no-unreachable": "error",
|
|
"no-unsafe-finally": "error",
|
|
"no-unsafe-negation": "error",
|
|
"use-isnan": ["error", { "enforceForIndexOf": true, }],
|
|
"valid-typeof": ["error", { "requireStringLiterals": true, }],
|
|
|
|
// Best Practices
|
|
"accessor-pairs": ["error", {
|
|
"setWithoutGet": true,
|
|
"enforceForClassMembers": true,
|
|
}],
|
|
"consistent-return": "error",
|
|
"curly": ["error", "all"],
|
|
"default-case-last": "error",
|
|
"dot-notation": "error",
|
|
"eqeqeq": ["error", "always"],
|
|
"grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
"no-caller": "error",
|
|
"no-else-return": "error",
|
|
"no-empty-pattern": "error",
|
|
"no-eval": "error",
|
|
"no-extend-native": "error",
|
|
"no-extra-bind": "error",
|
|
"no-extra-label": "error",
|
|
"no-fallthrough": "error",
|
|
"no-floating-decimal": "error",
|
|
"no-global-assign": "error",
|
|
"no-implied-eval": "error",
|
|
"no-iterator": "error",
|
|
"no-lone-blocks": "error",
|
|
"no-multi-str": "error",
|
|
"no-new-func": "error",
|
|
"no-new-wrappers": "error",
|
|
"no-new": "error",
|
|
"no-octal-escape": "error",
|
|
"no-octal": "error",
|
|
"no-redeclare": "error",
|
|
"no-return-await": "error",
|
|
"no-self-assign": "error",
|
|
"no-self-compare": "error",
|
|
"no-throw-literal": "error",
|
|
"no-unused-expressions": "error",
|
|
"no-unused-labels": "error",
|
|
"no-useless-call": "error",
|
|
"no-useless-catch": "error",
|
|
"no-useless-concat": "error",
|
|
"no-useless-return": "error",
|
|
"prefer-promise-reject-errors": "error",
|
|
"wrap-iife": ["error", "any"],
|
|
"yoda": ["error", "never", {
|
|
"exceptRange": true,
|
|
}],
|
|
|
|
// Strict Mode
|
|
"strict": ["off", "global"],
|
|
|
|
// Variables
|
|
"no-catch-shadow": "error",
|
|
"no-delete-var": "error",
|
|
"no-label-var": "error",
|
|
"no-shadow": "error",
|
|
"no-shadow-restricted-names": "error",
|
|
"no-undef-init": "error",
|
|
"no-undef": ["error", { "typeof": true, }],
|
|
"no-unused-vars": ["error", {
|
|
"vars": "local",
|
|
"args": "none",
|
|
}],
|
|
|
|
// Node.js and CommonJS
|
|
"no-buffer-constructor": "error",
|
|
|
|
// Stylistic Issues
|
|
"lines-between-class-members": ["error", "always"],
|
|
"max-len": ["error", {
|
|
"code": 1000,
|
|
"comments": 80,
|
|
"ignoreUrls": true
|
|
}],
|
|
"new-cap": ["error", { "newIsCap": true, "capIsNew": false, }],
|
|
"no-array-constructor": "error",
|
|
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 1, }],
|
|
"no-nested-ternary": "error",
|
|
"no-new-object": "error",
|
|
"no-restricted-syntax": ["error",
|
|
{
|
|
"selector": "CallExpression[callee.name='assert'][arguments.length!=2]",
|
|
"message": "`assert()` must always be invoked with two arguments.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Cmd']",
|
|
"message": "Use `Cmd.get()` rather than `new Cmd()`.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Name']",
|
|
"message": "Use `Name.get()` rather than `new Name()`.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Ref']",
|
|
"message": "Use `Ref.get()` rather than `new Ref()`.",
|
|
},
|
|
],
|
|
"no-unneeded-ternary": "error",
|
|
"prefer-exponentiation-operator": "error",
|
|
"spaced-comment": ["error", "always", {
|
|
"block": {
|
|
"balanced": true,
|
|
}
|
|
}],
|
|
|
|
// ECMAScript 6
|
|
"constructor-super": "error",
|
|
"no-class-assign": "error",
|
|
"no-confusing-arrow": "error",
|
|
"no-const-assign": "error",
|
|
"no-dupe-class-members": "error",
|
|
"no-duplicate-imports": "error",
|
|
"no-this-before-super": "error",
|
|
"no-useless-computed-key": "error",
|
|
"no-useless-constructor": "error",
|
|
"no-useless-rename": "error",
|
|
"no-var": "off",
|
|
"object-shorthand": ["error", "always", {
|
|
"avoidQuotes": true,
|
|
}],
|
|
"prefer-const": "error",
|
|
"sort-imports": ["error", {
|
|
"ignoreCase": true,
|
|
}],
|
|
"template-curly-spacing": ["error", "never"],
|
|
},
|
|
}
|