aboutsummaryrefslogtreecommitdiffstats
path: root/.eslintrc.js
diff options
context:
space:
mode:
authorLibravatar Ricardo <ricardo@cino.io>2023-10-13 14:12:03 +0200
committerLibravatar GitHub <noreply@github.com>2023-10-13 13:12:03 +0100
commite503468660a13760010a94ecda5f0625c6f47f87 (patch)
treefa532f54fc5f091de08d55405ec6339bd2440a02 /.eslintrc.js
parent1.3.16 [skip ci] (diff)
downloadferdium-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.js97
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} */
1module.exports = { 2module.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};