Ik heb de afgelopen week mijn best gedaan om de ontwikkelomgeving te "upgraden".
- ontwikkelen in een remote SSH container met vscode
- source opdelen in aparte deelbestanden
- externe packages includen in de uitgeleverde versie
- strengere kwaliteitscontrole (eslint)
En dat is inmiddels allemaal gelukt
Ik maak dus nu gebruik van een zgn devContainer van Microsoft, een remote Docker container die draait op mijn nieuwe zuinige server, met daarin je volledige ontwikkelomgeving waar ik met vscode bij kan komen om zo de SAK kaart te wijzigen en te bouwen vanaf mijn desktop.
In de resource.yaml file van Lovelace heb ik een verwijzing naar de map van de ontwikkel container gezet, zodat ik deze SAK versie ook direct gebruik binnen HA.
Met het opdelen van de source van ca 8.000 regels JavaScript heb ik nu 27 source files. Dat maakt eea een stuk overzichtelijker.
Om hiervan weer een enkel bestand te maken gebruik ik nu rollup.js, die ook meteen de externe packages meeneemt, waardoor er geen externe afhankelijkheden meer zijn. Dat is erg fijn: geen gezeik met CORS Allowed Origins meer en wachttijden om de packages over het internet te laden!
Mensen die HA zonder internet draaien kunnen dan SAK ook gebruiken.
De strengere kwaliteitscontrole gebruikt eslint met zeer strikte regels, die van AirBNB.
En dat was ff schrikken. Ik gebruikte voorheen simpele regels om de code na te laten kijken.
De AirBNB set let bijv. op spaties, haakjes, lengte code en commentaarregels en beveelt ook aan om bepaalde standaard JavaScript zaken niet te gebruiken zoals
code:
1
2
3
| i++; (gebruik i += 1)
var a = b = 4; (elk statement op eigen regel)
isNaN() (gebruik geen globale standaard functies, maar bijv. Number.isNaN()) |
.
En standaard resulteert
ELKE overtreding in een ERROR, waarvan ik er dus 3.500 voor me kiezen kreeg

Yup,
drie-en-een-half-duizend!
Gelukkig kon een autofix van eslint al een hoop oplossen en het uitzetten van te lange commentaarregels loste ook al een hoop op: ik had plotseling nog maar een 2.000 foutmeldingen
Na wat nalezen van eslint regeltjes en aanpassingen heb ik nog maar een 200 waarschuwingen in één enkel bestand die ik nog nader moet nakijken, want die zijn wat complex en/of beetje veel werk.
Een deel van de regels zijn expliciet uitgezet en/of niet opgevolgd: het advies om bijv. de standaard functie isNaN() (is Not A Number) te vervangen door Number.isNaN() maakte heel SAK kapot. Deze twee functies hebben weliswaar dezelfde naam, maar zijn functioneel niet compatibel. Tsja, daar kom je dus ook achter!
Al met al een leuk resultaat. Al mijn kaarten doen het nog in HA, dus ik hoop als ik versie 2.4.2 release, dat dat bij anderen ook het geval is
Er zijn nog wat mensen aan het bijkomen van HA 2023.5.0, dus ik wacht nog ff een dagje denk ik