RosenborgSupporterSoftware / RUSK

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

Typer nødvendig for settings #66

Open havremunken opened 5 years ago

havremunken commented 5 years ago

Jeg jobber med config-systemet og tenker å legge litt innsats i å få det litt robust - så vi slipper å gjøre så mye unødvendig jobb i ExtMods. Duplisering av feilsjekking o.l. stinker.

Derfor har jeg begynt på et system hvor en setting kan ha én av en definert mengde typer. Akkurat nå - mens systemet er under utvikling - er dette litt todelt.

Del 1: Hva slags type trengs for å oppbevare i Typescript og JSON.

Del 2: Kan vi begrense noe mer innenfor de respektive typene.

Eksempel: En av typene jeg ønsker å ha er "color". Dette fordi jeg da kan ha eget UI til den i settings-greia. Og vi trenger farger flere steder, bl.a. til farging av uleste osv.

Den blir oppbevart i en string, men jeg ser for meg at jeg da også kan sikre at det faktisk er en fargeverdi vi har her. F.eks. ved å begrense det til 6 heksadesimale tegn (eller 3 for den shorthand-utgaven). Da får alle ExtMods som trenger en konfigurerbar farge denne valideringen "gratis", og en color string er noe annet enn en annen form for string.

Dette issuet er da for å kartlegge nødvendige setting-typer ExtMods trenger.

Følgende TypeScript-typer har jeg koll på:

Array<string>
string
boolean

Subtypes av string foreløpig:

color
string

Hvilke andre typer kan vi trenge?

Absolutt mulig å legge til flere etterhvert selvfølgelig.

larsjaas commented 5 years ago

Jeg kommer til å bruke dict-objekter for flere ting. dict{int: string} og kanskje dict{string: string}. Disse kan selvsagt JSON.stringify'es ned i en string, og det burde kanskje være default oppførsel for type "object"? Type "object" blir selvsagt vanskelig å sett opp settings-GUI for, så om man vil at dict-typer skal kunne editeres så bør kanskje de spesifikke key/value-typene være kjent for rammeverket. Jeg har ikke noe behov for at de er i settings-GUIet dog, og om de må vær der holder det muligens at de editeres som en JSON-string, i all fall for milepæl 1.

havremunken commented 5 years ago

Valid point. Hvis du gidder å JSON.parse og JSON.stringify inntil videre, så slipper vi å skrive en litt komplisert type. Sånne ting kan vi alltids hive oss ut i når alle the basics er på plass og vi har fritid til å redde verden. :)

havremunken commented 5 years ago

Har lyst til å lage en settingtype for hotkey, sånn at vi har dette som vanlige innstillinger og ikke må kjøre noe eget opplegg. Hotkeys kan også være shared som andre config-innstillinger, men jeg trenger å tenke gjennom en mekanisme hvor en extmod blir varslet om at en av hotkeyene den har er trykket. KISS.