Installed TS and updated linter

This commit is contained in:
Alejandro Celaya 2020-08-22 08:06:41 +02:00
parent 8be17cce8a
commit 343a93b984
7 changed files with 1983 additions and 338 deletions

View file

@ -1,45 +1,58 @@
{ {
"extends": [
"adidas-env/browser",
"adidas-env/module",
"adidas-env/node",
"adidas-es6",
"adidas-babel",
"adidas-react"
],
"plugins": ["jest"], "plugins": ["jest"],
"env": { "env": {
"jest/globals": true "jest/globals": true
}, },
"parserOptions": {
"tsconfigRootDir": ".",
"createDefaultProgram": true
},
"globals": { "globals": {
"process": true, "process": true,
"setImmediate": true "setImmediate": true
}, },
"settings": { "overrides": [
"react": { {
"version": "16.3" "files": ["**/*.js"],
"extends": [
"adidas-env/browser",
"adidas-env/module",
"adidas-env/node",
"adidas-es9",
"adidas-babel",
"adidas-react"
],
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
"comma-dangle": ["error", "always-multiline"],
"no-invalid-this": "off",
"no-inline-comments": "off",
"no-console": "warn",
"template-curly-spacing": ["error", "never"],
"no-warning-comments": "off",
"no-undefined": "off",
"indent": ["error", 2, {"SwitchCase": 1}],
"no-empty-function": "off",
"lines-around-comment": "off",
"no-magic-numbers": "off",
"react/no-array-index-key": "off",
"react/no-did-update-set-state": "off",
"react/jsx-curly-spacing": ["error", "never"],
"react/jsx-indent-props": ["error", 2],
"react/jsx-first-prop-new-line": ["error", "multiline-multiprop"],
"react/jsx-closing-bracket-location": ["error", "tag-aligned"],
"react/jsx-filename-extension": ["error", {"extensions": [".js", ".jsx"]}]
}
},
{
"files": ["**/*.ts", "**/*.tsx"],
"extends": [
"@shlinkio/js-coding-standard"
]
} }
}, ]
"rules": {
"comma-dangle": ["error", "always-multiline"],
"no-invalid-this": "off",
"no-console": "warn",
"template-curly-spacing": ["error", "never"],
"no-warning-comments": "off",
"no-magic-numbers": "off",
"no-undefined": "off",
"no-inline-comments": "off",
"lines-around-comment": "off",
"indent": ["error", 2, {
"SwitchCase": 1
}
],
"react/jsx-curly-spacing": ["error", "never"],
"react/jsx-indent-props": ["error", 2],
"react/jsx-first-prop-new-line": ["error", "multiline-multiprop"],
"react/jsx-closing-bracket-location": ["error", "tag-aligned"],
"react/no-array-index-key": "off",
"react/no-did-update-set-state": "off",
"react/display-name": "off"
}
} }

2182
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -68,6 +68,7 @@
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.6.2", "@babel/core": "^7.6.2",
"@shlinkio/eslint-config-js-coding-standard": "~1.1.0",
"@stryker-mutator/core": "^3.2.4", "@stryker-mutator/core": "^3.2.4",
"@stryker-mutator/javascript-mutator": "^3.2.4", "@stryker-mutator/javascript-mutator": "^3.2.4",
"@stryker-mutator/jest-runner": "^3.2.4", "@stryker-mutator/jest-runner": "^3.2.4",
@ -75,7 +76,6 @@
"adm-zip": "^0.4.13", "adm-zip": "^0.4.13",
"autoprefixer": "^9.6.3", "autoprefixer": "^9.6.3",
"babel-core": "7.0.0-bridge.0", "babel-core": "7.0.0-bridge.0",
"babel-eslint": "^10.0.3",
"babel-jest": "^24.9.0", "babel-jest": "^24.9.0",
"babel-loader": "^8.0.6", "babel-loader": "^8.0.6",
"babel-plugin-named-asset-import": "^0.3.4", "babel-plugin-named-asset-import": "^0.3.4",
@ -89,17 +89,8 @@
"dotenv-expand": "^5.1.0", "dotenv-expand": "^5.1.0",
"enzyme": "^3.11.0", "enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2", "enzyme-adapter-react-16": "^1.15.2",
"eslint": "^5.11.1", "eslint": "^6.8.0",
"eslint-config-adidas-babel": "^1.1.0",
"eslint-config-adidas-env": "^1.1.0",
"eslint-config-adidas-es6": "^1.2.0",
"eslint-config-adidas-react": "^1.1.1",
"eslint-loader": "^3.0.2", "eslint-loader": "^3.0.2",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jest": "^22.17.0",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-react": "^7.16.0",
"file-loader": "^4.2.0", "file-loader": "^4.2.0",
"fork-ts-checker-webpack-plugin-alt": "^0.4.14", "fork-ts-checker-webpack-plugin-alt": "^0.4.14",
"fs-extra": "^8.1.0", "fs-extra": "^8.1.0",
@ -134,6 +125,8 @@
"stylelint-scss": "^3.11.1", "stylelint-scss": "^3.11.1",
"sw-precache-webpack-plugin": "^0.11.5", "sw-precache-webpack-plugin": "^0.11.5",
"terser-webpack-plugin": "^2.1.2", "terser-webpack-plugin": "^2.1.2",
"ts-jest": "^26.0.0",
"typescript": "^3.9.3",
"url-loader": "^2.2.0", "url-loader": "^2.2.0",
"webpack": "^4.41.0", "webpack": "^4.41.0",
"webpack-dev-server": "^3.8.2", "webpack-dev-server": "^3.8.2",

View file

@ -10,7 +10,7 @@ const propTypes = {
// FIXME Replace with typescript: (ServersImporter) // FIXME Replace with typescript: (ServersImporter)
const ImportServersBtn = ({ importServersFromFile }) => { const ImportServersBtn = ({ importServersFromFile }) => {
const ImportServersBtnComp = ({ createServers, fileRef, onImport = () => {} }) => { const ImportServersBtnComp = ({ createServers, fileRef, onImport = () => '' }) => {
const ref = fileRef || useRef(); const ref = fileRef || useRef();
const onChange = ({ target }) => const onChange = ({ target }) =>
importServersFromFile(target.files[0]) importServersFromFile(target.files[0])

View file

@ -33,7 +33,7 @@ export default class ColorGenerator {
this.storage.set('colors', this.colors); this.storage.set('colors', this.colors);
return color; return color;
} };
} }
export const colorGeneratorType = PropTypes.shape({ export const colorGeneratorType = PropTypes.shape({

View file

@ -106,14 +106,14 @@ const generateDataset = (stats, label, color) => ({
const LineChartCard = ({ title, visits, highlightedVisits, highlightedLabel = 'Selected' }) => { const LineChartCard = ({ title, visits, highlightedVisits, highlightedLabel = 'Selected' }) => {
const [ step, setStep ] = useState( const [ step, setStep ] = useState(
visits.length > 0 ? determineInitialStep(visits[visits.length - 1].date) : 'monthly' visits.length > 0 ? determineInitialStep(visits[visits.length - 1].date) : 'monthly',
); );
const [ skipNoVisits, toggleSkipNoVisits ] = useToggle(true); const [ skipNoVisits, toggleSkipNoVisits ] = useToggle(true);
const groupedVisitsWithGaps = useMemo(() => groupVisitsByStep(step, reverse(visits)), [ step, visits ]); const groupedVisitsWithGaps = useMemo(() => groupVisitsByStep(step, reverse(visits)), [ step, visits ]);
const [ labels, groupedVisits ] = useMemo( const [ labels, groupedVisits ] = useMemo(
() => generateLabelsAndGroupedVisits(visits, groupedVisitsWithGaps, step, skipNoVisits), () => generateLabelsAndGroupedVisits(visits, groupedVisitsWithGaps, step, skipNoVisits),
[ visits, step, skipNoVisits ] [ visits, step, skipNoVisits ],
); );
const groupedHighlighted = useMemo( const groupedHighlighted = useMemo(
() => fillTheGaps(groupVisitsByStep(step, reverse(highlightedVisits)), labels), () => fillTheGaps(groupVisitsByStep(step, reverse(highlightedVisits)), labels),

35
tsconfig.json Normal file
View file

@ -0,0 +1,35 @@
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"jsx": "preserve",
"lib": [
"dom",
"es2019"
],
"module": "esnext",
"moduleResolution": "node",
"noEmit": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"preserveConstEnums": true,
"removeComments": false,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "esnext",
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true
},
"exclude": [
"node_modules",
"**/*.spec.*"
],
"include": [
"*.d.ts",
"**/*.ts",
"**/*.tsx"
]
}