diff options
author | 2023-10-13 14:12:03 +0200 | |
---|---|---|
committer | 2023-10-13 13:12:03 +0100 | |
commit | e503468660a13760010a94ecda5f0625c6f47f87 (patch) | |
tree | fa532f54fc5f091de08d55405ec6339bd2440a02 /.eslintrc.js | |
parent | 1.3.16 [skip ci] (diff) | |
download | ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.tar.gz ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.tar.zst ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.zip |
Server re-build with latest AdonisJS framework & Typescript (#47)
* chore: setup first basis structure
* chore: ensure styling is loaded correctly
* chore: comply to new routing syntax by replace . with / in routes/resource locations
* chore: add login controller
* chore: correctly use views with slash instead of dot
* chore: working login + tests
* chore: clean up tests
* chore: add password-forgot endpoint and matching test
* chore: add delete page test
* chore: add logout test
* chore: add reset-password route and tests
* chore: remove obsolete comment
* chore: add account-page and tests
* chore: add data page & first step of the test
* chore: add transfer/import data feature and tests
* chore: add export and basic test
* chore: add all static api routes with tests
* Regenerate 'pnpm-lock.json' and fix bad merge conflict
WIP:
- Tests have been commented out since they dont work
- Server doesn't start
* easier dev and test runs
* - remove --require-pragma from reformat-files so formatting works properly
- run pnpm reformat-files over codebase
- remove .json files from .eslintignore
- add invalid.json file to .eslintignore
- configure prettier properly in eslint config
- add type jsdoc to prettier config
- run adonis generate:manifest command to regenerate ace-manifest.json
- specify volta in package.json
- introduce typecheck npm script
- remove unused .mjs extension from npm scripts
- install missing type definition dependencies
- add pnpm.allowedDeprecatedVersions to package.json
- fix invalid extends in tsconfig.json causing TS issues throughout codebase
- remove @ts-ignore throughout codebase which is not relevant anymore
- enable some of the tsconfig options
- remove outdated eslint-disable from codebase
- change deprecated faker.company.companyName() to faker.company.name()
- fix TS issues inside transfer.spec.ts
* - update to latest node and pnpm versions
- upgrade all non-major dependencies to latest
- install missing @types/luxon dependency
- add cuid to pnpm.allowedDeprecatedVersions
- add esModuleInterop config option to tsconfig
- migrate more deprecated faker methods to new ones
- add more temporary ts-ignore to code
* - update eslint config
- remove trailingComma: all since default in prettier v3
- add typecheck command to prepare-code npm script
- upgrade various dependencies to latest major version
- update tsconfig to include only useful config options
- disable some lint issues and fix others
* - add test command to prepare-code
- disable strictPropertyInitialization flag in tsconfig which creates issues with adonis models
- update precommit hook to excute pnpm prepare-code
- remove ts-ignore statements from all models
* fix node and pnpm dependency update
* add cross env (so that we can develop on windows)
* add signup endpoint (TODO: JWT auth)
* Add login endpoint
* Add me and updateMe endpoints
* Add service endpoint
* refactor: change endpoints to use jwt
* add recipes endpoint
* add workspaces endpoint
* fix web controllors for login and post import
* Update node deps
* Change auth middleware (for web) and exempt api from CSRF
* Add import endpoint (franz import)
* Fix export/import logic
* Fix service and workspace data in user/data
* Fix partial lint
* chore: workaround lint issues
* fix: migration naming had two .
* Sync back node with recipes repo
* Temporarily ignore typescript
* Fix adonisrc to handle public folder static assets
* Fix issue with production database
* add Legacy Password Provider
* Fix lint errors
* Fix issue on login errors frontend
* add Legacy Password Provider
* Fix issue with customIcons
* Fix issue with auth tokens
* Update 'node' to '18.18.0'
* make docker work
* improve docker entrypoint (test api performance)
* Add migration database script
* NODE_ENV on recipes
* prefer @ts-expect-error over @ts-ignore
* small fixes
* Update 'pnpm' to '8.7.6'
* fix error catch
* Automatically generate JWT Public and Private keys
* Use custom Adonis5-jwt
* Update code to use secret (old way, no breaking changes)
* Normalize appKey
* Trick to make JWT tokens on client work with new version
* Fix error with new JWT logic
* Change migration and how we store JWT
* Fix 500 response code (needs to be 401)
* Improve logic and fix bugs
* Fix build and entrypoint logic
* Catch error if appKey changes
* Add newToken logic
* Fix lint (ignore any errors)
* Add build for PRs
* pnpm reformat-files result
* Fix some tests
* Fix reset password not working (test failing)
* Restore csrfTokens (disabled by accident)
* Fix pnpm start command with .env
* Disable failing tests on the transfer endpoint (TODO)
* Add tests to PR build
* Fix build
* Remove unnecessary assertStatus
* Add typecheck
* hash password on UserFactory (fix build)
* Add JWT_USE_PEM true by default (increase security)
* fix name of github action
---------
Co-authored-by: Vijay A <vraravam@users.noreply.github.com>
Co-authored-by: Balaji Vijayakumar <kuttibalaji.v6@gmail.com>
Co-authored-by: MCMXC <16797721+mcmxcdev@users.noreply.github.com>
Co-authored-by: André Oliveira <oliveira.andrerodrigues95@gmail.com>
Diffstat (limited to '.eslintrc.js')
-rw-r--r-- | .eslintrc.js | 97 |
1 files changed, 75 insertions, 22 deletions
diff --git a/.eslintrc.js b/.eslintrc.js index d3bc05b..2660c04 100644 --- a/.eslintrc.js +++ b/.eslintrc.js | |||
@@ -1,33 +1,86 @@ | |||
1 | /** @type {import('eslint').Linter.Config} */ | ||
1 | module.exports = { | 2 | module.exports = { |
2 | root: true, | 3 | root: true, |
3 | env: { | 4 | parserOptions: { |
4 | commonjs: true, | 5 | ecmaVersion: 2018, |
5 | es6: true, | 6 | sourceType: 'module', |
6 | node: true, | 7 | project: './tsconfig.json', |
7 | }, | 8 | }, |
8 | extends: ['airbnb-base'], | 9 | ignorePatterns: ['node_modules', 'build', 'recipes', '.eslintrc.js'], |
10 | extends: [ | ||
11 | 'plugin:adonis/typescriptApp', | ||
12 | 'plugin:unicorn/recommended', | ||
13 | 'prettier', | ||
14 | ], | ||
15 | plugins: [], | ||
9 | globals: { | 16 | globals: { |
10 | Atomics: 'readonly', | 17 | use: true, |
11 | SharedArrayBuffer: 'readonly', | ||
12 | use: 'readonly', | ||
13 | window: 'readonly', | ||
14 | document: 'readonly', | ||
15 | ENV: 'readonly', | ||
16 | session: 'readonly', | ||
17 | response: 'readonly', | ||
18 | }, | 18 | }, |
19 | parserOptions: { | 19 | env: { |
20 | ecmaVersion: 2018, | 20 | es6: true, |
21 | node: true, | ||
21 | }, | 22 | }, |
23 | reportUnusedDisableDirectives: true, | ||
24 | overrides: [ | ||
25 | { | ||
26 | files: ['**/*.ts'], | ||
27 | extends: [ | ||
28 | 'plugin:adonis/typescriptApp', | ||
29 | 'plugin:@typescript-eslint/eslint-recommended', | ||
30 | 'plugin:@typescript-eslint/strict', | ||
31 | // TODO: Opt-in to a stricter ruleset in the future | ||
32 | // 'plugin:@typescript-eslint/strict-type-checked', | ||
33 | 'plugin:@typescript-eslint/stylistic-type-checked', | ||
34 | 'plugin:import/typescript', | ||
35 | ], | ||
36 | parser: '@typescript-eslint/parser', | ||
37 | plugins: [], | ||
38 | rules: { | ||
39 | // eslint | ||
40 | 'max-len': 0, | ||
41 | |||
42 | // @typescript-eslint | ||
43 | '@typescript-eslint/no-non-null-assertion': 0, | ||
44 | '@typescript-eslint/no-empty-interface': 0, | ||
45 | '@typescript-eslint/semi': 0, | ||
46 | '@typescript-eslint/space-before-function-paren': 0, | ||
47 | '@typescript-eslint/no-extraneous-class': 0, | ||
48 | '@typescript-eslint/ban-ts-comment': 0, | ||
49 | '@typescript-eslint/prefer-ts-expect-error': 0, | ||
50 | }, | ||
51 | }, | ||
52 | ], | ||
22 | rules: { | 53 | rules: { |
23 | 'arrow-parens': 0, | 54 | // eslint |
24 | 'class-methods-use-this': 0, | 55 | 'array-callback-return': 1, |
25 | eqeqeq: 1, | 56 | 'consistent-return': 1, |
26 | 'implicit-arrow-linebreak': 0, | ||
27 | 'max-len': 0, | 57 | 'max-len': 0, |
28 | 'no-await-in-loop': 1, | 58 | 'no-await-in-loop': 1, |
29 | 'no-restricted-syntax': 0, | 59 | 'no-return-assign': 1, |
30 | 'operator-linebreak': 0, | 60 | 'no-console': [ |
31 | 'object-curly-newline': 0, | 61 | 1, |
62 | { | ||
63 | allow: ['warn', 'error'], | ||
64 | }, | ||
65 | ], | ||
66 | 'no-param-reassign': 1, | ||
67 | 'prefer-destructuring': 1, | ||
68 | // eslint-plugin-unicorn | ||
69 | 'unicorn/filename-case': 0, | ||
70 | 'unicorn/prefer-module': 0, | ||
71 | 'unicorn/prevent-abbreviations': 0, | ||
72 | |||
73 | 'unicorn/import-style': [ | ||
74 | 2, | ||
75 | { | ||
76 | styles: { | ||
77 | path: { | ||
78 | named: true, | ||
79 | }, | ||
80 | }, | ||
81 | }, | ||
82 | ], | ||
83 | 'unicorn/no-empty-file': 0, | ||
84 | 'unicorn/prefer-top-level-await': 0, | ||
32 | }, | 85 | }, |
33 | }; | 86 | }; |