Closed ilcors-dev closed 1 year ago
ho iniziato a dare una struttura alla parte del merging partendo nel creare una lib (nel senso di rust) che si occupi di leggere i file di config e di effettuare i vari parsing a seconda delle loro caratteristiche.
Perchè?
ad esempio ieri andando a fare la prima prova di merging mi sono accorto che i file Cargo.toml vengono parsati in macro categorie, ad esempio:
[package]
name = "writeme"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
viene parsato dalla libreria e trasformato in un oggetto JSON del tipo:
"package": {
"name": "writeme",
"version": "0.1.0",
"edition": "2021",
"license": "MIT OR Apache-2.0"
}
mentre ad esempio il package.json
{
"name": "writeme",
"version": "0.1.0",
"description": "Auto-gen README.md files for your projects",
"main": "src/main.rs",
}
rimane uguale. Per questo motivo credo sia utile avere delle classi wrapper Converter che vadano a implementare logiche custom per ogni file di config supportato da writeme.
Mi sembrava avesse senso usare il pattern Decorator, l'ho solo impostato per ora, secondo te ha senso @BabelDev0?
Si ci casca a pennello
in caso di più file di config presenti nelle directory eg. composer.json+package.json (laravel) fare merge delle informazioni trovate nei config, in caso di conflitto eg 'name' in entrambi i file mostrare in modo interattivo all'utente e dargli la scelta (mostrando i valori)