diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..30a0dae7c --- /dev/null +++ b/.eslintignore @@ -0,0 +1,15 @@ +# Known minified files +/boot/sjcl.js +/core/modules/utils/base64-utf8/base64-utf8.module.min.js +/core/modules/utils/diff-match-patch/diff_match_patch.js +/plugins/tiddlywiki/async/files/async.min.v1.5.0.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/anyword-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/css-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/html-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/javascript-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/show-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/xml-hint.js +/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/closebrackets.js +/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/matchbrackets.js +/plugins/tiddlywiki/codemirror-closetag/files/addon/edit/closetag.js +/plugins/tiddlywiki/codemirror-closetag/files/addon/fold/xml-fold.js diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 000000000..105ca829e --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,267 @@ +env: + browser: true + commonjs: true + es2021: true + node: true +extends: 'eslint:recommended' +globals: + "$tw": "writable" # temporary +parserOptions: + ecmaVersion: 5 +rules: + array-bracket-newline: 'off' + array-bracket-spacing: 'off' + array-callback-return: 'off' + array-element-newline: 'off' + arrow-body-style: error + arrow-parens: + - error + - as-needed + arrow-spacing: + - error + - after: true + before: true + block-scoped-var: 'off' + block-spacing: 'off' + brace-style: 'off' + callback-return: 'off' + camelcase: 'off' + capitalized-comments: 'off' + class-methods-use-this: error + comma-dangle: 'off' + comma-spacing: 'off' + comma-style: 'off' + complexity: 'off' + computed-property-spacing: 'off' + consistent-return: 'off' + consistent-this: 'off' + curly: 'off' + default-case: 'off' + default-case-last: error + default-param-last: error + dot-location: 'off' + dot-notation: 'off' + eol-last: 'off' + eqeqeq: 'off' + func-call-spacing: 'off' + func-name-matching: 'off' + func-names: 'off' + func-style: 'off' + function-call-argument-newline: 'off' + function-paren-newline: 'off' + generator-star-spacing: error + global-require: 'off' + grouped-accessor-pairs: error + guard-for-in: 'off' + handle-callback-err: 'off' + id-blacklist: error + id-denylist: error + id-length: 'off' + id-match: error + implicit-arrow-linebreak: error + indent: 'off' + indent-legacy: 'off' + init-declarations: 'off' + jsx-quotes: error + key-spacing: 'off' + keyword-spacing: 'off' + line-comment-position: 'off' + linebreak-style: 'off' + lines-around-comment: 'off' + lines-around-directive: 'off' + lines-between-class-members: error + max-classes-per-file: error + max-depth: 'off' + max-len: 'off' + max-lines: 'off' + max-lines-per-function: 'off' + max-nested-callbacks: error + max-params: 'off' + max-statements: 'off' + max-statements-per-line: 'off' + multiline-comment-style: 'off' + multiline-ternary: 'off' + new-parens: 'off' + newline-after-var: 'off' + newline-before-return: 'off' + newline-per-chained-call: 'off' + no-alert: 'off' + no-array-constructor: 'off' + no-await-in-loop: error + no-bitwise: 'off' + no-buffer-constructor: 'off' + no-caller: error + no-catch-shadow: 'off' + no-confusing-arrow: error + no-console: 'off' + no-constant-condition: + - error + - checkLoops: false + no-constructor-return: error + no-continue: 'off' + no-div-regex: 'off' + no-duplicate-imports: error + no-else-return: 'off' + no-empty-function: 'off' + no-eq-null: 'off' + no-eval: 'off' + no-extend-native: 'off' + no-extra-bind: 'off' + no-extra-label: 'off' + no-extra-parens: 'off' + no-floating-decimal: 'off' + no-implicit-coercion: + - error + - boolean: false + number: false + string: false + no-implicit-globals: 'off' + no-implied-eval: error + no-inline-comments: 'off' + no-invalid-this: 'off' + no-iterator: error + no-label-var: 'off' + no-labels: 'off' + no-lone-blocks: 'off' + no-lonely-if: 'off' + no-loop-func: 'off' + no-loss-of-precision: error + no-magic-numbers: 'off' + no-mixed-operators: 'off' + no-mixed-requires: 'off' + no-multi-assign: 'off' + no-multi-spaces: 'off' + no-multi-str: error + no-multiple-empty-lines: 'off' + no-native-reassign: 'off' + no-negated-condition: 'off' + no-negated-in-lhs: error + no-nested-ternary: 'off' + no-new: 'off' + no-new-func: 'off' + no-new-object: 'off' + no-new-require: error + no-new-wrappers: error + no-octal-escape: error + no-param-reassign: 'off' + no-path-concat: error + no-plusplus: 'off' + no-process-env: 'off' + no-process-exit: 'off' + no-promise-executor-return: error + no-proto: 'off' + no-restricted-exports: error + no-restricted-globals: error + no-restricted-imports: error + no-restricted-modules: error + no-restricted-properties: error + no-restricted-syntax: error + no-return-assign: 'off' + no-return-await: error + no-script-url: 'off' + no-self-compare: 'off' + no-sequences: 'off' + no-shadow: 'off' + no-spaced-func: 'off' + no-sync: 'off' + no-tabs: 'off' + no-template-curly-in-string: error + no-ternary: 'off' + no-throw-literal: 'off' + no-trailing-spaces: 'off' + no-undef-init: 'off' + no-undefined: 'off' + no-underscore-dangle: 'off' + no-unmodified-loop-condition: 'off' + no-unneeded-ternary: 'off' + no-unreachable-loop: error + no-unused-expressions: 'off' + no-use-before-define: 'off' + no-useless-backreference: error + no-useless-call: 'off' + no-useless-computed-key: error + no-useless-concat: 'off' + no-useless-constructor: error + no-useless-rename: error + no-useless-return: 'off' + no-var: 'off' + no-void: 'off' + no-warning-comments: 'off' + no-whitespace-before-property: error + nonblock-statement-body-position: + - error + - any + object-curly-newline: 'off' + object-curly-spacing: 'off' + object-property-newline: 'off' + object-shorthand: 'off' + one-var: 'off' + one-var-declaration-per-line: 'off' + operator-assignment: 'off' + operator-linebreak: 'off' + padded-blocks: 'off' + padding-line-between-statements: error + prefer-arrow-callback: 'off' + prefer-const: 'off' + prefer-destructuring: 'off' + prefer-exponentiation-operator: 'off' + prefer-named-capture-group: 'off' + prefer-numeric-literals: error + prefer-object-spread: 'off' + prefer-promise-reject-errors: error + prefer-reflect: 'off' + prefer-regex-literals: 'off' + prefer-rest-params: 'off' + prefer-spread: 'off' + prefer-template: 'off' + quote-props: 'off' + quotes: 'off' + radix: 'off' + require-atomic-updates: error + require-await: error + require-jsdoc: 'off' + require-unicode-regexp: 'off' + rest-spread-spacing: error + semi: 'off' + semi-spacing: 'off' + semi-style: 'off' + sort-imports: error + sort-keys: 'off' + sort-vars: 'off' + space-before-blocks: 'off' + space-before-function-paren: 'off' + space-in-parens: 'off' + space-infix-ops: 'off' + space-unary-ops: 'off' + spaced-comment: 'off' + strict: 'off' + switch-colon-spacing: 'off' + symbol-description: error + template-curly-spacing: error + template-tag-spacing: error + unicode-bom: + - error + - never + valid-jsdoc: 'off' + valid-typeof: + - error + - requireStringLiterals: false + vars-on-top: 'off' + wrap-iife: 'off' + wrap-regex: 'off' + yield-star-spacing: error + yoda: 'off' + + # temporary rules + no-useless-escape: 'off' + no-unused-vars: 'off' + no-empty: 'off' + no-extra-semi: 'off' + no-redeclare: 'off' + no-control-regex: "off" + no-mixed-spaces-and-tabs: "off" + no-extra-boolean-cast: "off" + no-prototype-builtins: "off" + no-undef: "off" + no-unreachable: "off" + no-self-assign: "off" diff --git a/package.json b/package.json index 5d93e5274..ff7af3897 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,9 @@ "wiki" ], "dependencies": {}, - "devDependencies": {}, + "devDependencies": { + "eslint": "^7.10.0" + }, "bundleDependencies": [], "license": "BSD", "engines": {