SuiteCRM-Core/.eslintrc.js
Clemente Raposo 139ad660b8 Add RecordView configurable TopWidgets
- Structure re-factor
-- Move record view components to record view folder
-- Move record view store to record view folder
-- Add containers folder
--- add @containers alias
-- Move Subpanels to containers folder
-- Move subpanel-statistics.store to single-value-statistics.store

- Make administration repair a cache reset action

- Add dynamic top widget component
- Add statistics top widget component
- Add support for recordView defs topWidget configuration

- Adjust and standardize Statistic API structure
-- Add metadata to response.
--- Metadata should drive widgets behavior
-- Change existing StatisticsProviderInterface implementations to send back metadata

- Add SubpanelDataQueryHandler to make custom queries easier
-- Allows to get the query done to fetch subpanel data
-- Allows to run custom queries
- Add WonOpportunityAmountByYear using custom query
- Implement SubpanelOpportunitiesTotal using custom query

- Add karma/jasmine tests
2021-03-30 19:22:31 +01:00

222 lines
5.1 KiB
JavaScript

module.exports = {
"env": {
"browser": true,
"es6": true,
"node": true,
"jasmine": true
},
settings: {
"import/resolver": {
"alias": {
"map": [
["@app", "./core/app/src/app"],
["@base", "./core/app/src"],
["@app-common", "./core/app/src/app-common"],
["@views", "./core/app/views"],
["@fields", "./core/app/fields"],
["@services", "./core/app/src/services"],
["@components", "./core/app/src/components"],
["@containers", "./core/app/src/containers"],
["@store", "./core/app/src/store"]
],
"extensions": [".ts", ".js"]
},
"typescript": {
"directory": './core/app'
},
},
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:compat/recommended",
"plugin:import/warnings",
"plugin:import/errors",
"plugin:jsdoc/recommended",
"plugin:jasmine/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./core/app/tsconfig.json",
"sourceType": "module"
},
"plugins": [
"@typescript-eslint",
"import",
"jsdoc",
"prefer-arrow",
"jasmine"
],
"rules": {
"@typescript-eslint/array-type": "off",
"@typescript-eslint/consistent-type-definitions": "error",
"@typescript-eslint/explicit-member-accessibility": [
"off",
{
"accessibility": "explicit"
}
],
"@typescript-eslint/indent": [
"error",
4,
{
"FunctionDeclaration": {
"parameters": "first"
},
"FunctionExpression": {
"parameters": "first"
}
}
],
"@typescript-eslint/interface-name-prefix": "off",
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/member-ordering": "error",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/prefer-for-of": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/quotes": [
"error",
"single"
],
"@typescript-eslint/semi": [
"error",
"always"
],
"@typescript-eslint/unified-signatures": "error",
"arrow-body-style": "error",
"arrow-parens": [
"off",
"as-needed"
],
"camelcase": "error",
"comma-dangle": "off",
"complexity": "off",
"constructor-super": "error",
"curly": "error",
"dot-notation": "error",
"eol-last": "error",
"eqeqeq": [
"error",
"smart"
],
"guard-for-in": "error",
"id-blacklist": [
"error",
"any",
"Number",
"number",
"String",
"string",
"Boolean",
"boolean",
"Undefined",
"undefined"
],
"id-match": "error",
"import/no-deprecated": "warn",
"import/order": "off",
"max-classes-per-file": "off",
"max-len": [
"error",
{
"code": 140
}
],
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-console": [
"error",
{
"allow": [
"log",
"dirxml",
"warn",
"error",
"dir",
"timeLog",
"assert",
"clear",
"count",
"countReset",
"group",
"groupCollapsed",
"groupEnd",
"table",
"Console",
"markTimeline",
"profile",
"profileEnd",
"timeline",
"timelineEnd",
"timeStamp",
"context"
]
}
],
"no-debugger": "error",
"no-empty": "off",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "off",
"no-multiple-empty-lines": "off",
"no-new-wrappers": "error",
"no-restricted-imports": [
"error",
"rxjs/Rx"
],
"no-shadow": [
"error",
{
"hoist": "all"
}
],
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-underscore-dangle": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"object-shorthand": "error",
"one-var": [
"error",
"never"
],
"prefer-arrow/prefer-arrow-functions": "error",
"quote-props": [
"error",
"as-needed"
],
"radix": "error",
"space-before-function-paren": [
"error",
{
"anonymous": "never",
"asyncArrow": "always",
"named": "never"
}
],
"spaced-comment": "error",
"use-isnan": "error",
"valid-typeof": "off"
}
};