Skip to content

Commit

Permalink
[JS] Correction warning fileName
Browse files Browse the repository at this point in the history
  • Loading branch information
gideruette committed May 14, 2024
1 parent e641778 commit 80a68ab
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
8 changes: 7 additions & 1 deletion TopModel.Generator.Core/GeneratorConfigBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ public abstract class GeneratorConfigBase
/// </summary>
public virtual string[] PropertiesWithModuleVariableSupport => [];

/// <summary>
/// Propriétés qui supportent la variable "module".
/// </summary>
public virtual string[] PropertiesWithFileNameVariableSupport => [];

/// <summary>
/// Propriétés qui supportent la variable "lang".
/// </summary>
Expand Down Expand Up @@ -463,12 +468,13 @@ public void InitVariables(string app, int number)
foreach (var match in Regex.Matches(value, @"\{([$a-zA-Z0-9_-]+)(:\w+)?\}").Cast<Match>())
{
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!
};

Expand Down
5 changes: 5 additions & 0 deletions TopModel.Generator.Javascript/JavascriptConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ public class JavascriptConfig : GeneratorConfigBase
nameof(ApiClientFilePath)
};

public override string[] PropertiesWithFileNameVariableSupport => new[]
{
nameof(ApiClientFilePath)
};

public override string[] PropertiesWithTagVariableSupport => new[]
{
nameof(ModelRootPath),
Expand Down
2 changes: 1 addition & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

0 comments on commit 80a68ab

Please sign in to comment.