Solution pour implémenter #138 sur les autres générateurs
La génération par tag a été implémentée sur le générateur JS en utilisant le placeholder {tag} dans les chemins de fichiers cibles (modèle, clients, traductions). Cette solution est satisfaisante, quoi que limitée par le fait qu'il faut utiliser le libellé du tag directement dans le chemin quelque part. En revanche, pour les autres usages de la fonctionnalité envisagées pour les générateurs C# et Java, l'utilisation directe du tag ne pourra pas vraiment fonctionner selon le même (en particulier pour "Client" et "Server" pour le mode de génération d'API).
La solution proposée consiste dp,c à ajouter, potentiellement à chaque générateur, une nouvelle section de configuration appelée tagConfigOverrides, qui permet pour chaque tag de remplacer la valeur du placeholder {tag} pour un ou plusieurs paramètres.
Pour la résolution du chemin de modelRootPath, le tag Interne sera spa-interne/model (au lieu de interne-model), alors que pour les deux autres ils seront toujours résolus comme interne/locale et interne/services. Si l'intégralité du chemin ou de la valeur du paramètre doit dépendre du tag, alors il suffit de mettre {tag} comme valeur et de définir pour chaque tag la valeur que l'on souhaite.
Cette solution évite de changer le format du fichier de config et n'oblige pas à spécifier les valeurs pour tous les tags si on en a pas besoin.
Solution pour implémenter #138 sur les autres générateurs
La génération par tag a été implémentée sur le générateur JS en utilisant le placeholder
{tag}
dans les chemins de fichiers cibles (modèle, clients, traductions). Cette solution est satisfaisante, quoi que limitée par le fait qu'il faut utiliser le libellé du tag directement dans le chemin quelque part. En revanche, pour les autres usages de la fonctionnalité envisagées pour les générateurs C# et Java, l'utilisation directe du tag ne pourra pas vraiment fonctionner selon le même (en particulier pour "Client" et "Server" pour le mode de génération d'API).La solution proposée consiste dp,c à ajouter, potentiellement à chaque générateur, une nouvelle section de configuration appelée
tagConfigOverrides
, qui permet pour chaque tag de remplacer la valeur du placeholder{tag}
pour un ou plusieurs paramètres.Par exemple :
Pour la résolution du chemin de
modelRootPath
, le tagInterne
seraspa-interne/model
(au lieu deinterne-model
), alors que pour les deux autres ils seront toujours résolus commeinterne/locale
etinterne/services
. Si l'intégralité du chemin ou de la valeur du paramètre doit dépendre du tag, alors il suffit de mettre{tag}
comme valeur et de définir pour chaque tag la valeur que l'on souhaite.Cette solution évite de changer le format du fichier de config et n'oblige pas à spécifier les valeurs pour tous les tags si on en a pas besoin.