1919using System . Text . RegularExpressions ;
2020using EnvDTE ;
2121using Microsoft . VisualStudio . TemplateWizard ;
22-
22+
2323namespace Microsoft . NodejsTools . ProjectWizard {
2424 class NodejsPackageParametersExtension : IWizard {
2525 public void RunStarted ( object automationObject , Dictionary < string , string > replacementsDictionary , WizardRunKind runKind , object [ ] customParams ) {
@@ -45,25 +45,25 @@ public void BeforeOpeningFile(ProjectItem projectItem) {
4545
4646 public void RunFinished ( ) {
4747 return ;
48- }
49-
50- private const int NpmPackageNameMaxLength = 214 ;
51-
52- /// <summary>
53- /// Normalize a project name to be a valid Npm package name: https://docs.npmjs.com/files/package.json#name
54- /// </summary>
55- /// <param name="projectName">Name of a VS project.</param>
56- private static string NormalizeNpmPackageName ( string projectName ) {
57- // Remove all leading url-invalid, underscore, and period characters
58- var npmProjectNameTransform = Regex . Replace ( projectName , "^[^a-zA-Z0-9-~]*" , string . Empty ) ;
59-
60- // Replace all invalid characters with a dash
61- npmProjectNameTransform = Regex . Replace ( npmProjectNameTransform , "[^a-zA-Z0-9-_~.]" , "-" ) ;
62-
63- // Insert hyphens between camelcased sections.
64- npmProjectNameTransform = Regex . Replace ( npmProjectNameTransform , "([a-z0-9])([A-Z])" , "$1-$2" ) . ToLowerInvariant ( ) ;
65-
66- return npmProjectNameTransform . Substring ( 0 , Math . Min ( npmProjectNameTransform . Length , NpmPackageNameMaxLength ) ) ;
48+ }
49+
50+ private const int NpmPackageNameMaxLength = 214 ;
51+
52+ /// <summary>
53+ /// Normalize a project name to be a valid Npm package name: https://docs.npmjs.com/files/package.json#name
54+ /// </summary>
55+ /// <param name="projectName">Name of a VS project.</param>
56+ private static string NormalizeNpmPackageName ( string projectName ) {
57+ // Remove all leading url-invalid, underscore, and period characters
58+ var npmProjectNameTransform = Regex . Replace ( projectName , "^[^a-zA-Z0-9-~]*" , string . Empty ) ;
59+
60+ // Replace all invalid characters with a dash
61+ npmProjectNameTransform = Regex . Replace ( npmProjectNameTransform , "[^a-zA-Z0-9-_~.]" , "-" ) ;
62+
63+ // Insert hyphens between camelcased sections.
64+ npmProjectNameTransform = Regex . Replace ( npmProjectNameTransform , "([a-z0-9])([A-Z])" , "$1-$2" ) . ToLowerInvariant ( ) ;
65+
66+ return npmProjectNameTransform . Substring ( 0 , Math . Min ( npmProjectNameTransform . Length , NpmPackageNameMaxLength ) ) ;
6767 }
6868 }
6969}
0 commit comments