RosenborgSupporterSoftware / RUSK

RBKweb Ultimate Survival Kit
MIT License
1 stars 2 forks source link

Hvordan dynamisk få med alle moduler i scriptet som deployes? #26

Open havremunken opened 5 years ago

havremunken commented 5 years ago

Som nevnt i annen issue har jeg et ønske om å isolere funksjonalitet i avgrensede "moduler" for å gjøre det så lett som mulig å legge til ny funksjonalitet uten å rote med ting som er der fra før.

Som nevnt tenker jeg i retning av at en modul implementerer et typescript-interface sånn at vi vet den leverer varene sånn noenlunde.

Blir det noe så enkelt som at vi i løpet av build f.eks. scanner et directory etter ts/js-filer som implementerer dette interfacet, lager en fil med en array som inneholder alle disse modulene, og så inkluderer dette som et element i bygget sånn at alle moduler som er tilstede automatisk blir med på lasset?

Jeg vil jo nødig ha det sånn at vi må "registrere" hver modul manuelt i en fil - det lager unødvendig drit. Så en måte å håndtere dette dynamisk på vil være høyst velkommen.

havremunken commented 5 years ago

Jeg har landet noenlunde på en slik løsning;

  1. Build step - scanne etter moduler som implementerer ExtensionModule interfacet. Basert på filnavn? Eller plassering i directory? Eller at de eksporterer en funksjon som faktisk returnerer en ExtensionModule?

  2. Skrive en array av moduler inn i et objekt.

  3. Lagre objektet som en JSON fil i dist/

  4. Content script i Chrome ext leser denne JSON-fila og bruker innholdet til å initialisere/kjøre moduler.

havremunken commented 5 years ago

Har ikke tenkt mye på dette i det siste - fordi modul-loaderen funker greit nok. Vil fortsatt fikse dette langsiktig, men det er kanskje ikke nødvendig før vi får ombord betatestere?