@looker/sdk-codegen 21.0.24 → 21.2.1

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/lib/codeGen.d.ts +7 -5
  3. package/lib/codeGen.js +24 -13
  4. package/lib/codeGen.js.map +1 -1
  5. package/lib/codeGenerators.d.ts +2 -2
  6. package/lib/codeGenerators.js.map +1 -1
  7. package/lib/csharp.gen.d.ts +3 -2
  8. package/lib/csharp.gen.js.map +1 -1
  9. package/lib/declarationInfo.d.ts +2 -2
  10. package/lib/declarationInfo.js.map +1 -1
  11. package/lib/esm/codeGen.js +24 -13
  12. package/lib/esm/codeGen.js.map +1 -1
  13. package/lib/esm/codeGenerators.js.map +1 -1
  14. package/lib/esm/csharp.gen.js.map +1 -1
  15. package/lib/esm/declarationInfo.js.map +1 -1
  16. package/lib/esm/exampleInfo.js.map +1 -1
  17. package/lib/esm/go.gen.js.map +1 -1
  18. package/lib/esm/kotlin.gen.js +89 -9
  19. package/lib/esm/kotlin.gen.js.map +1 -1
  20. package/lib/esm/pseudo.gen.js.map +1 -1
  21. package/lib/esm/python.gen.js +2 -2
  22. package/lib/esm/python.gen.js.map +1 -1
  23. package/lib/esm/sdkModels.js +199 -71
  24. package/lib/esm/sdkModels.js.map +1 -1
  25. package/lib/esm/specConverter.js.map +1 -1
  26. package/lib/esm/specDiff.js +1 -1
  27. package/lib/esm/specDiff.js.map +1 -1
  28. package/lib/esm/swift.gen.js +60 -8
  29. package/lib/esm/swift.gen.js.map +1 -1
  30. package/lib/esm/typescript.gen.js +9 -9
  31. package/lib/esm/typescript.gen.js.map +1 -1
  32. package/lib/exampleInfo.d.ts +1 -1
  33. package/lib/exampleInfo.js.map +1 -1
  34. package/lib/go.gen.d.ts +3 -2
  35. package/lib/go.gen.js.map +1 -1
  36. package/lib/kotlin.gen.d.ts +16 -2
  37. package/lib/kotlin.gen.js +88 -8
  38. package/lib/kotlin.gen.js.map +1 -1
  39. package/lib/pseudo.gen.d.ts +1 -1
  40. package/lib/pseudo.gen.js.map +1 -1
  41. package/lib/python.gen.d.ts +3 -2
  42. package/lib/python.gen.js +2 -2
  43. package/lib/python.gen.js.map +1 -1
  44. package/lib/sdkModels.d.ts +20 -5
  45. package/lib/sdkModels.js +208 -74
  46. package/lib/sdkModels.js.map +1 -1
  47. package/lib/specConverter.d.ts +4 -2
  48. package/lib/specConverter.js.map +1 -1
  49. package/lib/specDiff.d.ts +1 -1
  50. package/lib/specDiff.js +1 -1
  51. package/lib/specDiff.js.map +1 -1
  52. package/lib/swift.gen.d.ts +6 -2
  53. package/lib/swift.gen.js +60 -8
  54. package/lib/swift.gen.js.map +1 -1
  55. package/lib/typescript.gen.d.ts +4 -2
  56. package/lib/typescript.gen.js +9 -9
  57. package/lib/typescript.gen.js.map +1 -1
  58. package/package.json +4 -4
package/lib/go.gen.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/go.gen.ts"],"names":["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","CodeGen","constructor","api","versions","Set","packageName","apiVersion","substring","indexOf","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","strBody","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","EnumType","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 { CodeGen, IMappedType, IVersionInfo, commentBlock } from './codeGen'\nimport {\n ApiModel,\n Arg,\n EnumType,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n strBody,\n} 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 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 let goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n // v3 still uses url.URL\n if (this.packageName === 'v3') {\n goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\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: 'struct' },\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":["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","CodeGen","constructor","api","versions","Set","packageName","apiVersion","substring","indexOf","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","strBody","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","EnumType","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 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 let goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n // v3 still uses url.URL\n if (this.packageName === 'v3') {\n goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\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: 'struct' },\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,5 +1,6 @@
1
- import { Arg, EnumValueType, IMethod, IParameter, IProperty, IType } from './sdkModels';
2
- import { IMappedType, CodeGen } from './codeGen';
1
+ import type { Arg, EnumValueType, IMethod, IParameter, IProperty, IType, ArgValues } from './sdkModels';
2
+ import type { IMappedType } from './codeGen';
3
+ import { CodeGen } from './codeGen';
3
4
  export declare class KotlinGen extends CodeGen {
4
5
  codePath: string;
5
6
  packagePath: string;
@@ -9,6 +10,16 @@ export declare class KotlinGen extends CodeGen {
9
10
  nullStr: string;
10
11
  transport: string;
11
12
  argDelimiter: string;
13
+ argSetSep: string;
14
+ hashSetSep: string;
15
+ arrayOpen: string;
16
+ arrayClose: string;
17
+ hashOpen: string;
18
+ hashClose: string;
19
+ hashKeyQuote: string;
20
+ typeOpen: string;
21
+ typeClose: string;
22
+ useModelClassForTypes: boolean;
12
23
  paramDelimiter: string;
13
24
  propDelimiter: string;
14
25
  codeQuote: string;
@@ -33,6 +44,9 @@ export declare class KotlinGen extends CodeGen {
33
44
  declareProperty(indent: string, property: IProperty): string;
34
45
  paramComment(param: IParameter, mapped: IMappedType): string;
35
46
  declareParameter(indent: string, method: IMethod, param: IParameter): string;
47
+ assignType(indent: string, type: IType, inputs: ArgValues): string;
48
+ assignParams(method: IMethod, inputs: ArgValues): string;
49
+ makeTheCall(method: IMethod, inputs: ArgValues): string;
36
50
  methodHeaderComment(method: IMethod, streamer?: boolean): string;
37
51
  methodHeaderDeclaration(indent: string, method: IMethod, streamer?: boolean): string;
38
52
  jvmOverloads(method: IMethod): "" | "@JvmOverloads ";
package/lib/kotlin.gen.js CHANGED
@@ -31,6 +31,26 @@ class KotlinGen extends _codeGen.CodeGen {
31
31
 
32
32
  _defineProperty(this, "argDelimiter", ', ');
33
33
 
34
+ _defineProperty(this, "argSetSep", ' = ');
35
+
36
+ _defineProperty(this, "hashSetSep", ' to ');
37
+
38
+ _defineProperty(this, "arrayOpen", 'arrayOf(');
39
+
40
+ _defineProperty(this, "arrayClose", ')');
41
+
42
+ _defineProperty(this, "hashOpen", 'mapOf(');
43
+
44
+ _defineProperty(this, "hashClose", ')');
45
+
46
+ _defineProperty(this, "hashKeyQuote", '"');
47
+
48
+ _defineProperty(this, "typeOpen", '(');
49
+
50
+ _defineProperty(this, "typeClose", ')');
51
+
52
+ _defineProperty(this, "useModelClassForTypes", true);
53
+
34
54
  _defineProperty(this, "paramDelimiter", ',\n');
35
55
 
36
56
  _defineProperty(this, "propDelimiter", ',\n');
@@ -80,7 +100,7 @@ class KotlinGen extends _codeGen.CodeGen {
80
100
  }
81
101
 
82
102
  modelsPrologue(_indent) {
83
- return "\n// ".concat(this.warnEditing(), "\n\npackage com.looker.sdk").concat(this.apiNamespace(), "\n\nimport com.fasterxml.jackson.annotation.JsonProperty\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n");
103
+ return "\n// ".concat(this.warnEditing(), "\n\npackage com.looker.sdk").concat(this.apiNamespace(), "\n\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n");
84
104
  }
85
105
 
86
106
  modelsEpilogue(_indent) {
@@ -109,7 +129,7 @@ class KotlinGen extends _codeGen.CodeGen {
109
129
  declareProperty(indent, property) {
110
130
  var optional = !property.required ? '? = null' : '';
111
131
  var type = this.typeMap(property.type);
112
- var attr = property.hasSpecialNeeds || property.jsonName.startsWith('is') || property.jsonName.startsWith('get') || property.jsonName.startsWith('set') ? "".concat(indent, "@get:JsonProperty(\"").concat(property.jsonName, "\")\n").concat(indent, "@param:JsonProperty(\"").concat(property.jsonName, "\")\n") : '';
132
+ var attr = property.hasSpecialNeeds ? "".concat(indent, "@SerializedName(\"").concat(property.jsonName, "\")\n") : '';
113
133
  var result = "".concat(attr).concat(indent, "var ").concat(property.name, ": ").concat(type.name).concat(optional);
114
134
  return result;
115
135
  }
@@ -129,6 +149,57 @@ class KotlinGen extends _codeGen.CodeGen {
129
149
  return "".concat(indent).concat(param.name, ": ").concat(mapped.name).concat(pOpt) + (param.required ? '' : mapped.default ? " = ".concat(mapped.default) : '');
130
150
  }
131
151
 
152
+ assignType(indent, type, inputs) {
153
+ var result = super.assignType(indent, type, inputs);
154
+ if (result || type.className !== 'DelimArrayType') return result;
155
+ var mt = this.typeMap(type);
156
+ var args = [];
157
+ var bump = this.bumper(indent);
158
+ var v = this.arrayValue(bump, type, inputs);
159
+ args.push(v);
160
+ var open = this.useModelClassForTypes ? "".concat(mt.name).concat(this.typeOpen) : this.typeOpen;
161
+ var nl = ",\n".concat(bump);
162
+ return "".concat(open, "\n").concat(bump).concat(args.join(nl), "\n").concat(indent).concat(this.typeClose);
163
+ }
164
+
165
+ assignParams(method, inputs) {
166
+ var args = [];
167
+ var hasComplexArg = false;
168
+
169
+ if (Object.keys(inputs).length > 0) {
170
+ method.allParams.forEach(p => {
171
+ var v = this.argValue(this.indentStr, p, inputs);
172
+
173
+ if (v !== '') {
174
+ var arg = !p.required ? "".concat(p.name).concat(this.argSetSep).concat(v) : v;
175
+ args.push(arg);
176
+
177
+ if (!p.type.intrinsic) {
178
+ hasComplexArg = true;
179
+ }
180
+ }
181
+ });
182
+ }
183
+
184
+ var open = '';
185
+
186
+ if (args.length > 1 || hasComplexArg) {
187
+ open = "\n".concat(this.indentStr);
188
+ }
189
+
190
+ return args.length > 0 ? "".concat(open).concat(args.join(this.argDelimiter)) : '';
191
+ }
192
+
193
+ makeTheCall(method, inputs) {
194
+ var _method$returnType;
195
+
196
+ inputs = (0, _codeGen.trimInputs)(inputs);
197
+ var typeName = (_method$returnType = method.returnType) !== null && _method$returnType !== void 0 && _method$returnType.type ? this.typeMap(method.returnType.type).name : 'String';
198
+ var resp = "val response = await sdk.ok<".concat(typeName, ">(sdk.").concat(method.name, "(");
199
+ var args = this.assignParams(method, inputs);
200
+ return "".concat(resp).concat(args, "))");
201
+ }
202
+
132
203
  methodHeaderComment(method) {
133
204
  var _method$description;
134
205
 
@@ -316,6 +387,9 @@ class KotlinGen extends _codeGen.CodeGen {
316
387
  typeMap(type) {
317
388
  super.typeMap(type);
318
389
  var mt = this.nullStr;
390
+
391
+ var asString = (_, v) => "\"".concat(v, "\"");
392
+
319
393
  var ktTypes = {
320
394
  any: {
321
395
  default: mt,
@@ -367,23 +441,28 @@ class KotlinGen extends _codeGen.CodeGen {
367
441
  },
368
442
  password: {
369
443
  default: mt,
370
- name: 'Password'
444
+ name: 'Password',
445
+ asVal: asString
371
446
  },
372
447
  string: {
373
448
  default: mt,
374
- name: 'String'
449
+ name: 'String',
450
+ asVal: asString
375
451
  },
376
452
  uri: {
377
453
  default: mt,
378
- name: 'UriString'
454
+ name: 'UriString',
455
+ asVal: asString
379
456
  },
380
457
  url: {
381
458
  default: mt,
382
- name: 'UrlString'
459
+ name: 'UrlString',
460
+ asVal: asString
383
461
  },
384
462
  void: {
385
463
  default: mt,
386
- name: 'Void'
464
+ name: 'Void',
465
+ asVal: (_i, _v) => 'String'
387
466
  }
388
467
  };
389
468
 
@@ -415,7 +494,8 @@ class KotlinGen extends _codeGen.CodeGen {
415
494
  case 'EnumType':
416
495
  return {
417
496
  default: '',
418
- name: type.name
497
+ name: type.name,
498
+ asVal: (_, v) => "".concat(type.name, ".").concat(v)
419
499
  };
420
500
  }
421
501
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/kotlin.gen.ts"],"names":["KotlinGen","CodeGen","supportsMultiApi","isDefaultApi","apiVersion","defaultApi","sdkClassName","apiRef","apiNamespace","methodsPrologue","_indent","warnEditing","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","noComment","beginRegion","description","endRegion","declareProperty","property","optional","required","type","typeMap","attr","hasSpecialNeeds","jsonName","startsWith","result","name","paramComment","param","mapped","declareParameter","method","paramMappedType","pOpt","default","methodHeaderComment","streamer","lines","push","trim","allParams","length","forEach","p","resultType","httpMethod","endpoint","responseIsBoth","responseIsBinary","join","methodHeaderDeclaration","bump","indentStr","params","args","trimEnd","jvmOverloads","paramDelimiter","optionalParams","methodSignature","encodePathParams","encodings","pathParams","declareMethod","bumper","httpCall","streamerSignature","declareStreamer","streamCall","declareEnumValue","value","describeProperty","typeSignature","EnumType","props","Object","values","properties","map","prop","header","declareType","num","enumDelimiter","propDelimiter","errorResponses","_method","httpPath","path","prefix","indexOf","replace","argGroup","hash","arg","argBump","argWrapper","argList","argDelimiter","nullStr","argFill","current","httpArgs","request","useRequest","bodyArg","queryArgs","it","toLowerCase","summary","typeNames","countError","names","api","types","Error","refCount","filter","intrinsic","mt","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","mapName","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 {\n Arg,\n EnumType,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n mayQuote,\n} from './sdkModels'\nimport { IMappedType, CodeGen, commentBlock } from './codeGen'\n\nexport class KotlinGen extends CodeGen {\n codePath = './kotlin/src/main/com/'\n packagePath = 'looker'\n itself = 'this'\n fileExtension = '.kt'\n commentStr = '// '\n nullStr = 'null'\n transport = 'transport'\n\n argDelimiter = ', '\n paramDelimiter = ',\\n'\n propDelimiter = ',\\n'\n codeQuote = '\"'\n enumDelimiter = ',\\n'\n\n indentStr = ' '\n endTypeStr = '\\n) : Serializable'\n needsRequestTypes = false\n willItStream = true\n\n private readonly defaultApi = '4.0'\n\n supportsMultiApi(): boolean {\n return false\n }\n\n isDefaultApi() {\n return this.apiVersion === this.defaultApi\n }\n\n // TODO create `defaultPackageName` property in CodeGen\n sdkClassName() {\n return this.isDefaultApi() ? 'LookerSDK' : `Looker${this.apiRef}SDK`\n }\n\n /**\n * Return either api versioned namespace text or empty string if current API is the default\n * @returns {string} 'api31' or '', for example\n */\n apiNamespace() {\n if (this.apiVersion === this.defaultApi) return ''\n return `.api${this.apiRef}`\n }\n\n methodsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}(authSession: AuthSession) : APIMethods(authSession) {\n\n val stream by lazy { ${this.sdkClassName()}Stream(this.authSession) }\n`\n }\n\n streamsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}Stream(authSession: AuthSession) : APIMethods(authSession) {\n\n`\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n modelsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\n\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.fasterxml.jackson.annotation.JsonProperty\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n`\n }\n\n modelsEpilogue(_indent: string) {\n return ''\n }\n\n // TODO create methodHeader(IMethod) and typeHeader(IType) https://kotlinlang.org/docs/reference/kotlin-doc.html\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return ''\n if (commentStr === ' ') {\n return `${indent}/**\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`\n }\n return `${indent}/**\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\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 declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '? = null' : ''\n const type = this.typeMap(property.type)\n // Bypass jackson serialization bug https://stackoverflow.com/questions/32270422/jackson-renames-primitive-boolean-field-by-removing-is\n const attr =\n property.hasSpecialNeeds ||\n property.jsonName.startsWith('is') ||\n property.jsonName.startsWith('get') ||\n property.jsonName.startsWith('set')\n ? `${indent}@get:JsonProperty(\"${property.jsonName}\")\\n${indent}@param:JsonProperty(\"${property.jsonName}\")\\n`\n : ''\n const result = `${attr}${indent}var ${property.name}: ${type.name}${optional}`\n return result\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n return `@param {${mapped.name}} ${param.name} ${param.description}`\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const mapped = this.paramMappedType(param, method)\n let pOpt = ''\n if (!param.required) {\n pOpt = '?'\n }\n return (\n `${indent}${param.name}: ${mapped.name}${pOpt}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n )\n }\n\n methodHeaderComment(method: IMethod, streamer = false) {\n const lines: string[] = []\n\n lines.push(method.description?.trim())\n\n if (method.allParams.length) {\n lines.push('')\n method.allParams.forEach((p) =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n )\n }\n\n const resultType = streamer ? 'ByteArray' : this.typeMap(method.type).name\n lines.push('')\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`)\n\n if (method.responseIsBoth()) {\n lines.push('')\n lines.push('**Note**: Binary content may be returned by this method.')\n } else if (method.responseIsBinary()) {\n lines.push('')\n lines.push('**Note**: Binary content is returned by this method.')\n }\n\n return lines.join('\\n')\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\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\n return `\n${this.commentHeader(\n indent,\n this.methodHeaderComment(method, streamer)\n).trimEnd()}\n${indent}${this.jvmOverloads(method)}fun ${method.name}(\n${params.join(this.paramDelimiter)}\n${indent}) : SDKResponse {\n`\n }\n\n jvmOverloads(method: IMethod) {\n return method.optionalParams.length > 0 ? '@JvmOverloads ' : ''\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n encodings += `${indent}val path_${param.name} = encodeParam(${param.name})\\n`\n }\n }\n return encodings\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 streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true)\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}${mayQuote(value)}`\n }\n\n describeProperty(property: IProperty) {\n return `@property ${property.name} ${super.describeProperty(property)}`\n }\n\n typeSignature(indent: string, type: IType) {\n if (type instanceof EnumType) {\n return `\n${this.commentHeader(indent, type.description).trim()}\n${indent}enum class ${type.name} : Serializable {\n`.trim()\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.describeProperty(prop)\n )\n\n const header = `\n${type.description}\n\n${props.join('\\n')}\n`.trim()\n\n return `\n${this.commentHeader(indent, header).trim()}\n${indent}data class ${type.name} (\n`.trim()\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n if (type instanceof EnumType) {\n const num = type as EnumType\n const props = num.values.map((value) =>\n this.declareEnumValue(bump, value)\n )\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.enumDelimiter)}\n}\n`.trim()\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.declareProperty(bump, prop)\n )\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.propDelimiter)}\n) : Serializable\n`.trim()\n }\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return ''\n // const results: string[] = method.errorResponses\n // .map(r => `I${r.type.name}`)\n // return results.join(' | ')\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0)\n return '\"' + path.replace(/{/gi, '${path_' + prefix) + '\"'\n return `\"${path}\"`\n }\n\n argGroup(indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return 'mapOf()'\n const hash: string[] = []\n for (const arg of args) {\n if (prefix) {\n hash.push(`\"${arg}\" to ${prefix}${arg}`)\n } else {\n hash.push(`\"${arg}\" to ${arg}`)\n }\n }\n const bump = this.bumper(indent)\n const argBump = this.bumper(bump)\n const argWrapper = `,\\n ${argBump}`\n return `\\n${bump}mapOf(${hash.join(argWrapper)})`\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n return args && args.length !== 0\n ? `\\n${indent}${prefix}${args.join(this.argDelimiter + prefix)}`\n : this.nullStr\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return ''\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`\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 let result = this.argFill(\n '',\n method.bodyArg ? `${request}${method.bodyArg}` : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : ''\n const type = this.typeMap(method.type)\n const args = this.httpArgs(indent, method)\n // TODO don't currently need these for Kotlin\n // const errors = this.errorResponses(indent, method)\n return `${indent}return ${this.it(method.httpMethod.toLowerCase())}<${\n type.name\n }>(${this.httpPath(method.endpoint, request)}${args ? ', ' + args : ''})`\n }\n\n streamCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : ''\n // const type = 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 return `${bump}return ${this.it(\n method.httpMethod.toLowerCase()\n )}<ByteArray>(${this.httpPath(method.endpoint, request)}${\n args ? ', ' + args : ''\n })`\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text)\n }\n\n // TODO avoid duplicate code\n typeNames(countError = true) {\n const names: string[] = []\n if (!this.api) return names\n if (countError) {\n this.api.types.Error.refCount++\n } else {\n this.api.types.Error.refCount = 0\n }\n const types = this.api.types\n Object.values(types)\n .filter((type) => type.refCount > 0 && !type.intrinsic)\n .forEach((type) => names.push(`I${type.name}`))\n // TODO import default constants if necessary\n // Object.values(types)\n // .filter(type => type instanceof RequestType)\n // .forEach(type => names.push(`${strDefault}${type.name.substring(strRequest.length)}`))\n return names\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: 'Any' },\n boolean: { default: mt, name: 'Boolean' },\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'Double' },\n float: { default: mt, name: 'Float' },\n int32: { default: mt, name: 'Int' },\n int64: { default: mt, name: 'Long' },\n integer: { default: mt, name: 'Int' },\n number: { default: mt, name: 'Double' },\n object: { default: mt, name: 'Any' },\n password: { default: mt, name: 'Password' },\n string: { default: mt, name: 'String' },\n uri: { default: mt, name: 'UriString' },\n url: { default: mt, name: 'UrlString' },\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: `Array<${map.name}>` }\n case 'HashType': {\n const mapName = type.elementType.name === 'string' ? 'Any' : 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 { default: this.nullStr, name: 'Map<String' + `,${mapName}>` }\n }\n case 'DelimArrayType':\n return { default: this.nullStr, name: `DelimArray<${map.name}>` }\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 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"],"file":"kotlin.gen.js"}
1
+ {"version":3,"sources":["../src/kotlin.gen.ts"],"names":["KotlinGen","CodeGen","supportsMultiApi","isDefaultApi","apiVersion","defaultApi","sdkClassName","apiRef","apiNamespace","methodsPrologue","_indent","warnEditing","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","noComment","beginRegion","description","endRegion","declareProperty","property","optional","required","type","typeMap","attr","hasSpecialNeeds","jsonName","result","name","paramComment","param","mapped","declareParameter","method","paramMappedType","pOpt","default","assignType","inputs","className","mt","args","bump","bumper","v","arrayValue","push","open","useModelClassForTypes","typeOpen","nl","join","typeClose","assignParams","hasComplexArg","Object","keys","length","allParams","forEach","p","argValue","indentStr","arg","argSetSep","intrinsic","argDelimiter","makeTheCall","typeName","returnType","resp","methodHeaderComment","streamer","lines","trim","resultType","httpMethod","endpoint","responseIsBoth","responseIsBinary","methodHeaderDeclaration","params","trimEnd","jvmOverloads","paramDelimiter","optionalParams","methodSignature","encodePathParams","encodings","pathParams","declareMethod","httpCall","streamerSignature","declareStreamer","streamCall","declareEnumValue","value","describeProperty","typeSignature","EnumType","props","values","properties","map","prop","header","declareType","num","enumDelimiter","propDelimiter","errorResponses","_method","httpPath","path","prefix","indexOf","replace","argGroup","hash","argBump","argWrapper","argList","nullStr","argFill","current","httpArgs","request","useRequest","bodyArg","queryArgs","it","toLowerCase","summary","typeNames","countError","names","api","types","Error","refCount","filter","asString","_","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","asVal","string","uri","url","void","_i","_v","elementType","mapName","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 {\n Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n ArgValues,\n} from './sdkModels'\nimport { EnumType, mayQuote } from './sdkModels'\nimport type { IMappedType, CodeAssignment } from './codeGen'\nimport { CodeGen, commentBlock, trimInputs } from './codeGen'\n\nexport class KotlinGen extends CodeGen {\n codePath = './kotlin/src/main/com/'\n packagePath = 'looker'\n itself = 'this'\n fileExtension = '.kt'\n commentStr = '// '\n nullStr = 'null'\n transport = 'transport'\n\n argDelimiter = ', '\n // makeTheCall definitions\n argSetSep = ' = '\n hashSetSep = ' to '\n arrayOpen = 'arrayOf('\n arrayClose = ')'\n hashOpen = 'mapOf('\n hashClose = ')'\n hashKeyQuote = '\"'\n typeOpen = '('\n typeClose = ')'\n useModelClassForTypes = true\n\n paramDelimiter = ',\\n'\n propDelimiter = ',\\n'\n codeQuote = '\"'\n enumDelimiter = ',\\n'\n\n indentStr = ' '\n endTypeStr = '\\n) : Serializable'\n needsRequestTypes = false\n willItStream = true\n\n private readonly defaultApi = '4.0'\n\n supportsMultiApi(): boolean {\n return false\n }\n\n isDefaultApi() {\n return this.apiVersion === this.defaultApi\n }\n\n // TODO create `defaultPackageName` property in CodeGen\n sdkClassName() {\n return this.isDefaultApi() ? 'LookerSDK' : `Looker${this.apiRef}SDK`\n }\n\n /**\n * Return either api versioned namespace text or empty string if current API is the default\n * @returns {string} 'api31' or '', for example\n */\n apiNamespace() {\n if (this.apiVersion === this.defaultApi) return ''\n return `.api${this.apiRef}`\n }\n\n methodsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}(authSession: AuthSession) : APIMethods(authSession) {\n\n val stream by lazy { ${this.sdkClassName()}Stream(this.authSession) }\n`\n }\n\n streamsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}Stream(authSession: AuthSession) : APIMethods(authSession) {\n\n`\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n modelsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\n\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n`\n }\n\n modelsEpilogue(_indent: string) {\n return ''\n }\n\n // TODO create methodHeader(IMethod) and typeHeader(IType) https://kotlinlang.org/docs/reference/kotlin-doc.html\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return ''\n if (commentStr === ' ') {\n return `${indent}/**\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`\n }\n return `${indent}/**\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\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 declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '? = null' : ''\n const type = this.typeMap(property.type)\n // handle property names with special characters\n const attr = property.hasSpecialNeeds\n ? `${indent}@SerializedName(\"${property.jsonName}\")\\n`\n : ''\n const result = `${attr}${indent}var ${property.name}: ${type.name}${optional}`\n return result\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n return `@param {${mapped.name}} ${param.name} ${param.description}`\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const mapped = this.paramMappedType(param, method)\n let pOpt = ''\n if (!param.required) {\n pOpt = '?'\n }\n return (\n `${indent}${param.name}: ${mapped.name}${pOpt}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n )\n }\n\n /**\n * Maps input values into type\n * @param indent starting indent level\n * @param type that receives assignments\n * @param inputs to assign to type\n */\n assignType(indent: string, type: IType, inputs: ArgValues): string {\n const result = super.assignType(indent, type, inputs)\n if (result || type.className !== 'DelimArrayType') return result\n const mt = this.typeMap(type)\n const args: string[] = []\n // child properties are indented one level\n const bump = this.bumper(indent)\n const v = this.arrayValue(bump, type, inputs)\n args.push(v)\n const open = this.useModelClassForTypes\n ? `${mt.name}${this.typeOpen}`\n : this.typeOpen\n const nl = `,\\n${bump}`\n // need a bump after `open` to account for the first argument\n // not getting the proper bump from args.join()\n return `${open}\\n${bump}${args.join(nl)}\\n${indent}${this.typeClose}`\n }\n\n // overridden from CodeGen\n assignParams(method: IMethod, inputs: ArgValues): string {\n const args: string[] = []\n let hasComplexArg = false\n if (Object.keys(inputs).length > 0) {\n method.allParams.forEach((p) => {\n const v = this.argValue(this.indentStr, p, inputs)\n if (v !== '') {\n // const arg = this.useNamedArguments ? `${p.name}${this.argSetSep}${v}` : v\n const arg = !p.required ? `${p.name}${this.argSetSep}${v}` : v\n args.push(arg)\n if (!p.type.intrinsic) {\n hasComplexArg = true\n }\n }\n })\n }\n let open = ''\n if (args.length > 1 || hasComplexArg) {\n open = `\\n${this.indentStr}`\n }\n return args.length > 0 ? `${open}${args.join(this.argDelimiter)}` : ''\n }\n\n // overridden from CodeGen\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n inputs = trimInputs(inputs)\n const typeName = method.returnType?.type\n ? this.typeMap(method.returnType.type).name\n : 'String'\n const resp = `val response = await sdk.ok<${typeName}>(sdk.${method.name}(`\n const args = this.assignParams(method, inputs)\n return `${resp}${args}))`\n }\n\n methodHeaderComment(method: IMethod, streamer = false) {\n const lines: string[] = []\n\n lines.push(method.description?.trim())\n\n if (method.allParams.length) {\n lines.push('')\n method.allParams.forEach((p) =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n )\n }\n\n const resultType = streamer ? 'ByteArray' : this.typeMap(method.type).name\n lines.push('')\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`)\n\n if (method.responseIsBoth()) {\n lines.push('')\n lines.push('**Note**: Binary content may be returned by this method.')\n } else if (method.responseIsBinary()) {\n lines.push('')\n lines.push('**Note**: Binary content is returned by this method.')\n }\n\n return lines.join('\\n')\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\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\n return `\n${this.commentHeader(\n indent,\n this.methodHeaderComment(method, streamer)\n).trimEnd()}\n${indent}${this.jvmOverloads(method)}fun ${method.name}(\n${params.join(this.paramDelimiter)}\n${indent}) : SDKResponse {\n`\n }\n\n jvmOverloads(method: IMethod) {\n return method.optionalParams.length > 0 ? '@JvmOverloads ' : ''\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n encodings += `${indent}val path_${param.name} = encodeParam(${param.name})\\n`\n }\n }\n return encodings\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 streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true)\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}${mayQuote(value)}`\n }\n\n describeProperty(property: IProperty) {\n return `@property ${property.name} ${super.describeProperty(property)}`\n }\n\n typeSignature(indent: string, type: IType) {\n if (type instanceof EnumType) {\n return `\n${this.commentHeader(indent, type.description).trim()}\n${indent}enum class ${type.name} : Serializable {\n`.trim()\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.describeProperty(prop)\n )\n\n const header = `\n${type.description}\n\n${props.join('\\n')}\n`.trim()\n\n return `\n${this.commentHeader(indent, header).trim()}\n${indent}data class ${type.name} (\n`.trim()\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n if (type instanceof EnumType) {\n const num = type as EnumType\n const props = num.values.map((value) =>\n this.declareEnumValue(bump, value)\n )\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.enumDelimiter)}\n}\n`.trim()\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.declareProperty(bump, prop)\n )\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.propDelimiter)}\n) : Serializable\n`.trim()\n }\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return ''\n // const results: string[] = method.errorResponses\n // .map(r => `I${r.type.name}`)\n // return results.join(' | ')\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0)\n return '\"' + path.replace(/{/gi, '${path_' + prefix) + '\"'\n return `\"${path}\"`\n }\n\n argGroup(indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return 'mapOf()'\n const hash: string[] = []\n for (const arg of args) {\n if (prefix) {\n hash.push(`\"${arg}\" to ${prefix}${arg}`)\n } else {\n hash.push(`\"${arg}\" to ${arg}`)\n }\n }\n const bump = this.bumper(indent)\n const argBump = this.bumper(bump)\n const argWrapper = `,\\n ${argBump}`\n return `\\n${bump}mapOf(${hash.join(argWrapper)})`\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n return args && args.length !== 0\n ? `\\n${indent}${prefix}${args.join(this.argDelimiter + prefix)}`\n : this.nullStr\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return ''\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`\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 let result = this.argFill(\n '',\n method.bodyArg ? `${request}${method.bodyArg}` : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : ''\n const type = this.typeMap(method.type)\n const args = this.httpArgs(indent, method)\n // TODO don't currently need these for Kotlin\n // const errors = this.errorResponses(indent, method)\n return `${indent}return ${this.it(method.httpMethod.toLowerCase())}<${\n type.name\n }>(${this.httpPath(method.endpoint, request)}${args ? ', ' + args : ''})`\n }\n\n streamCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : ''\n // const type = 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 return `${bump}return ${this.it(\n method.httpMethod.toLowerCase()\n )}<ByteArray>(${this.httpPath(method.endpoint, request)}${\n args ? ', ' + args : ''\n })`\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text)\n }\n\n // TODO avoid duplicate code\n typeNames(countError = true) {\n const names: string[] = []\n if (!this.api) return names\n if (countError) {\n this.api.types.Error.refCount++\n } else {\n this.api.types.Error.refCount = 0\n }\n const types = this.api.types\n Object.values(types)\n .filter((type) => type.refCount > 0 && !type.intrinsic)\n .forEach((type) => names.push(`I${type.name}`))\n // TODO import default constants if necessary\n // Object.values(types)\n // .filter(type => type instanceof RequestType)\n // .forEach(type => names.push(`${strDefault}${type.name.substring(strRequest.length)}`))\n return names\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = this.nullStr\n const asString: CodeAssignment = (_, v) => `\"${v}\"`\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'Any' },\n boolean: { default: mt, name: 'Boolean' },\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'Double' },\n float: { default: mt, name: 'Float' },\n int32: { default: mt, name: 'Int' },\n int64: { default: mt, name: 'Long' },\n integer: { default: mt, name: 'Int' },\n number: { default: mt, name: 'Double' },\n object: { default: mt, name: 'Any' },\n password: { default: mt, name: 'Password', asVal: asString },\n string: { default: mt, name: 'String', asVal: asString },\n uri: { default: mt, name: 'UriString', asVal: asString },\n url: { default: mt, name: 'UrlString', asVal: asString },\n void: { default: mt, name: 'Void', asVal: (_i, _v: any) => 'String' },\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: `Array<${map.name}>` }\n case 'HashType': {\n const mapName = type.elementType.name === 'string' ? 'Any' : 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 { default: this.nullStr, name: 'Map<String' + `,${mapName}>` }\n }\n case 'DelimArrayType':\n return { default: this.nullStr, name: `DelimArray<${map.name}>` }\n case 'EnumType':\n return {\n default: '',\n name: type.name,\n asVal: (_, v) => `${type.name}.${v}`,\n }\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"],"file":"kotlin.gen.js"}
@@ -1,5 +1,5 @@
1
1
  import { CodeGen } from './codeGen';
2
- import { IMethod, IParameter, IProperty, IType } from './sdkModels';
2
+ import type { IMethod, IParameter, IProperty, IType } from './sdkModels';
3
3
  export declare class PseudoGen extends CodeGen {
4
4
  commentStr: string;
5
5
  endTypeStr: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/pseudo.gen.ts"],"names":["PseudoGen","CodeGen","methodSignature","indent","method","params","allParams","args","map","p","declareParameter","bump","bumper","fragment","length","join","trim","commentHeader","description","trimRight","operationId","primaryResponse","type","name","text","_commentStr","noComment","comment","commentStr","construct","_indent","_type","declareMethod","_method","param","result","required","declareProperty","property","lb","rb","encodePathParams","methodsEpilogue","methodsPrologue","modelsEpilogue","modelsPrologue","summary","_text","typeSignature","typeOpen","declareType","ArrayType","elementType","trimStart"],"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 { CodeGen } from './codeGen'\nimport { ArrayType, IMethod, IParameter, IProperty, IType } from './sdkModels'\n\n// eslint-disable @typescript-eslint/no-unused-vars\n\n/**\n * Pseudocde generator\n */\nexport class PseudoGen extends CodeGen {\n commentStr = '\"'\n endTypeStr = '}'\n /**\n * Generic prototype-style method signature generator\n *\n * NOTE: Every language generator should override this methodSignature function\n *\n * @param indent indentation for code\n * @param method for signature\n */\n methodSignature(indent: string, method: IMethod): string {\n const params = method.allParams\n const args = params.map((p) => this.declareParameter(indent, method, p))\n const bump = this.bumper(indent)\n const fragment =\n args.length === 0\n ? ''\n : `\\n${bump}${args.join(',\\n' + bump).trim()}${indent}\\n`\n return (\n this.commentHeader(indent, method.description.trimRight()) +\n `${indent}${method.operationId}(${fragment}): ${method.primaryResponse.type.name}`\n )\n }\n\n commentHeader(\n indent: string,\n text: string | undefined,\n _commentStr?: string\n ): string | string {\n if (this.noComment) return ''\n const comment = super.commentHeader(indent, text, _commentStr).trimRight()\n if (!comment) return ''\n return `${comment}${this.commentStr}\\n`\n }\n\n construct(_indent: string, _type: IType): string {\n return ''\n }\n\n declareMethod(_indent: string, _method: IMethod): string {\n return ''\n }\n\n declareParameter(\n indent: string,\n _method: IMethod,\n param: IParameter\n ): string {\n let result = `${indent}${param.name}: ${param.type.name}`\n if (!param.required) result = `[${result}]`\n return this.commentHeader(indent, param.description) + result\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const lb = property.required ? '' : '['\n const rb = property.required ? '' : ']'\n return (\n this.commentHeader(indent, property.description) +\n `${indent}${lb}${property.name}: ${property.type.name}${rb}`\n )\n }\n\n encodePathParams(_indent: string, _method: IMethod): string {\n return ''\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return ''\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n modelsPrologue(_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.commentHeader(indent, type.description) +\n `${indent}${type.name} ${this.typeOpen}\\n`\n )\n }\n\n declareType(indent: string, type: IType): string {\n if (!(type instanceof ArrayType)) {\n return super.declareType(indent, type)\n }\n return `${indent}list of ${super\n .declareType(indent, type.elementType)\n .trimStart()}`\n }\n}\n"],"file":"pseudo.gen.js"}
1
+ {"version":3,"sources":["../src/pseudo.gen.ts"],"names":["PseudoGen","CodeGen","methodSignature","indent","method","params","allParams","args","map","p","declareParameter","bump","bumper","fragment","length","join","trim","commentHeader","description","trimRight","operationId","primaryResponse","type","name","text","_commentStr","noComment","comment","commentStr","construct","_indent","_type","declareMethod","_method","param","result","required","declareProperty","property","lb","rb","encodePathParams","methodsEpilogue","methodsPrologue","modelsEpilogue","modelsPrologue","summary","_text","typeSignature","typeOpen","declareType","ArrayType","elementType","trimStart"],"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 { CodeGen } from './codeGen'\nimport type { IMethod, IParameter, IProperty, IType } from './sdkModels'\nimport { ArrayType } from './sdkModels'\n\n// eslint-disable @typescript-eslint/no-unused-vars\n\n/**\n * Pseudocde generator\n */\nexport class PseudoGen extends CodeGen {\n commentStr = '\"'\n endTypeStr = '}'\n /**\n * Generic prototype-style method signature generator\n *\n * NOTE: Every language generator should override this methodSignature function\n *\n * @param indent indentation for code\n * @param method for signature\n */\n methodSignature(indent: string, method: IMethod): string {\n const params = method.allParams\n const args = params.map((p) => this.declareParameter(indent, method, p))\n const bump = this.bumper(indent)\n const fragment =\n args.length === 0\n ? ''\n : `\\n${bump}${args.join(',\\n' + bump).trim()}${indent}\\n`\n return (\n this.commentHeader(indent, method.description.trimRight()) +\n `${indent}${method.operationId}(${fragment}): ${method.primaryResponse.type.name}`\n )\n }\n\n commentHeader(\n indent: string,\n text: string | undefined,\n _commentStr?: string\n ): string | string {\n if (this.noComment) return ''\n const comment = super.commentHeader(indent, text, _commentStr).trimRight()\n if (!comment) return ''\n return `${comment}${this.commentStr}\\n`\n }\n\n construct(_indent: string, _type: IType): string {\n return ''\n }\n\n declareMethod(_indent: string, _method: IMethod): string {\n return ''\n }\n\n declareParameter(\n indent: string,\n _method: IMethod,\n param: IParameter\n ): string {\n let result = `${indent}${param.name}: ${param.type.name}`\n if (!param.required) result = `[${result}]`\n return this.commentHeader(indent, param.description) + result\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const lb = property.required ? '' : '['\n const rb = property.required ? '' : ']'\n return (\n this.commentHeader(indent, property.description) +\n `${indent}${lb}${property.name}: ${property.type.name}${rb}`\n )\n }\n\n encodePathParams(_indent: string, _method: IMethod): string {\n return ''\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return ''\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n modelsPrologue(_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.commentHeader(indent, type.description) +\n `${indent}${type.name} ${this.typeOpen}\\n`\n )\n }\n\n declareType(indent: string, type: IType): string {\n if (!(type instanceof ArrayType)) {\n return super.declareType(indent, type)\n }\n return `${indent}list of ${super\n .declareType(indent, type.elementType)\n .trimStart()}`\n }\n}\n"],"file":"pseudo.gen.js"}
@@ -1,5 +1,6 @@
1
- import { Arg, ArgValues, IMethod, IParameter, IProperty, IType } from './sdkModels';
2
- import { CodeGen, IMappedType } from './codeGen';
1
+ import type { Arg, ArgValues, IMethod, IParameter, IProperty, IType } from './sdkModels';
2
+ import type { IMappedType } from './codeGen';
3
+ import { CodeGen } from './codeGen';
3
4
  export declare class PythonGen extends CodeGen {
4
5
  codePath: string;
5
6
  packagePath: string;