diff --git a/src/Serenity.Net.CodeGenerator/CodeGeneration/Base/TypingsGeneratorBase.cs b/src/Serenity.Net.CodeGenerator/CodeGeneration/Base/TypingsGeneratorBase.cs index 6bbf5a1501..36a7707128 100644 --- a/src/Serenity.Net.CodeGenerator/CodeGeneration/Base/TypingsGeneratorBase.cs +++ b/src/Serenity.Net.CodeGenerator/CodeGeneration/Base/TypingsGeneratorBase.cs @@ -1084,7 +1084,8 @@ protected override void AddFile(string filename, bool module = false) if (moduleImportsLookup.Any()) { - sb.Insert(0, string.Join(Environment.NewLine, moduleImportsLookup.Select(z => + sb.Insert(0, string.Join(Environment.NewLine, moduleImportsLookup + .Select(z => { var from = z.Key.From; if (!z.Key.External) @@ -1114,8 +1115,9 @@ protected override void AddFile(string filename, bool module = false) var importList = string.Join(", ", z.Select(p => p.Name + (p.Alias != p.Name ? (" as " + p.Alias) : ""))); - return $"import {{ {importList} }} from \"{from}\";"; - })) + Environment.NewLine + Environment.NewLine); + return (from, importList); + }).OrderBy(x => x.from, StringComparer.OrdinalIgnoreCase).Select(x => $"import {{ {x.importList} }} from \"{x.from}\";")) + + Environment.NewLine + Environment.NewLine); } } diff --git a/src/Serenity.Net.CodeGenerator/Helpers/ModularTSImporter.cs b/src/Serenity.Net.CodeGenerator/Helpers/ModularTSImporter.cs index 317ea2a963..da8b80531c 100644 --- a/src/Serenity.Net.CodeGenerator/Helpers/ModularTSImporter.cs +++ b/src/Serenity.Net.CodeGenerator/Helpers/ModularTSImporter.cs @@ -1,4 +1,4 @@ -using Scriban.Runtime; +using Scriban.Runtime; using Serenity.CodeGeneration; namespace Serenity.CodeGenerator; @@ -67,7 +67,10 @@ public string GetImports() if (moduleImports.IsEmptyOrNull()) return ""; - return string.Join(Environment.NewLine, moduleImports.GroupBy(x => x.From).Select(x => "import { " + string.Join(", ", x.Select(y => y.Name)) + " } from '" + x.Key + "';")) + Environment.NewLine + Environment.NewLine; + return string.Join(Environment.NewLine, moduleImports + .OrderBy(x => x.From, StringComparer.OrdinalIgnoreCase) + .GroupBy(x => x.From, StringComparer.Ordinal) + .Select(x => "import { " + string.Join(", ", x.Select(y => y.Name)) + " } from '" + x.Key + "';")) + Environment.NewLine + Environment.NewLine; } delegate string ImportDelegate(string module, string import);