Page MenuHomeSealhub

ESLint config and error fixes
AbandonedPublic

Authored by bartosz-gordon on Sep 30 2018, 11:29.
Referenced Files
F840810: D362.id1302.largetrue.diff
Fri, Apr 26, 00:49
F840395: D362.id1292.largetrue.diff
Thu, Apr 25, 18:50
F840394: D362.id1291.largetrue.diff
Thu, Apr 25, 18:50
F840393: D362.id1302.largetrue.diff
Thu, Apr 25, 18:50
F840392: D362.id1304.largetrue.diff
Thu, Apr 25, 18:50
F840391: D362.id1357.largetrue.diff
Thu, Apr 25, 18:50
F840390: D362.id1356.largetrue.diff
Thu, Apr 25, 18:50
F840337: D362.id1304.largetrue.diff
Thu, Apr 25, 17:12
Subscribers
None

Details

Reviewers
kuba-orlik
Group Reviewers
Unknown Object (Project)
Maniphest Tasks
Unknown Object (Maniphest Task)
Summary

Add base eslint/prettier config

Do not use public/private as properties

Fix eqeqeq

Fix dot notation

Fix no-else-return

Fix strict

Fix prefer-template

Fix prefer-arrow-callback

Fix object-shorthand

Fix no-var

Fix no-lonely-if

Make eslint up to date

Diff Detail

Repository
rS Sealious
Branch
T1118 (branched from alpha)
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 1011
Build 1011: arc lint + arc unit

Event Timeline

Checklista diffów do sealiousa:

  • EJKO działa poprawnie (make test + testy manualne) - jeżeli nie, zrobić odpowiedniego diffa do EJKO
  • sealious-template działa poprawnie (make test)- jeżeli nie, zrobić odpowiedniego diffa do sealious-template
  • aktualizacja dokumentacji
  • czy wszystko nadal się zgadza w getting_started
  • Fix no-negated-condition
  • Remove unused variables
  • No redundant await
  • Radix
  • no-undef
  • Consistent callbacks
  • no-prototype-builtin
  • line between class members
  • return in callback
  • class-methods-use-this
  • no-throw-literal
  • no-useless-escape
  • no-shadow
  • prefer-spread
bartosz-gordon retitled this revision from Run fixable rules to ESLint config and error fixes.Oct 3 2018, 19:00
bartosz-gordon edited the test plan for this revision. (Show Details)

@kuba-orlik Chciałbym, żebyś zerknął na zakomentowane linie oznaczone jako TO DISCUSS i każdą z nich odkomentował i puścił npm run lint. Wtedy możemy ocenić, czy warto zmieniać te rzeczy w Sealiousie :)

bartosz-gordon added a reviewer: Unknown Object (Project).Oct 4 2018, 09:19

O ile pamiętam, to planowaliśmy wrzucić ten konfig jako reużywalny sealcode'owy - tak, aby w .exlintrc wystarczyło podać "sealcode" - czy planujesz to zrobić w ramach tego diffa?

.eslintrc
22

Pieczołowicie przerobiłem cały kod tak, aby nie robił awaitów w pętlach. time make test zwraca bardzo przybliżone wyniki. Ale trzeba pamiętać o tym, że w testach nie robimy zapytań na wiele zasobów (co najwyżej na ~6), więc to może nie być miarodajne.

Myślę, że warto pamiętać o tym, że można robić pętle wydajniej. Dajmy na warning.

61

Jestem za tym, aby to włączyć na co najmniej 1. Pomoże to zapobiegać na poleganiu na tym, że funkcja zwraca undefined itp. Albo coś zwracamy w każdym scenariuszu, albo nie zwracamy nic

121

Kiedyś miałem GENIALNY pomysł, aby realizować zgłaszanie błędów strategii dostępu i field-type'ów za pomocą rzucania exceptions. Dlatego mamy dużo return Promise.reject("message"). Ustawmy to na 1, aby nie zapomnieć tego naprawić.

137

Ja jestem na tak (żeby to ustawić na 2). Skąd wątpliwości?

139

jeżeli dodamy "functions": false to imho będzie OK

150

Nigdy nie powinniśmy blokować wątku. Moim zdaniem to koniecznie trzeba ustawić na 2.

183

imho może tak zostać (tylko trzeba zmienić "warning" na "warn"

184

Jest ok, możemy ew. zwiększyć limit do 75 linijek. I wyłączyć tę zasadę dla plików *.subtest

186

Zmiana tego wymaga fundamentalnego przebudowania API Sealiousa. Zob. {T1147}

191

ustawmy na 0

kuba-orlik requested changes to this revision.Oct 4 2018, 18:46
This revision now requires changes to proceed.Oct 4 2018, 18:46

Zapomniałem o tym, zrobię to ;)

.eslintrc
137

Ta zasada generuje ponad 60 errorów. Bardziej niż o jej słuszność, chodzi mi o to, czy nie wyrzucić tego do osobnego taska. Bo w wielu miejsach polegamy na undefined i wiąże się to z dużym refaktorem logiki. Można by ten task połączyć z wyeliminowaniem błędów z consistent-return :)

bartosz-gordon marked 2 inline comments as done.
bartosz-gordon edited the test plan for this revision. (Show Details)
  • Refactor file manager
  • Refactor file manager
  • Assign tasks to eslint rules
  • Use shareable eslint-config-sealcode

Przejrałem pliki wyrywkowo i nie znalazałem nieprawidłowości. Testy przechodzą, program do zarządzania magazynami działa (zarówno TEST jak i POPULATE)

This revision is now accepted and ready to land.Oct 11 2018, 12:10
kuba-orlik changed the visibility from "All Users" to "Public (No Login Required)".