Browse Source

fix: Resolve JS proxy namespace mismatch for multi-segment company names

When generating a project with a company name containing dots (e.g.,
'Demo.App.QoL'), the template replacement was incorrectly camelCasing
the company name as 'demo.App' instead of 'demo.app'.

This was because SolutionRenamer used ToCamelCase() on the entire string
rather than on each dot-separated segment individually. The runtime JS
proxy generator (JQueryProxyScriptGenerator.CamelCaseWithNamespace) applies
camelCase to each segment, causing a mismatch.

Added ToCamelCaseWithNamespace() helper to match runtime behavior.
pull/24877/head
enisn 1 month ago
parent
commit
f1da29e3bb
No known key found for this signature in database GPG Key ID: A052619F04155D1C
  1. 17
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenamer.cs

17
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenamer.cs

@ -1,5 +1,6 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Volo.Abp.Cli.ProjectBuilding.Files;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps;
@ -41,7 +42,7 @@ public class SolutionRenamer
if (_companyName != null)
{
RenameHelper.RenameAll(_entries, _companyNamePlaceHolder, _companyName);
RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase(), _companyName.ToCamelCase());
RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase(), ToCamelCaseWithNamespace(_companyName));
RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToKebabCase(), _companyName.ToKebabCase());
RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToLowerInvariant(), _companyName.ToLowerInvariant());
}
@ -55,9 +56,19 @@ public class SolutionRenamer
}
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder, _projectName);
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder.ToCamelCase(), _projectName.ToCamelCase());
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder.ToCamelCase(), ToCamelCaseWithNamespace(_projectName));
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder.ToKebabCase(), _projectName.ToKebabCase());
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder.ToLowerInvariant(), _projectName.ToLowerInvariant());
RenameHelper.RenameAll(_entries, _projectNamePlaceHolder.ToSnakeCase().ToUpper(), _projectName.ToSnakeCase().ToUpper());
}
private static string ToCamelCaseWithNamespace(string name)
{
if (name.Contains('.'))
{
return name.Split('.').Select(n => n.ToCamelCase()).JoinAsString(".");
}
return name.ToCamelCase();
}
}
Loading…
Cancel
Save