Open havremunken opened 6 years ago
Jeg har landet noenlunde på en slik løsning;
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?
Skrive en array av moduler inn i et objekt.
Lagre objektet som en JSON fil i dist/
Content script i Chrome ext leser denne JSON-fila og bruker innholdet til å initialisere/kjøre moduler.
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?
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.