You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-12-08 19:08:34 +03:00
* Install eslint-plugin-jsdoc * Enable lint rule jsdoc/no-types * Make tsdoc more valid, add required hyphens and s/return/returns/g * Stash tsdoc work * Fix mistypes * Stash * Stash * More tsdoc work * Remove useless doc params * Fixup docs * Apply suggestions from code review Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Update src/crypto/verification/request/ToDeviceChannel.ts Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Update src/client.ts Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Update src/client.ts Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Update src/client.ts Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Iterate Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
120 lines
3.8 KiB
JavaScript
120 lines
3.8 KiB
JavaScript
module.exports = {
|
|
plugins: [
|
|
"matrix-org",
|
|
"import",
|
|
"jsdoc",
|
|
],
|
|
extends: [
|
|
"plugin:matrix-org/babel",
|
|
"plugin:import/typescript",
|
|
],
|
|
env: {
|
|
browser: true,
|
|
node: true,
|
|
},
|
|
settings: {
|
|
"import/resolver": {
|
|
typescript: true,
|
|
node: true,
|
|
},
|
|
},
|
|
// NOTE: These rules are frozen and new rules should not be added here.
|
|
// New changes belong in https://github.com/matrix-org/eslint-plugin-matrix-org/
|
|
rules: {
|
|
"no-var": ["error"],
|
|
"prefer-rest-params": ["error"],
|
|
"prefer-spread": ["error"],
|
|
"one-var": ["error"],
|
|
"padded-blocks": ["error"],
|
|
"no-extend-native": ["error"],
|
|
"camelcase": ["error"],
|
|
"no-multi-spaces": ["error", { "ignoreEOLComments": true }],
|
|
"space-before-function-paren": ["error", {
|
|
"anonymous": "never",
|
|
"named": "never",
|
|
"asyncArrow": "always",
|
|
}],
|
|
"arrow-parens": "off",
|
|
"prefer-promise-reject-errors": "off",
|
|
"quotes": "off",
|
|
"indent": "off",
|
|
"no-constant-condition": "off",
|
|
"no-async-promise-executor": "off",
|
|
// We use a `logger` intermediary module
|
|
"no-console": "error",
|
|
|
|
// restrict EventEmitters to force callers to use TypedEventEmitter
|
|
"no-restricted-imports": ["error", {
|
|
name: "events",
|
|
message: "Please use TypedEventEmitter instead",
|
|
}],
|
|
|
|
"import/no-restricted-paths": ["error", {
|
|
"zones": [{
|
|
"target": "./src/",
|
|
"from": "./src/index.ts",
|
|
"message": "The package index is dynamic between src and lib depending on " +
|
|
"whether release or development, target the specific module or matrix.ts instead",
|
|
}],
|
|
}],
|
|
},
|
|
overrides: [{
|
|
files: [
|
|
"**/*.ts",
|
|
],
|
|
plugins: [
|
|
"eslint-plugin-tsdoc",
|
|
],
|
|
extends: [
|
|
"plugin:matrix-org/typescript",
|
|
],
|
|
rules: {
|
|
// TypeScript has its own version of this
|
|
"@babel/no-invalid-this": "off",
|
|
|
|
// We're okay being explicit at the moment
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
// We disable this while we're transitioning
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
// We'd rather not do this but we do
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
// We're okay with assertion errors when we ask for them
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
|
|
// The non-TypeScript rule produces false positives
|
|
"func-call-spacing": "off",
|
|
"@typescript-eslint/func-call-spacing": ["error"],
|
|
|
|
"quotes": "off",
|
|
// We use a `logger` intermediary module
|
|
"no-console": "error",
|
|
|
|
},
|
|
}, {
|
|
// We don't need amazing docs in our spec files
|
|
files: [
|
|
"src/**/*.ts",
|
|
],
|
|
rules: {
|
|
"tsdoc/syntax": "error",
|
|
// We use some select jsdoc rules as the tsdoc linter has only one rule
|
|
"jsdoc/no-types": "error",
|
|
"jsdoc/empty-tags": "error",
|
|
"jsdoc/check-property-names": "error",
|
|
"jsdoc/check-values": "error",
|
|
// These need a bit more work before we can enable
|
|
// "jsdoc/check-param-names": "error",
|
|
// "jsdoc/check-indentation": "error",
|
|
},
|
|
}, {
|
|
files: [
|
|
"spec/**/*.ts",
|
|
],
|
|
rules: {
|
|
// We don't need super strict typing in test utilities
|
|
"@typescript-eslint/explicit-function-return-type": "off",
|
|
"@typescript-eslint/explicit-member-accessibility": "off",
|
|
},
|
|
}],
|
|
};
|