From 80a68ab388e5ba135448e4e5015eacc07b682341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gild=C3=A9ric=20DERUETTE?= Date: Tue, 14 May 2024 17:45:02 +0200 Subject: [PATCH] [JS] Correction warning fileName --- TopModel.Generator.Core/GeneratorConfigBase.cs | 8 +++++++- TopModel.Generator.Javascript/JavascriptConfig.cs | 5 +++++ docs/configuration.md | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/TopModel.Generator.Core/GeneratorConfigBase.cs b/TopModel.Generator.Core/GeneratorConfigBase.cs index ce1ed134..1f34bf22 100644 --- a/TopModel.Generator.Core/GeneratorConfigBase.cs +++ b/TopModel.Generator.Core/GeneratorConfigBase.cs @@ -67,6 +67,11 @@ public abstract class GeneratorConfigBase /// public virtual string[] PropertiesWithModuleVariableSupport => []; + /// + /// Propriétés qui supportent la variable "module". + /// + public virtual string[] PropertiesWithFileNameVariableSupport => []; + /// /// Propriétés qui supportent la variable "lang". /// @@ -463,12 +468,13 @@ public void InitVariables(string app, int number) foreach (var match in Regex.Matches(value, @"\{([$a-zA-Z0-9_-]+)(:\w+)?\}").Cast()) { var varName = match.Groups[1].Value; - if (varName == "module" || varName == "lang") + if (varName == "module" || varName == "lang" || varName == "fileName") { var supportedProperties = varName switch { "module" => PropertiesWithModuleVariableSupport, "lang" => PropertiesWithLangVariableSupport, + "fileName" => PropertiesWithFileNameVariableSupport, _ => null! }; diff --git a/TopModel.Generator.Javascript/JavascriptConfig.cs b/TopModel.Generator.Javascript/JavascriptConfig.cs index 87f2955f..8526689c 100644 --- a/TopModel.Generator.Javascript/JavascriptConfig.cs +++ b/TopModel.Generator.Javascript/JavascriptConfig.cs @@ -80,6 +80,11 @@ public class JavascriptConfig : GeneratorConfigBase nameof(ApiClientFilePath) }; + public override string[] PropertiesWithFileNameVariableSupport => new[] + { + nameof(ApiClientFilePath) + }; + public override string[] PropertiesWithTagVariableSupport => new[] { nameof(ModelRootPath), diff --git a/docs/configuration.md b/docs/configuration.md index b0438bc6..5812325a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -100,6 +100,6 @@ javascript: ### Résolution des variables -Les variables globales sont résolues en premier (une fois que celles qui devaient être transformées en variables par tag l'ont été), puis les variables par tag, et enfin les variables contextuelles. Cela implique en particulier que les variables contextuelles (`{app}`, `{module}` et `{lang}`) peuvent être "écrasées" par d'autres variables, et ainsi perdre leur contextualité. C'est rarement souhaitable, donc il vaut mieux en général éviter de provoquer des surcharges non intentionnelles. +Les variables globales sont résolues en premier (une fois que celles qui devaient être transformées en variables par tag l'ont été), puis les variables par tag, et enfin les variables contextuelles. Cela implique en particulier que les variables contextuelles (`{module}` et `{lang}`) peuvent être "écrasées" par d'autres variables, et ainsi perdre leur contextualité. C'est rarement souhaitable, donc il vaut mieux en général éviter de provoquer des surcharges non intentionnelles. `modgen` affichera un warning s'il trouve une variable non définie ou non supportée dans un paramètre (et précisera pourquoi, en particulier si la variable contextuelle ou par tag n'est pas supportée par le paramètre). Les variables non définies seront gardées telles quelles dans la génération, avec leurs `{}` (au cas où ça soit le comportement voulu dans ce cas précis, ce qui reste peu probable).