Fixed bugs and improved named parameter documentation for the javascript client generator. Package version is now 1.9.3
This commit is contained in:
@@ -103,7 +103,7 @@ namespace MontoyaTech.Rest.Net.Example
|
|||||||
|
|
||||||
File.WriteAllText("StaticClient.cs", listener.GenerateCSharpClient("StaticClient", staticCode: true));
|
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");
|
Console.WriteLine("Generated Client.cs, Client.js, StaticClient.cs, StaticClient.js");
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<AssemblyName>MontoyaTech.Rest.Net</AssemblyName>
|
<AssemblyName>MontoyaTech.Rest.Net</AssemblyName>
|
||||||
<RootNamespace>MontoyaTech.Rest.Net</RootNamespace>
|
<RootNamespace>MontoyaTech.Rest.Net</RootNamespace>
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
<Version>1.9.2</Version>
|
<Version>1.9.3</Version>
|
||||||
<PackageReleaseNotes></PackageReleaseNotes>
|
<PackageReleaseNotes></PackageReleaseNotes>
|
||||||
<PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon>
|
<PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon>
|
||||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
|
|||||||
@@ -80,9 +80,10 @@ namespace MontoyaTech.Rest.Net
|
|||||||
{
|
{
|
||||||
writer.WriteBreak().WriteLine("/**").Indent();
|
writer.WriteBreak().WriteLine("/**").Indent();
|
||||||
writer.WriteLine("Initializes this api client with a given baseUrl of where to send requests.");
|
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.WriteLineAssert(this.NamedParameters, "@param {Object} params");
|
||||||
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 {{string}} {(this.NamedParameters ? "params." : "")}baseUrl Base url of the server to make requests against.");
|
||||||
writer.WriteLine("@param {Function} requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
|
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("*/");
|
writer.Outdent().WriteLine("*/");
|
||||||
if (this.NamedParameters)
|
if (this.NamedParameters)
|
||||||
writer.Write("static Init({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
|
writer.Write("static Init({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
|
||||||
@@ -115,9 +116,10 @@ namespace MontoyaTech.Rest.Net
|
|||||||
{
|
{
|
||||||
writer.WriteBreak().WriteLine("/**").Indent();
|
writer.WriteBreak().WriteLine("/**").Indent();
|
||||||
writer.WriteLine("Initializes this api client with a given baseUrl of where to send requests.");
|
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.WriteLineAssert(this.NamedParameters, "@param {Object} params");
|
||||||
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 {{string}} {(this.NamedParameters ? "params." : "")}baseUrl Base url of the server to make requests against.");
|
||||||
writer.WriteLine("@param {Function} requestHandler An optional function to process requests before they are sent. This must return the request. Default is null.");
|
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("*/");
|
writer.Outdent().WriteLine("*/");
|
||||||
if (this.NamedParameters)
|
if (this.NamedParameters)
|
||||||
writer.Write("constructor({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
|
writer.Write("constructor({ baseUrl, urlHandler = null, requestHandler = null } = {}) ");
|
||||||
@@ -366,13 +368,18 @@ namespace MontoyaTech.Rest.Net
|
|||||||
writer.WriteBreak().WriteLine("/**").Indent();
|
writer.WriteBreak().WriteLine("/**").Indent();
|
||||||
writer.WriteLine("@function");
|
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)
|
foreach (var field in fields)
|
||||||
{
|
{
|
||||||
if (this.UseJsonNames)
|
if (this.UseJsonNames)
|
||||||
writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {EscapeName(field.GetCustomAttribute<Newtonsoft.Json.JsonPropertyAttribute>()?.PropertyName ?? field.Name)}");
|
writer.Write($"@param {{{this.GetTypeFullyResolvedName(field.FieldType)}}} {(namedParameters ? "params." : "")}{EscapeName(field.GetCustomAttribute<Newtonsoft.Json.JsonPropertyAttribute>()?.PropertyName ?? field.Name)}");
|
||||||
else
|
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('.');
|
writer.WriteSpacer().Write("Default is ").Write(this.GetTypeDefaultValue(field.FieldType)).WriteLine('.');
|
||||||
}
|
}
|
||||||
@@ -381,9 +388,9 @@ namespace MontoyaTech.Rest.Net
|
|||||||
foreach (var property in properties)
|
foreach (var property in properties)
|
||||||
{
|
{
|
||||||
if (this.UseJsonNames)
|
if (this.UseJsonNames)
|
||||||
writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {EscapeName(property.GetCustomAttribute<Newtonsoft.Json.JsonPropertyAttribute>()?.PropertyName ?? property.Name)}");
|
writer.Write($"@param {{{this.GetTypeFullyResolvedName(property.PropertyType)}}} {(namedParameters ? "params." : "")}{EscapeName(property.GetCustomAttribute<Newtonsoft.Json.JsonPropertyAttribute>()?.PropertyName ?? property.Name)}");
|
||||||
else
|
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('.');
|
writer.WriteSpacer().Write("Default is ").Write(this.GetTypeDefaultValue(property.PropertyType)).WriteLine('.');
|
||||||
}
|
}
|
||||||
@@ -391,9 +398,7 @@ namespace MontoyaTech.Rest.Net
|
|||||||
writer.Outdent().WriteLine("*/");
|
writer.Outdent().WriteLine("*/");
|
||||||
writer.Write("constructor(");
|
writer.Write("constructor(");
|
||||||
|
|
||||||
var parameterCount = fields.Length + properties.Length;
|
writer.WriteAssert(namedParameters, "{ ");
|
||||||
|
|
||||||
writer.WriteAssert(this.UseJsonNames && parameterCount > this.NamedParameterMin, "{ ");
|
|
||||||
|
|
||||||
//Write the default fields
|
//Write the default fields
|
||||||
foreach (var field in 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.WriteSeparator().Write(EscapeName(property.Name)).Write(" = ").Write(this.GetTypeDefaultValue(property.PropertyType));
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.WriteAssert(this.UseJsonNames && parameterCount > this.NamedParameterMin, " } = {}");
|
writer.WriteAssert(namedParameters, " } = {}");
|
||||||
writer.WriteLine(") {").Indent();
|
writer.WriteLine(") {").Indent();
|
||||||
|
|
||||||
//Init the default fields
|
//Init the default fields
|
||||||
@@ -647,14 +652,19 @@ namespace MontoyaTech.Rest.Net
|
|||||||
writer.WriteLine("@async");
|
writer.WriteLine("@async");
|
||||||
writer.WriteLine($"@name {(routeName == null ? methodInfo.Name : routeName.Name)}");
|
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
|
//Generate parameter docs
|
||||||
if (parameters != null)
|
if (parameters != null)
|
||||||
for (int i = 1; i < parameters.Length; i++)
|
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
|
//Generate request doc if any
|
||||||
if (routeRequest != null)
|
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
|
//Generate response doc if any
|
||||||
if (routeResponse != null)
|
if (routeResponse != null)
|
||||||
@@ -670,8 +680,6 @@ namespace MontoyaTech.Rest.Net
|
|||||||
else
|
else
|
||||||
writer.Write($"async {(routeName == null ? methodInfo.Name : routeName.Name)}(");
|
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, "{ ");
|
writer.WriteAssert(this.NamedParameters && parameterCount > this.NamedParameterMin, "{ ");
|
||||||
|
|
||||||
//Generate the functions parameters, skip the default context parameter.
|
//Generate the functions parameters, skip the default context parameter.
|
||||||
|
|||||||
Reference in New Issue
Block a user