diff --git a/Rest.Net.Example/Program.cs b/Rest.Net.Example/Program.cs
index a08fad6..30997a8 100644
--- a/Rest.Net.Example/Program.cs
+++ b/Rest.Net.Example/Program.cs
@@ -103,7 +103,7 @@ namespace MontoyaTech.Rest.Net.Example
File.WriteAllText("StaticClient.cs", listener.GenerateCSharpClient("StaticClient", staticCode: true));
- File.WriteAllText("StaticClient.js", listener.GenerateJavascriptClient("StaticClient", staticCode: true, useJsonNames: true, namedParameters: true));
+ File.WriteAllText("StaticClient.js", listener.GenerateJavascriptClient("StaticClient", staticCode: true, useJsonNames: true, namedParameters: true, namedParameterMin: 1));
Console.WriteLine("Generated Client.cs, Client.js, StaticClient.cs, StaticClient.js");
diff --git a/Rest.Net/Rest.Net.csproj b/Rest.Net/Rest.Net.csproj
index 15d02b1..f56033e 100644
--- a/Rest.Net/Rest.Net.csproj
+++ b/Rest.Net/Rest.Net.csproj
@@ -17,7 +17,7 @@
MontoyaTech.Rest.Net
MontoyaTech.Rest.Net
True
- 1.9.2
+ 1.9.3
Logo_Symbol_Black_Outline.png
README.md
diff --git a/Rest.Net/RestJavascriptClientGenerator.cs b/Rest.Net/RestJavascriptClientGenerator.cs
index 3256d89..5c58afb 100644
--- a/Rest.Net/RestJavascriptClientGenerator.cs
+++ b/Rest.Net/RestJavascriptClientGenerator.cs
@@ -80,9 +80,10 @@ namespace MontoyaTech.Rest.Net
{
writer.WriteBreak().WriteLine("/**").Indent();
writer.WriteLine("Initializes this api client with a given baseUrl of where to send requests.");
- writer.WriteLine("@param {string} baseUrl Base url of the server to make requests against.");
- writer.WriteLine("@param {Function} urlHandler An optional function to process request urls before they are sent. This must return the url. Default is null.");
- writer.WriteLine("@param {Function} requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
+ writer.WriteLineAssert(this.NamedParameters, "@param {Object} params");
+ writer.WriteLine($"@param {{string}} {(this.NamedParameters ? "params." : "")}baseUrl Base url of the server to make requests against.");
+ writer.WriteLine($"@param {{Function}} {(this.NamedParameters ? "params." : "")}urlHandler An optional function to process request urls before they are sent. This must return the url. Default is null.");
+ writer.WriteLine($"@param {{Function}} {(this.NamedParameters ? "params." : "")}requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
writer.Outdent().WriteLine("*/");
if (this.NamedParameters)
writer.Write("static Init({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
@@ -115,9 +116,10 @@ namespace MontoyaTech.Rest.Net
{
writer.WriteBreak().WriteLine("/**").Indent();
writer.WriteLine("Initializes this api client with a given baseUrl of where to send requests.");
- writer.WriteLine("@param {string} baseUrl Base url of the server to make requests against.");
- writer.WriteLine("@param {Function} urlHandler An optional function to process request urls before they are sent. This must return the url. Default is null.");
- writer.WriteLine("@param {Function} requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
+ writer.WriteLineAssert(this.NamedParameters, "@param {Object} params");
+ writer.WriteLine($"@param {{string}} {(this.NamedParameters ? "params." : "")}baseUrl Base url of the server to make requests against.");
+ writer.WriteLine($"@param {{Function}} {(this.NamedParameters ? "params." : "")}urlHandler An optional function to process request urls before they are sent. This must return the url. Default is null.");
+ writer.WriteLine($"@param {{Function}} {(this.NamedParameters ? "params." : "")}requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
writer.Outdent().WriteLine("*/");
if (this.NamedParameters)
writer.Write("constructor({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
@@ -366,13 +368,18 @@ namespace MontoyaTech.Rest.Net
writer.WriteBreak().WriteLine("/**").Indent();
writer.WriteLine("@function");
- //Docuemnt the fields
+ var parameterCount = fields.Length + properties.Length;
+ var namedParameters = this.NamedParameters && parameterCount > this.NamedParameterMin;
+
+ writer.WriteLineAssert(namedParameters, "@param {Object} params");
+
+ //Document the fields
foreach (var field in fields)
{
if (this.UseJsonNames)
- writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {EscapeName(field.GetCustomAttribute()?.PropertyName ?? field.Name)}");
+ writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {(namedParameters ? "params." : "")}{EscapeName(field.GetCustomAttribute()?.PropertyName ?? field.Name)}");
else
- writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {EscapeName(field.Name)}");
+ writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {(namedParameters ? "params." : "")}{EscapeName(field.Name)}");
writer.WriteSpacer().Write("Default is ").Write(this.GetTypeDefaultValue(field.FieldType)).WriteLine('.');
}
@@ -381,9 +388,9 @@ namespace MontoyaTech.Rest.Net
foreach (var property in properties)
{
if (this.UseJsonNames)
- writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {EscapeName(property.GetCustomAttribute()?.PropertyName ?? property.Name)}");
+ writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {(namedParameters ? "params." : "")}{EscapeName(property.GetCustomAttribute()?.PropertyName ?? property.Name)}");
else
- writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {EscapeName(property.Name)}");
+ writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {(namedParameters ? "params." : "")}{EscapeName(property.Name)}");
writer.WriteSpacer().Write("Default is ").Write(this.GetTypeDefaultValue(property.PropertyType)).WriteLine('.');
}
@@ -391,9 +398,7 @@ namespace MontoyaTech.Rest.Net
writer.Outdent().WriteLine("*/");
writer.Write("constructor(");
- var parameterCount = fields.Length + properties.Length;
-
- writer.WriteAssert(this.UseJsonNames && parameterCount > this.NamedParameterMin, "{ ");
+ writer.WriteAssert(namedParameters, "{ ");
//Write the default fields
foreach (var field in fields)
@@ -413,7 +418,7 @@ namespace MontoyaTech.Rest.Net
writer.WriteSeparator().Write(EscapeName(property.Name)).Write(" = ").Write(this.GetTypeDefaultValue(property.PropertyType));
}
- writer.WriteAssert(this.UseJsonNames && parameterCount > this.NamedParameterMin, " } = {}");
+ writer.WriteAssert(namedParameters, " } = {}");
writer.WriteLine(") {").Indent();
//Init the default fields
@@ -647,14 +652,19 @@ namespace MontoyaTech.Rest.Net
writer.WriteLine("@async");
writer.WriteLine($"@name {(routeName == null ? methodInfo.Name : routeName.Name)}");
+ int parameterCount = (parameters.Length - 1) + (routeRequest != null ? 1 : 0) + (routeResponse != null && routeResponse.Parameter ? 1 : 0);
+ var namedParameters = this.NamedParameters && parameterCount > this.NamedParameterMin;
+
+ writer.WriteLineAssert(namedParameters, "@param {Object} params");
+
//Generate parameter docs
if (parameters != null)
for (int i = 1; i < parameters.Length; i++)
- writer.WriteLine($"@param {{{this.GetTypeFullyResolvedName(parameters[i].ParameterType)}}} {parameters[i].Name}");
+ writer.WriteLine($"@param {{{this.GetTypeFullyResolvedName(parameters[i].ParameterType)}}} {(namedParameters ? "params." : "")}{parameters[i].Name}");
//Generate request doc if any
if (routeRequest != null)
- writer.WriteLine($"@param {{{(routeRequest.Dynamic ? "Any" : this.GetTypeFullyResolvedName(routeRequest.RequestType))}}} body");
+ writer.WriteLine($"@param {{{(routeRequest.Dynamic ? "Any" : this.GetTypeFullyResolvedName(routeRequest.RequestType))}}} {(namedParameters ? "params." : "")}body");
//Generate response doc if any
if (routeResponse != null)
@@ -670,8 +680,6 @@ namespace MontoyaTech.Rest.Net
else
writer.Write($"async {(routeName == null ? methodInfo.Name : routeName.Name)}(");
- int parameterCount = (parameters.Length - 1) + (routeRequest != null ? 1 : 0) + (routeResponse != null && routeResponse.Parameter ? 1 : 0);
-
writer.WriteAssert(this.NamedParameters && parameterCount > this.NamedParameterMin, "{ ");
//Generate the functions parameters, skip the default context parameter.