@looker/sdk-codegen 21.4.0 → 21.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [21.5.0](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.4.0...sdk-codegen-v21.5.0) (2022-03-04)
9
+
10
+
11
+ ### Features
12
+
13
+ * generate code deprecation tags ([#1006](https://www.github.com/looker-open-source/sdk-codegen/issues/1006)) ([afd4b66](https://www.github.com/looker-open-source/sdk-codegen/commit/afd4b66ffbd11cdacd19fe1353c9e5bf381fe932))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * remove python version upper bound ([#1015](https://www.github.com/looker-open-source/sdk-codegen/issues/1015)) ([b1650a1](https://www.github.com/looker-open-source/sdk-codegen/commit/b1650a1a8a56c52a7a06ca5c9cef02300af7289e))
19
+
8
20
  ## [21.4.0](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.3.1...sdk-codegen-v21.4.0) (2022-02-14)
9
21
 
10
22
 
package/lib/csharp.gen.js CHANGED
@@ -126,7 +126,8 @@ class CSharpGen extends _codeGen.CodeGen {
126
126
 
127
127
  headComment += this.returnComment(method);
128
128
  method.params.forEach(param => headComment += this.paramComment(param));
129
- return this.commentHeader(indent, headComment);
129
+ var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
130
+ return this.commentHeader(indent, headComment) + dep;
130
131
  }
131
132
 
132
133
  genericBits(method) {
@@ -231,7 +232,7 @@ class CSharpGen extends _codeGen.CodeGen {
231
232
  }
232
233
 
233
234
  paramComment(param) {
234
- return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(param.description, "</param>") : '';
235
+ return param.description ? "\n<param name=\"".concat(param.name, "\">").concat((0, _sdkModels.describeParam)(param), "</param>") : '';
235
236
  }
236
237
 
237
238
  returnComment(method) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/csharp.gen.ts"],"names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n\n return this.commentHeader(indent, headComment)\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${param.description}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
1
+ {"version":3,"sources":["../src/csharp.gen.ts"],"names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
@@ -1,7 +1,7 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import { CodeGen, commentBlock } from './codeGen';
4
- import { strBody, firstCase, EnumType } from './sdkModels';
4
+ import { strBody, firstCase, EnumType, describeParam } from './sdkModels';
5
5
  var reservedWords = new Set(['abstract', 'as', 'base', 'bool', 'break', 'byte', 'case', 'catch', 'char', 'checked', 'class', 'const', 'continue', 'decimal', 'default', 'delegate', 'do ', 'double', 'else', 'enum', 'event', 'explicit', 'extern', 'false', 'finally', 'fixed', 'float', 'for', 'foreach', 'goto', 'if', 'implicit', 'in', 'int', 'interface', 'internal', 'is', 'lock', 'long', 'namespace', 'new', 'null', 'object', 'operator', 'out', 'override', 'params', 'private', 'protected', 'public', 'readonly', 'ref', 'return', 'sbyte', 'sealed', 'short', 'sizeof', 'stackalloc', 'static', 'string', 'struct', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'uint', 'ulong', 'unchecked', 'unsafe', 'ushort', 'using', 'virtual', 'void', 'volatile', 'while']);
6
6
  export class CSharpGen extends CodeGen {
7
7
  constructor() {
@@ -116,7 +116,8 @@ export class CSharpGen extends CodeGen {
116
116
 
117
117
  headComment += this.returnComment(method);
118
118
  method.params.forEach(param => headComment += this.paramComment(param));
119
- return this.commentHeader(indent, headComment);
119
+ var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
120
+ return this.commentHeader(indent, headComment) + dep;
120
121
  }
121
122
 
122
123
  genericBits(method) {
@@ -221,7 +222,7 @@ export class CSharpGen extends CodeGen {
221
222
  }
222
223
 
223
224
  paramComment(param) {
224
- return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(param.description, "</param>") : '';
225
+ return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(describeParam(param), "</param>") : '';
225
226
  }
226
227
 
227
228
  returnComment(method) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/csharp.gen.ts"],"names":["CodeGen","commentBlock","strBody","firstCase","EnumType","reservedWords","Set","CSharpGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n\n return this.commentHeader(indent, headComment)\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${param.description}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
1
+ {"version":3,"sources":["../../src/csharp.gen.ts"],"names":["CodeGen","commentBlock","strBody","firstCase","EnumType","describeParam","reservedWords","Set","CSharpGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
package/lib/esm/go.gen.js CHANGED
@@ -125,11 +125,15 @@ export class GoGen extends CodeGen {
125
125
  }
126
126
 
127
127
  if (method.responseIsBoth()) {
128
- headComment += "\n\n**Note**: Binary content may be returned by this method.";
128
+ headComment += "\n\n**Note**: Binary content may be returned by this method.\n";
129
129
  } else if (method.responseIsBinary()) {
130
130
  headComment += "\n\n**Note**: Binary content is returned by this method.\n";
131
131
  }
132
132
 
133
+ if (method.deprecated) {
134
+ headComment += '\n\nDeprecated: This method is deprecated.\n';
135
+ }
136
+
133
137
  var callback = "callback: (readable: Readable) => Promise<".concat(mapped.name, ">,");
134
138
  var retType = mapped.name === 'Void' ? '' : "".concat(mapped.name, ", ");
135
139
  var header = this.comment('', headComment) + '\n' + "func (l *LookerSDK) ".concat(this.toCamelCaseCap(method.name), "(") + (streamer ? "\n".concat(bump).concat(callback) : '');
@@ -157,10 +161,6 @@ export class GoGen extends CodeGen {
157
161
  return "".concat(indent).concat(this.toCamelCase(this.reserve(param.name)), " ").concat(pOpt).concat(mapped.name);
158
162
  }
159
163
 
160
- paramComment(param, mapped) {
161
- return "@param {".concat(mapped.name, "} ").concat(param.name, " ").concat(param.description);
162
- }
163
-
164
164
  encodePathParams(indent, method) {
165
165
  var encodings = '';
166
166
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/go.gen.ts"],"names":["CodeGen","commentBlock","EnumType","strBody","align","str","size","num","length","repeat","AlignColumnWriter","writeRow","cols","forEach","value","index","sizes","Math","max","rows","push","toString","result","row","rowSize","col","colIndex","trimRight","GoGen","constructor","api","versions","Set","packageName","apiVersion","substring","indexOf","supportsMultiApi","reserve","name","keywords","has","commentHeader","indent","text","noComment","comment","description","commentStr","sdkFileName","baseFileName","fileName","sdkPath","methodSignature","method","methodHeaderDeclaration","streamer","mapped","typeMap","type","head","trim","headComment","httpMethod","endpoint","fragment","requestType","requestTypeName","bump","indentStr","params","args","allParams","p","declareParameter","join","paramDelimiter","responseIsBoth","responseIsBinary","callback","retType","header","toCamelCaseCap","declareMethod","bumper","encodePathParams","httpCall","param","location","writeableType","pOpt","required","default","toCamelCase","paramComment","encodings","pathParams","prefix","useRequest","doEncode","accessor","request","httpArgs","resultDef","resultPointer","capitalize","toUpperCase","apiPath","httpPath","argFill","bodyArg","nullStr","argGroup","queryArgs","_indent","hash","arg","reserved","argDelimiter","path","vars","replace","group","allVars","methodsEpilogue","methodsPrologue","warnEditing","modelsPrologue","goImport","modelsEpilogue","summary","_text","typeSignature","beginRegion","endRegion","mt","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","map","className","mapName","Error","JSON","stringify","declareType","writer","props","propertyValues","typeName","values","declareEnumValue","enumDelimiter","typeProperties","prop","declareProperty","construct","endTypeStr","typename","quote","codeQuote","property","doc","optionalJson","optionalPointer","charAt","slice"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType, IVersionInfo } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n ApiModel,\n Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels'\nimport { EnumType, strBody } from './sdkModels'\n\nconst align = (str: string, size: number): string => {\n const num = size - str.length + 1\n return str + ' '.repeat(num)\n}\n\n/**\n * AlignColumnWriter writes text aligned by column width, it is used to keep the go struct formatting consistent.\n */\nclass AlignColumnWriter {\n private rows: Array<string[]> = []\n private sizes: number[] = []\n\n writeRow(...cols: string[]) {\n cols.forEach((value, index) => {\n this.sizes[index] = Math.max(this.sizes[index] || 0, value.length)\n })\n this.rows.push(cols)\n }\n\n toString(): string {\n let result = ''\n this.rows.forEach((row) => {\n const rowSize = row.length\n row.forEach((col, colIndex) => {\n result +=\n rowSize - 1 === colIndex ? col : align(col, this.sizes[colIndex])\n })\n result = result.trimRight() + '\\n'\n })\n return result\n }\n}\n\n/**\n * Go generator\n */\nexport class GoGen extends CodeGen {\n codePath = './go'\n fileExtension = '.go'\n nullStr = 'nil'\n packagePath = ''\n commentStr = '// '\n\n enumDelimiter = '\\n'\n indentStr = ' '\n endTypeStr = '}'\n codeQuote = `\"`\n\n useNamedParameters = false\n needsRequestTypes = true\n\n keywords = new Set<string>([\n 'break',\n 'default',\n 'func',\n 'interface',\n 'select',\n 'case',\n 'defer',\n 'go',\n 'map',\n 'struct',\n 'chan',\n 'else',\n 'goto',\n 'package',\n 'switch',\n 'const',\n 'fallthrough',\n 'if',\n 'range',\n 'type',\n 'continue',\n 'for',\n 'import',\n 'return',\n 'var',\n ])\n\n constructor(public api: ApiModel, public versions?: IVersionInfo) {\n super(api, versions)\n this.packageName = `v${this.apiVersion.substring(\n 0,\n this.apiVersion.indexOf('.')\n )}`\n this.apiVersion = this.packageName\n }\n\n supportsMultiApi(): boolean {\n return false\n }\n\n reserve(name: string) {\n if (this.keywords.has(name)) {\n return `${name}0`\n }\n return name\n }\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text\n ? `${indent}/*\\n\\n${commentBlock(text, indent, '')}\\n${indent}*/\\n`\n : ''\n }\n\n comment(indent: string, description: string) {\n if (this.noComment) return ''\n return commentBlock(description, indent, this.commentStr)\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.sdkPath}/${this.packageName}/${baseFileName}`)\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const mapped = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${mapped.name}`\n let fragment = ''\n const requestType = this.requestTypeName(method)\n const bump = indent + this.indentStr\n\n if (requestType) {\n fragment = `request ${requestType}`\n } else {\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n }\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.\\n`\n }\n const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`\n const retType = mapped.name === 'Void' ? '' : `${mapped.name}, `\n const header =\n this.comment('', headComment) +\n '\\n' +\n `func (l *LookerSDK) ${this.toCamelCaseCap(method.name)}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${\n fragment ? ',' : ''\n }\\n${bump}options *rtl.ApiSettings) (${retType}error) {\\n`\n )\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n}`\n )\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n let pOpt = ''\n if (param.location === strBody) {\n mapped.name = `${mapped.name}`\n }\n if (!param.required) {\n pOpt = mapped.default ? '' : '*'\n }\n return (\n // this.commentHeader(indent, this.paramComment(param, mapped)) +\n `${indent}${this.toCamelCase(this.reserve(param.name))} ${pOpt}${\n mapped.name\n }`\n )\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n return `@param {${mapped.name}} ${param.name} ${param.description}`\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n const prefix = this.useRequest(method) ? 'request' : ''\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n const name = this.accessor(param.name, prefix)\n\n encodings += `${indent}${name} = url.PathEscape(${name})\\n`\n }\n }\n }\n return encodings\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n const mapped = this.typeMap(method.type)\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n // const errors = this.errorResponses(indent, method)\n const resultDef =\n mapped.name === 'Void' ? '' : `${indent}var result ${mapped.name}\\n`\n const resultPointer = mapped.name === 'Void' ? 'nil' : `&result`\n const result = mapped.name === 'Void' ? '' : 'result, '\n return (\n `` +\n resultDef +\n `${indent}err := l.session.Do(${resultPointer}, \"${this.capitalize(\n method.httpMethod.toUpperCase()\n )}\", \"${this.apiPath}\", ${this.httpPath(method.endpoint, request)}` +\n `${args ? ', ' + args : ''})` +\n '\\n' +\n `${indent}return ${result}err` +\n '\\n'\n )\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n result = this.argFill(\n result,\n method.bodyArg ? this.accessor(method.bodyArg, request) : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return this.nullStr\n const hash: string[] = []\n for (const arg of args) {\n const reserved = this.reserve(arg)\n if (prefix) {\n hash.push(`\"${reserved}\": ${this.accessor(arg, prefix)}`)\n } else {\n hash.push(`\"${reserved}\": ${this.toCamelCase(reserved)}`)\n }\n }\n return `map[string]interface{}{${hash.join(this.argDelimiter)}}`\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n const vars: Array<string> = []\n const str = path.replace(/({.*?})/g, (group) => {\n vars.push(\n this.accessor(group.replace('{', '').replace('}', ''), prefix)\n )\n return '%v'\n })\n const allVars = vars.join(', ')\n return allVars ? `fmt.Sprintf(\"${str}\", ${allVars})` : `\"${str}\"`\n }\n return `\"${path}\"`\n }\n\n /**\n * Determine the type of accessor needed for the symbol name\n *\n * If the prefix is defined:\n * If the name is special, use array accessor\n * If the name is simple, use dotted notation\n *\n * With no prefix, return the \"reserved\" version of the name, which may be the same as name\n *\n * @param name variable to access\n * @param prefix optional prefix for accessor\n * @returns one of 4 possible accessor patterns\n */\n accessor(name: string, prefix?: string) {\n const reserved = this.reserve(this.toCamelCase(name))\n if (!prefix) return reserved\n return `${prefix}.${this.toCamelCaseCap(name)}`\n // if (reserved === name) return `${prefix}.${name}`\n // return `${prefix}[${reserved}]`\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype LookerSDK struct {\n session *rtl.AuthSession\n}\n\nfunc NewLookerSDK(session *rtl.AuthSession) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n`\n }\n\n modelsPrologue(_indent: string) {\n const goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n${goImport}\n`\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return ''\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.comment(indent, type.description) +\n '\\n' +\n `${indent}type ${type.name} struct {\\n`\n )\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}// region ${description}`\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}// endregion ${description}`\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = this.nullStr\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'interface{}' },\n boolean: { default: mt, name: 'bool' },\n byte: { default: mt, name: 'byte' },\n date: { default: mt, name: 'time.Time' },\n datetime: { default: mt, name: 'time.Time' },\n double: { default: mt, name: 'float64' },\n float: { default: mt, name: 'float32' },\n int32: { default: mt, name: 'int32' },\n int64: { default: mt, name: 'int64' },\n integer: { default: mt, name: 'int' },\n number: { default: mt, name: 'float64' },\n object: { default: mt, name: 'interface{}' },\n password: { default: mt, name: 'string' },\n string: { default: mt, name: 'string' },\n uri: { default: mt, name: 'url.URL' },\n url: { default: mt, name: 'url.URL' },\n void: { default: mt, name: 'Void' }, // todo: check how to handle Void\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `[]${map.name}` }\n case 'HashType': {\n const mapName =\n type.elementType.name === 'string' ? 'interface{}' : map.name // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return {\n default: this.nullStr,\n name: 'map[string]' + `${mapName}`,\n }\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `rtl.Delim${this.capitalize(map.name)}`,\n }\n case 'EnumType':\n return { default: '', name: this.capitalize(type.name) }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n\n const writer = new AlignColumnWriter()\n\n try {\n if (type instanceof EnumType) {\n // enum has special handling\n const props: string[] = []\n let propertyValues = ''\n const num = type as EnumType\n const typeName = this.capitalize(type.name)\n props.push(`type ${typeName} string`) // todo: handle other types than string\n num.values.forEach((value) => {\n // props.push(this.declareEnumValue(bump, value, typeName))\n this.declareEnumValue(bump, value, typeName, writer)\n })\n props.push(writer.toString())\n propertyValues = props.join(this.enumDelimiter)\n\n return propertyValues\n } else {\n this.typeProperties(type).forEach((prop) =>\n // props.push(this.declareProperty(bump, prop))\n this.declareProperty(bump, prop, writer)\n )\n // propertyValues = props.join(this.propDelimiter)\n }\n } catch {\n throw new Error(JSON.stringify(type, null, 2))\n }\n return (\n this.typeSignature(indent, type) +\n writer.toString() +\n this.construct(indent, type) +\n `${this.endTypeStr ? indent : ''}${this.endTypeStr}`\n )\n }\n\n declareEnumValue(\n _indent: string,\n value: EnumValueType,\n typename?: string,\n writer?: AlignColumnWriter\n ) {\n const quote = typeof value === 'string' ? this.codeQuote : ''\n const name = `${typename}_${this.toCamelCaseCap(value.toString())}`\n if (writer) {\n writer.writeRow(\n 'const',\n name,\n typename || '',\n '=',\n `${quote}${value}${quote}`\n )\n }\n return `const ${name} ${typename} = ${quote}${value}${quote}`\n }\n\n declareProperty(\n indent: string,\n property: IProperty,\n writer?: AlignColumnWriter\n ): string {\n const type = this.typeMap(property.type)\n const name = this.toCamelCaseCap(property.name)\n const typeName = type.name\n\n const doc = property.description\n ? `${this.comment(' ', property.description)}`\n : ''\n\n const optionalJson = property.required ? '' : ',omitempty'\n const optionalPointer = property.required ? '' : '*'\n\n if (writer) {\n writer.writeRow(\n `${indent}${name}`,\n `${optionalPointer}${typeName}`,\n `\\`json:\"${property.name}${optionalJson}\"\\``,\n doc\n )\n }\n return ``\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n toCamelCaseCap(str: string): string {\n return this.capitalize(\n str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n )\n }\n\n toCamelCase(str: string): string {\n return str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n }\n}\n"],"file":"go.gen.js"}
1
+ {"version":3,"sources":["../../src/go.gen.ts"],"names":["CodeGen","commentBlock","EnumType","strBody","align","str","size","num","length","repeat","AlignColumnWriter","writeRow","cols","forEach","value","index","sizes","Math","max","rows","push","toString","result","row","rowSize","col","colIndex","trimRight","GoGen","constructor","api","versions","Set","packageName","apiVersion","substring","indexOf","supportsMultiApi","reserve","name","keywords","has","commentHeader","indent","text","noComment","comment","description","commentStr","sdkFileName","baseFileName","fileName","sdkPath","methodSignature","method","methodHeaderDeclaration","streamer","mapped","typeMap","type","head","trim","headComment","httpMethod","endpoint","fragment","requestType","requestTypeName","bump","indentStr","params","args","allParams","p","declareParameter","join","paramDelimiter","responseIsBoth","responseIsBinary","deprecated","callback","retType","header","toCamelCaseCap","declareMethod","bumper","encodePathParams","httpCall","param","location","writeableType","pOpt","required","default","toCamelCase","encodings","pathParams","prefix","useRequest","doEncode","accessor","request","httpArgs","resultDef","resultPointer","capitalize","toUpperCase","apiPath","httpPath","argFill","bodyArg","nullStr","argGroup","queryArgs","_indent","hash","arg","reserved","argDelimiter","path","vars","replace","group","allVars","methodsEpilogue","methodsPrologue","warnEditing","modelsPrologue","goImport","modelsEpilogue","summary","_text","typeSignature","beginRegion","endRegion","mt","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","map","className","mapName","Error","JSON","stringify","declareType","writer","props","propertyValues","typeName","values","declareEnumValue","enumDelimiter","typeProperties","prop","declareProperty","construct","endTypeStr","typename","quote","codeQuote","property","doc","optionalJson","optionalPointer","charAt","slice"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType, IVersionInfo } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n ApiModel,\n Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels'\nimport { EnumType, strBody } from './sdkModels'\n\nconst align = (str: string, size: number): string => {\n const num = size - str.length + 1\n return str + ' '.repeat(num)\n}\n\n/**\n * AlignColumnWriter writes text aligned by column width, it is used to keep the go struct formatting consistent.\n */\nclass AlignColumnWriter {\n private rows: Array<string[]> = []\n private sizes: number[] = []\n\n writeRow(...cols: string[]) {\n cols.forEach((value, index) => {\n this.sizes[index] = Math.max(this.sizes[index] || 0, value.length)\n })\n this.rows.push(cols)\n }\n\n toString(): string {\n let result = ''\n this.rows.forEach((row) => {\n const rowSize = row.length\n row.forEach((col, colIndex) => {\n result +=\n rowSize - 1 === colIndex ? col : align(col, this.sizes[colIndex])\n })\n result = result.trimRight() + '\\n'\n })\n return result\n }\n}\n\n/**\n * Go generator\n */\nexport class GoGen extends CodeGen {\n codePath = './go'\n fileExtension = '.go'\n nullStr = 'nil'\n packagePath = ''\n commentStr = '// '\n\n enumDelimiter = '\\n'\n indentStr = ' '\n endTypeStr = '}'\n codeQuote = `\"`\n\n useNamedParameters = false\n needsRequestTypes = true\n\n keywords = new Set<string>([\n 'break',\n 'default',\n 'func',\n 'interface',\n 'select',\n 'case',\n 'defer',\n 'go',\n 'map',\n 'struct',\n 'chan',\n 'else',\n 'goto',\n 'package',\n 'switch',\n 'const',\n 'fallthrough',\n 'if',\n 'range',\n 'type',\n 'continue',\n 'for',\n 'import',\n 'return',\n 'var',\n ])\n\n constructor(public api: ApiModel, public versions?: IVersionInfo) {\n super(api, versions)\n this.packageName = `v${this.apiVersion.substring(\n 0,\n this.apiVersion.indexOf('.')\n )}`\n this.apiVersion = this.packageName\n }\n\n supportsMultiApi(): boolean {\n return false\n }\n\n reserve(name: string) {\n if (this.keywords.has(name)) {\n return `${name}0`\n }\n return name\n }\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text\n ? `${indent}/*\\n\\n${commentBlock(text, indent, '')}\\n${indent}*/\\n`\n : ''\n }\n\n comment(indent: string, description: string) {\n if (this.noComment) return ''\n return commentBlock(description, indent, this.commentStr)\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.sdkPath}/${this.packageName}/${baseFileName}`)\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const mapped = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${mapped.name}`\n let fragment = ''\n const requestType = this.requestTypeName(method)\n const bump = indent + this.indentStr\n\n if (requestType) {\n fragment = `request ${requestType}`\n } else {\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n }\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.\\n`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.\\n`\n }\n if (method.deprecated) {\n headComment += '\\n\\nDeprecated: This method is deprecated.\\n'\n }\n const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`\n const retType = mapped.name === 'Void' ? '' : `${mapped.name}, `\n const header =\n this.comment('', headComment) +\n '\\n' +\n `func (l *LookerSDK) ${this.toCamelCaseCap(method.name)}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${\n fragment ? ',' : ''\n }\\n${bump}options *rtl.ApiSettings) (${retType}error) {\\n`\n )\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n}`\n )\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n let pOpt = ''\n if (param.location === strBody) {\n mapped.name = `${mapped.name}`\n }\n if (!param.required) {\n pOpt = mapped.default ? '' : '*'\n }\n return (\n // so it turns out Go doesn't like parameter comments. Go figure https://stackoverflow.com/a/67878816\n // this.commentHeader(indent, this.paramComment(param, mapped)) +\n `${indent}${this.toCamelCase(this.reserve(param.name))} ${pOpt}${\n mapped.name\n }`\n )\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n const prefix = this.useRequest(method) ? 'request' : ''\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n const name = this.accessor(param.name, prefix)\n\n encodings += `${indent}${name} = url.PathEscape(${name})\\n`\n }\n }\n }\n return encodings\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n const mapped = this.typeMap(method.type)\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n // const errors = this.errorResponses(indent, method)\n const resultDef =\n mapped.name === 'Void' ? '' : `${indent}var result ${mapped.name}\\n`\n const resultPointer = mapped.name === 'Void' ? 'nil' : `&result`\n const result = mapped.name === 'Void' ? '' : 'result, '\n return (\n `` +\n resultDef +\n `${indent}err := l.session.Do(${resultPointer}, \"${this.capitalize(\n method.httpMethod.toUpperCase()\n )}\", \"${this.apiPath}\", ${this.httpPath(method.endpoint, request)}` +\n `${args ? ', ' + args : ''})` +\n '\\n' +\n `${indent}return ${result}err` +\n '\\n'\n )\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n result = this.argFill(\n result,\n method.bodyArg ? this.accessor(method.bodyArg, request) : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return this.nullStr\n const hash: string[] = []\n for (const arg of args) {\n const reserved = this.reserve(arg)\n if (prefix) {\n hash.push(`\"${reserved}\": ${this.accessor(arg, prefix)}`)\n } else {\n hash.push(`\"${reserved}\": ${this.toCamelCase(reserved)}`)\n }\n }\n return `map[string]interface{}{${hash.join(this.argDelimiter)}}`\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n const vars: Array<string> = []\n const str = path.replace(/({.*?})/g, (group) => {\n vars.push(\n this.accessor(group.replace('{', '').replace('}', ''), prefix)\n )\n return '%v'\n })\n const allVars = vars.join(', ')\n return allVars ? `fmt.Sprintf(\"${str}\", ${allVars})` : `\"${str}\"`\n }\n return `\"${path}\"`\n }\n\n /**\n * Determine the type of accessor needed for the symbol name\n *\n * If the prefix is defined:\n * If the name is special, use array accessor\n * If the name is simple, use dotted notation\n *\n * With no prefix, return the \"reserved\" version of the name, which may be the same as name\n *\n * @param name variable to access\n * @param prefix optional prefix for accessor\n * @returns one of 4 possible accessor patterns\n */\n accessor(name: string, prefix?: string) {\n const reserved = this.reserve(this.toCamelCase(name))\n if (!prefix) return reserved\n return `${prefix}.${this.toCamelCaseCap(name)}`\n // if (reserved === name) return `${prefix}.${name}`\n // return `${prefix}[${reserved}]`\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype LookerSDK struct {\n session *rtl.AuthSession\n}\n\nfunc NewLookerSDK(session *rtl.AuthSession) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n`\n }\n\n modelsPrologue(_indent: string) {\n const goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n${goImport}\n`\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return ''\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.comment(indent, type.description) +\n '\\n' +\n `${indent}type ${type.name} struct {\\n`\n )\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}// region ${description}`\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}// endregion ${description}`\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = this.nullStr\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'interface{}' },\n boolean: { default: mt, name: 'bool' },\n byte: { default: mt, name: 'byte' },\n date: { default: mt, name: 'time.Time' },\n datetime: { default: mt, name: 'time.Time' },\n double: { default: mt, name: 'float64' },\n float: { default: mt, name: 'float32' },\n int32: { default: mt, name: 'int32' },\n int64: { default: mt, name: 'int64' },\n integer: { default: mt, name: 'int' },\n number: { default: mt, name: 'float64' },\n object: { default: mt, name: 'interface{}' },\n password: { default: mt, name: 'string' },\n string: { default: mt, name: 'string' },\n uri: { default: mt, name: 'url.URL' },\n url: { default: mt, name: 'url.URL' },\n void: { default: mt, name: 'Void' }, // todo: check how to handle Void\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `[]${map.name}` }\n case 'HashType': {\n const mapName =\n type.elementType.name === 'string' ? 'interface{}' : map.name // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return {\n default: this.nullStr,\n name: 'map[string]' + `${mapName}`,\n }\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `rtl.Delim${this.capitalize(map.name)}`,\n }\n case 'EnumType':\n return { default: '', name: this.capitalize(type.name) }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n\n const writer = new AlignColumnWriter()\n\n try {\n if (type instanceof EnumType) {\n // enum has special handling\n const props: string[] = []\n let propertyValues = ''\n const num = type as EnumType\n const typeName = this.capitalize(type.name)\n props.push(`type ${typeName} string`) // todo: handle other types than string\n num.values.forEach((value) => {\n // props.push(this.declareEnumValue(bump, value, typeName))\n this.declareEnumValue(bump, value, typeName, writer)\n })\n props.push(writer.toString())\n propertyValues = props.join(this.enumDelimiter)\n\n return propertyValues\n } else {\n this.typeProperties(type).forEach((prop) =>\n // props.push(this.declareProperty(bump, prop))\n this.declareProperty(bump, prop, writer)\n )\n // propertyValues = props.join(this.propDelimiter)\n }\n } catch {\n throw new Error(JSON.stringify(type, null, 2))\n }\n return (\n this.typeSignature(indent, type) +\n writer.toString() +\n this.construct(indent, type) +\n `${this.endTypeStr ? indent : ''}${this.endTypeStr}`\n )\n }\n\n declareEnumValue(\n _indent: string,\n value: EnumValueType,\n typename?: string,\n writer?: AlignColumnWriter\n ) {\n const quote = typeof value === 'string' ? this.codeQuote : ''\n const name = `${typename}_${this.toCamelCaseCap(value.toString())}`\n if (writer) {\n writer.writeRow(\n 'const',\n name,\n typename || '',\n '=',\n `${quote}${value}${quote}`\n )\n }\n return `const ${name} ${typename} = ${quote}${value}${quote}`\n }\n\n declareProperty(\n indent: string,\n property: IProperty,\n writer?: AlignColumnWriter\n ): string {\n const type = this.typeMap(property.type)\n const name = this.toCamelCaseCap(property.name)\n const typeName = type.name\n\n const doc = property.description\n ? `${this.comment(' ', property.description)}`\n : ''\n\n const optionalJson = property.required ? '' : ',omitempty'\n const optionalPointer = property.required ? '' : '*'\n\n if (writer) {\n writer.writeRow(\n `${indent}${name}`,\n `${optionalPointer}${typeName}`,\n `\\`json:\"${property.name}${optionalJson}\"\\``,\n doc\n )\n }\n return ``\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n toCamelCaseCap(str: string): string {\n return this.capitalize(\n str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n )\n }\n\n toCamelCase(str: string): string {\n return str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n }\n}\n"],"file":"go.gen.js"}