* Add the channel options to get into playbooks (#8750)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Address design issues
* Add requested comment
---------
* Playbooks database (#8802)
* Add lastPlaybookFetchAt to channel table (#8916)
* Add lastPlaybookFetchAt to channel table
* Add missing commit
* Use my_channel table instead
* Fix test
* Address feedback
* First implementation of playbooks API (#8897)
* First implementation of playbooks API
* Add version check
* Address feedback
* Fix test
* Add last fetch at usage and other improvements
* Simplify test
* Add sort_order, update_at and previousReminder columns (#8927)
* Add sort_order, update_at and previousReminder columns
* Remove order from the schema
* Fix tests
* Add tests
* Add websockets for playbooks (#8947)
* Add websocket events for playbooks
* Fix typo
* Add playbook run list (#8761)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Fix merge
* Add API related functionality
---------
* Add playbooks run details (#8872)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Add playbooks run details
* Fix merge
* Add API related functionality
* Add API related changes
* Order fixes
* Several fixes
* Add error state on playbook run
* i18n-extract
* Fix tests
* Fix test
* Several fixes
* Fixes and add missing UI elements
* i18n-extract
* Fix tests
* Remove files from bad merge
---------
* Add missing tests for playbooks (#8976)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Add playbooks run details
* Fix merge
* Add API related functionality
* Add API related changes
* Order fixes
* Several fixes
* Add error state on playbook run
* i18n-extract
* Fix tests
* Fix test
* Several fixes
* Fixes and add missing UI elements
* i18n-extract
* Fix tests
* Remove files from bad merge
* Add tests
* Fix typo
* Add missing strings
* Fix tests and skip some
* Fix test
* Fix typo
---------
* Address feedback
* Address feedback and fix tests
* Address comments and fix tests
* Address feedback
* Address plugin changes and fix bugs
---------
(cherry picked from commit bb7ff622af)
Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
143 lines
4 KiB
JavaScript
143 lines
4 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {defineConfig, globalIgnores} from 'eslint/config';
|
|
import tseslint from "@typescript-eslint/eslint-plugin";
|
|
import * as tsparser from "@typescript-eslint/parser";
|
|
import importPlugin from "eslint-plugin-import";
|
|
import reactHooks from "eslint-plugin-react-hooks";
|
|
import stylisticTs from "@stylistic/eslint-plugin-ts";
|
|
|
|
// Load custom rulesets
|
|
import eslintMattermost, {jestConfig} from "./eslint/eslint-mattermost.mjs";
|
|
import eslintReact from "./eslint/eslint-react.mjs";
|
|
|
|
export default defineConfig([
|
|
globalIgnores([
|
|
"node_modules/",
|
|
"dist/",
|
|
"build/",
|
|
"coverage/",
|
|
"android/",
|
|
"ios/",
|
|
".github/",
|
|
"detox/artifacts/",
|
|
]),
|
|
eslintMattermost,
|
|
jestConfig,
|
|
eslintReact,
|
|
{
|
|
files: ["**/*.{js,jsx,ts,tsx}"],
|
|
languageOptions: {
|
|
parser: tsparser,
|
|
parserOptions: {
|
|
ecmaVersion: "latest",
|
|
ecmaFeatures: {
|
|
jsx: true
|
|
}
|
|
},
|
|
globals: {
|
|
__DEV__: true
|
|
},
|
|
sourceType: "module"
|
|
},
|
|
plugins: {
|
|
"@stylistic/ts": stylisticTs,
|
|
"@typescript-eslint": tseslint,
|
|
"import": importPlugin,
|
|
"react-hooks": reactHooks
|
|
},
|
|
settings: {
|
|
react: {
|
|
pragma: "React",
|
|
version: "detect"
|
|
}
|
|
},
|
|
rules: {
|
|
"eol-last": ["error", "always"],
|
|
"global-require": "off",
|
|
"no-undefined": "off",
|
|
"no-shadow": "off",
|
|
"react/display-name": [2, { "ignoreTranspilerName": false }],
|
|
"react/jsx-filename-extension": "off",
|
|
"react-hooks/exhaustive-deps": "warn",
|
|
"camelcase": ["off", { "properties": "never" }],
|
|
"@typescript-eslint/ban-types": "off",
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
2,
|
|
{
|
|
vars: "all",
|
|
args: "after-used",
|
|
caughtErrors: "none",
|
|
ignoreRestSiblings: true,
|
|
}
|
|
],
|
|
"@typescript-eslint/no-shadow": ["error"],
|
|
"@typescript-eslint/no-explicit-any": "warn",
|
|
"no-use-before-define": "off",
|
|
"@typescript-eslint/no-use-before-define": "off",
|
|
"@typescript-eslint/no-var-requires": "off",
|
|
"@typescript-eslint/explicit-function-return-type": "off",
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
"no-underscore-dangle": "off",
|
|
"indent": [2, 4, { "SwitchCase": 1 }],
|
|
"key-spacing": [
|
|
2,
|
|
{
|
|
"singleLine": {
|
|
"beforeColon": false,
|
|
"afterColon": true
|
|
}
|
|
}
|
|
],
|
|
"@stylistic/ts/member-delimiter-style": 2,
|
|
"@typescript-eslint/no-unsafe-declaration-merging": "off",
|
|
"import/order": [
|
|
2,
|
|
{
|
|
"groups": ["builtin", "external", "parent", "sibling", "index", "type"],
|
|
"newlines-between": "always",
|
|
"pathGroups": [
|
|
{
|
|
"pattern": "{@(@actions|@app|@assets|@calls|@client|@components|@constants|@context|@database|@helpers|@hooks|@init|@managers|@playbooks|@queries|@screens|@selectors|@share|@store|@telemetry|@typings|@test|@utils)/**,@(@constants|@i18n|@store|@websocket)}",
|
|
"group": "external",
|
|
"position": "after"
|
|
},
|
|
{
|
|
"pattern": "app/**",
|
|
"group": "parent",
|
|
"position": "before"
|
|
}
|
|
],
|
|
"alphabetize": {
|
|
"order": "asc",
|
|
"caseInsensitive": true
|
|
},
|
|
"pathGroupsExcludedImportTypes": ["type"]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
|
|
{
|
|
files: ["detox/e2e/**"],
|
|
languageOptions: {
|
|
globals: {
|
|
by: true,
|
|
detox: true,
|
|
device: true,
|
|
element: true,
|
|
waitFor: true
|
|
}
|
|
},
|
|
rules: {
|
|
"func-names": "off",
|
|
"import/no-unresolved": "off",
|
|
"max-nested-callbacks": "off",
|
|
"no-process-env": "off",
|
|
"no-unused-expressions": "off"
|
|
}
|
|
}
|
|
]);
|