@looker/sdk-codegen 21.4.0 → 21.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -1
- package/lib/codeGenerators.js.map +1 -1
- package/lib/csharp.gen.js +3 -2
- package/lib/csharp.gen.js.map +1 -1
- package/lib/declarationInfo.d.ts +2 -2
- package/lib/declarationInfo.js +3 -2
- package/lib/declarationInfo.js.map +1 -1
- package/lib/esm/codeGenerators.js.map +1 -1
- package/lib/esm/csharp.gen.js +4 -3
- package/lib/esm/csharp.gen.js.map +1 -1
- package/lib/esm/declarationInfo.js +3 -2
- package/lib/esm/declarationInfo.js.map +1 -1
- package/lib/esm/exampleInfo.js +1 -0
- package/lib/esm/exampleInfo.js.map +1 -1
- package/lib/esm/go.gen.js +5 -5
- package/lib/esm/go.gen.js.map +1 -1
- package/lib/esm/kotlin.gen.js +7 -3
- package/lib/esm/kotlin.gen.js.map +1 -1
- package/lib/esm/python.gen.js +3 -8
- package/lib/esm/python.gen.js.map +1 -1
- package/lib/esm/sdkModels.js +20 -7
- package/lib/esm/sdkModels.js.map +1 -1
- package/lib/esm/specConverter.js +4 -1
- package/lib/esm/specConverter.js.map +1 -1
- package/lib/esm/swift.gen.js +4 -3
- package/lib/esm/swift.gen.js.map +1 -1
- package/lib/esm/typescript.gen.js +8 -2
- package/lib/esm/typescript.gen.js.map +1 -1
- package/lib/exampleInfo.d.ts +3 -1
- package/lib/exampleInfo.js +5 -1
- package/lib/exampleInfo.js.map +1 -1
- package/lib/go.gen.d.ts +0 -1
- package/lib/go.gen.js +5 -5
- package/lib/go.gen.js.map +1 -1
- package/lib/kotlin.gen.d.ts +1 -0
- package/lib/kotlin.gen.js +6 -2
- package/lib/kotlin.gen.js.map +1 -1
- package/lib/python.gen.d.ts +0 -1
- package/lib/python.gen.js +2 -7
- package/lib/python.gen.js.map +1 -1
- package/lib/sdkModels.d.ts +3 -1
- package/lib/sdkModels.js +24 -8
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.js +4 -1
- package/lib/specConverter.js.map +1 -1
- package/lib/swift.gen.js +3 -2
- package/lib/swift.gen.js.map +1 -1
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/typescript.gen.js +7 -1
- package/lib/typescript.gen.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,46 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [21.6.0](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.5.2...sdk-codegen-v21.6.0) (2022-07-07)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* generate SDK 22.6 ([#1102](https://www.github.com/looker-open-source/sdk-codegen/issues/1102)) ([2162860](https://www.github.com/looker-open-source/sdk-codegen/commit/2162860f0bf292bce0a79f8115f7c9fc5628057f))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* remove generated files from examples index ([#1076](https://www.github.com/looker-open-source/sdk-codegen/issues/1076)) ([d75bce8](https://www.github.com/looker-open-source/sdk-codegen/commit/d75bce8dc25d41fd6bc5e2e513782eaa6009fd10))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Dependencies
|
|
22
|
+
|
|
23
|
+
* The following workspace dependencies were updated
|
|
24
|
+
* dependencies
|
|
25
|
+
* @looker/sdk-rtl bumped from ^21.3.3 to ^21.3.4
|
|
26
|
+
|
|
27
|
+
### [21.5.2](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.5.1...sdk-codegen-v21.5.2) (2022-04-07)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Dependencies
|
|
31
|
+
|
|
32
|
+
* The following workspace dependencies were updated
|
|
33
|
+
* dependencies
|
|
34
|
+
* @looker/sdk-rtl bumped from ^21.3.2 to ^21.3.3
|
|
35
|
+
|
|
36
|
+
## [21.5.0](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.4.0...sdk-codegen-v21.5.0) (2022-03-04)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* generate code deprecation tags ([#1006](https://www.github.com/looker-open-source/sdk-codegen/issues/1006)) ([afd4b66](https://www.github.com/looker-open-source/sdk-codegen/commit/afd4b66ffbd11cdacd19fe1353c9e5bf381fe932))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* remove python version upper bound ([#1015](https://www.github.com/looker-open-source/sdk-codegen/issues/1015)) ([b1650a1](https://www.github.com/looker-open-source/sdk-codegen/commit/b1650a1a8a56c52a7a06ca5c9cef02300af7289e))
|
|
47
|
+
|
|
8
48
|
## [21.4.0](https://www.github.com/looker-open-source/sdk-codegen/compare/sdk-codegen-v21.3.1...sdk-codegen-v21.4.0) (2022-02-14)
|
|
9
49
|
|
|
10
50
|
|
|
@@ -304,4 +344,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
304
344
|
|
|
305
345
|
### Added
|
|
306
346
|
|
|
307
|
-
- [API spec diff utility](https://github.com/looker-open-source/sdk-codegen/pull/380)
|
|
347
|
+
- [API spec diff utility](https://github.com/looker-open-source/sdk-codegen/pull/380)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/codeGenerators.ts"],"names":["Generators","factory","api","versions","PythonGen","language","extension","TypescriptGen","KotlinGen","CSharpGen","legacy","options","SwiftGen","GoGen","codeGenerators","filter","x","undefined","findGenerator","target","toLocaleLowerCase","find","item","match","getCodeGenerator","generator","legacyLanguages"],"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 { ApiModel } from './sdkModels'\nimport type { ICodeGen, IVersionInfo } from './codeGen'\nimport { CSharpGen } from './csharp.gen'\nimport { KotlinGen } from './kotlin.gen'\nimport { SwiftGen } from './swift.gen'\nimport { PythonGen } from './python.gen'\nimport { TypescriptGen } from './typescript.gen'\nimport { GoGen } from './go.gen'\n\nexport interface IGeneratorSpec {\n /** source code file extension regex */\n extension: RegExp\n /** name of language SDK to generate */\n language: string\n /** path name for legacy generator output. Defaults to language */\n path?: string\n /** code generator constructor */\n factory?: (api: ApiModel, versions?: IVersionInfo) => ICodeGen\n /** options for the legacy code generator */\n options?: string\n /** name of the legacy language generator */\n legacy?: string // legacy language tag\n}\n\n// To disable generation of any language specification,
|
|
1
|
+
{"version":3,"sources":["../src/codeGenerators.ts"],"names":["Generators","factory","api","versions","PythonGen","language","extension","TypescriptGen","KotlinGen","CSharpGen","legacy","options","SwiftGen","GoGen","codeGenerators","filter","x","undefined","findGenerator","target","toLocaleLowerCase","find","item","match","getCodeGenerator","generator","legacyLanguages"],"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 { ApiModel } from './sdkModels'\nimport type { ICodeGen, IVersionInfo } from './codeGen'\nimport { CSharpGen } from './csharp.gen'\nimport { KotlinGen } from './kotlin.gen'\nimport { SwiftGen } from './swift.gen'\nimport { PythonGen } from './python.gen'\nimport { TypescriptGen } from './typescript.gen'\nimport { GoGen } from './go.gen'\n\nexport interface IGeneratorSpec {\n /** source code file extension regex */\n extension: RegExp\n /** name of language SDK to generate */\n language: string\n /** path name for legacy generator output. Defaults to language */\n path?: string\n /** code generator constructor */\n factory?: (api: ApiModel, versions?: IVersionInfo) => ICodeGen\n /** options for the legacy code generator */\n options?: string\n /** name of the legacy language generator */\n legacy?: string // legacy language tag\n}\n\n// To disable generation of any language specification, just comment it out\nexport const Generators: Array<IGeneratorSpec> = [\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new PythonGen(api, versions),\n language: 'Python',\n extension: /\\.py/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new TypescriptGen(api, versions),\n language: 'TypeScript',\n extension: /\\.ts(x?)/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new KotlinGen(api, versions),\n language: 'Kotlin',\n extension: /\\.kt/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new CSharpGen(api, versions),\n language: 'C#',\n legacy: 'csharp',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.cs/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new SwiftGen(api, versions),\n language: 'Swift',\n extension: /\\.swift/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new GoGen(api, versions),\n language: 'Go',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.go/gi,\n },\n {\n language: 'java',\n legacy: 'java',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.java/gi,\n },\n {\n language: 'php',\n legacy: 'php',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.php/gi,\n },\n // {\n // language: 'R',\n // legacy: 'r'\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.r/gi,\n // },\n // {\n // language: 'Ruby',\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.rb/gi,\n // },\n // {\n // language: 'Rust',\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.rs/gi,\n // },\n]\n\nexport const codeGenerators = Generators.filter((x) => x.factory !== undefined)\n\n/**\n * Matches the code generator based on the language name, alias, file extension, or legacy name\n * @param target label/language/file extension to find in the generator list\n * @returns undefined if the label/language/extension isn't found, otherwise the generator entry\n */\nexport const findGenerator = (target: string) => {\n target = target.toLocaleLowerCase()\n // Convenience alias\n return codeGenerators.find(\n (item) =>\n item.language.toLocaleLowerCase() === target ||\n target.match(item.extension) ||\n ('.' + target).match(item.extension) ||\n item.legacy?.toLocaleLowerCase() === target\n )\n}\n\n/**\n * constructs a language generator by name lookup\n *\n * CodeGenerator settings can be overridden by creating a config file and adding an entry for the desired language\n *\n * See the `config` folder in this package for more sample config files\n *\n * @param language name, file extension, or alias of code language to generate\n * @param api API specification\n * @param versions version info to use for stamping the agentTag\n * @returns either an ICodeGen implementation or undefined\n */\nexport const getCodeGenerator = (\n language: string,\n api: ApiModel,\n versions?: IVersionInfo\n): ICodeGen | undefined => {\n const generator = findGenerator(language)\n if (generator && generator.factory) {\n return generator.factory(api, versions)\n }\n return undefined\n}\n\nexport const legacyLanguages = (): Array<IGeneratorSpec> => {\n return Generators.filter((x) => !!x.legacy)\n}\n"],"file":"codeGenerators.js"}
|
package/lib/csharp.gen.js
CHANGED
|
@@ -126,7 +126,8 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
126
126
|
|
|
127
127
|
headComment += this.returnComment(method);
|
|
128
128
|
method.params.forEach(param => headComment += this.paramComment(param));
|
|
129
|
-
|
|
129
|
+
var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
|
|
130
|
+
return this.commentHeader(indent, headComment) + dep;
|
|
130
131
|
}
|
|
131
132
|
|
|
132
133
|
genericBits(method) {
|
|
@@ -231,7 +232,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
231
232
|
}
|
|
232
233
|
|
|
233
234
|
paramComment(param) {
|
|
234
|
-
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(param
|
|
235
|
+
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat((0, _sdkModels.describeParam)(param), "</param>") : '';
|
|
235
236
|
}
|
|
236
237
|
|
|
237
238
|
returnComment(method) {
|
package/lib/csharp.gen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/csharp.gen.ts"],"names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n\n return this.commentHeader(indent, headComment)\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${param.description}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
|
|
1
|
+
{"version":3,"sources":["../src/csharp.gen.ts"],"names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
|
package/lib/declarationInfo.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IMine, IFileCall } from './exampleInfo';
|
|
1
|
+
import type { IMine, IFileCall, SourceLink } from './exampleInfo';
|
|
2
2
|
import type { KeyedCollection } from './sdkModels';
|
|
3
3
|
export interface IDeclarationMine extends IMine {
|
|
4
4
|
types: DeclarationNuggets;
|
|
@@ -7,7 +7,7 @@ export interface IDeclarationMine extends IMine {
|
|
|
7
7
|
export interface IDeclarationNugget extends IFileCall {
|
|
8
8
|
}
|
|
9
9
|
export declare type DeclarationNuggets = KeyedCollection<IDeclarationNugget>;
|
|
10
|
-
export declare const findDeclaration: (lode: IDeclarationMine, methodId?: string | undefined, typeId?: string | undefined) => {
|
|
10
|
+
export declare const findDeclaration: (lode: IDeclarationMine, methodId?: string | undefined, typeId?: string | undefined, sourcerer?: SourceLink) => {
|
|
11
11
|
declaration: IDeclarationNugget | undefined;
|
|
12
12
|
link: string | undefined;
|
|
13
13
|
};
|
package/lib/declarationInfo.js
CHANGED
|
@@ -7,7 +7,8 @@ exports.findDeclaration = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _exampleInfo = require("./exampleInfo");
|
|
9
9
|
|
|
10
|
-
var findDeclaration = (lode, methodId, typeId)
|
|
10
|
+
var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
11
|
+
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _exampleInfo.permaLink;
|
|
11
12
|
var declaration;
|
|
12
13
|
|
|
13
14
|
if (methodId) {
|
|
@@ -19,7 +20,7 @@ var findDeclaration = (lode, methodId, typeId) => {
|
|
|
19
20
|
var link;
|
|
20
21
|
|
|
21
22
|
if (declaration) {
|
|
22
|
-
link = (
|
|
23
|
+
link = sourcerer(lode.remoteOrigin, lode.commitHash, declaration.sourceFile, declaration.line);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/declarationInfo.ts"],"names":["findDeclaration","lode","methodId","typeId","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"mappings":";;;;;;;AA0BA;;
|
|
1
|
+
{"version":3,"sources":["../src/declarationInfo.ts"],"names":["findDeclaration","lode","methodId","typeId","sourcerer","permaLink","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"mappings":";;;;;;;AA0BA;;AAqBO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAC7BC,IAD6B,EAE7BC,QAF6B,EAG7BC,MAH6B,EAK1B;AAAA,MADHC,SACG,uEADqBC,sBACrB;AACH,MAAIC,WAAJ;;AACA,MAAIJ,QAAJ,EAAc;AACZI,IAAAA,WAAW,GAAGL,IAAI,CAACM,OAAL,CAAaL,QAAb,CAAd;AACD,GAFD,MAEO,IAAIC,MAAJ,EAAY;AACjBG,IAAAA,WAAW,GAAGL,IAAI,CAACO,KAAL,CAAWL,MAAX,CAAd;AACD;;AAED,MAAIM,IAAJ;;AACA,MAAIH,WAAJ,EAAiB;AACfG,IAAAA,IAAI,GAAGL,SAAS,CACdH,IAAI,CAACS,YADS,EAEdT,IAAI,CAACU,UAFS,EAGdL,WAAW,CAACM,UAHE,EAIdN,WAAW,CAACO,IAJE,CAAhB;AAOD;;AACD,SAAO;AAAEP,IAAAA,WAAF;AAAeG,IAAAA;AAAf,GAAP;AACD,CAxBM","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 */\nimport type { IMine, IFileCall, SourceLink } from './exampleInfo'\nimport { permaLink } from './exampleInfo'\nimport type { KeyedCollection } from './sdkModels'\n\n/** All mined declaration data */\nexport interface IDeclarationMine extends IMine {\n types: DeclarationNuggets\n methods: DeclarationNuggets\n}\n\nexport interface IDeclarationNugget extends IFileCall {}\n\nexport type DeclarationNuggets = KeyedCollection<IDeclarationNugget>\n\n/**\n * Searches for declaration of a given method or type and returns a GitHub\n * permalink if found\n * @param lode All declaration data\n * @param methodId Method id to search for\n * @param typeId Type id to search for\n * @param sourcerer Function to format source code link\n */\nexport const findDeclaration = (\n lode: IDeclarationMine,\n methodId?: string,\n typeId?: string,\n sourcerer: SourceLink = permaLink\n) => {\n let declaration\n if (methodId) {\n declaration = lode.methods[methodId]\n } else if (typeId) {\n declaration = lode.types[typeId]\n }\n\n let link\n if (declaration) {\n link = sourcerer(\n lode.remoteOrigin,\n lode.commitHash,\n declaration.sourceFile,\n declaration.line\n )\n // link = ideLink(parentPath, declaration.sourceFile, declaration.line)\n }\n return { declaration, link }\n}\n"],"file":"declarationInfo.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/codeGenerators.ts"],"names":["CSharpGen","KotlinGen","SwiftGen","PythonGen","TypescriptGen","GoGen","Generators","factory","api","versions","language","extension","legacy","options","codeGenerators","filter","x","undefined","findGenerator","target","toLocaleLowerCase","find","item","match","getCodeGenerator","generator","legacyLanguages"],"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 { ApiModel } from './sdkModels'\nimport type { ICodeGen, IVersionInfo } from './codeGen'\nimport { CSharpGen } from './csharp.gen'\nimport { KotlinGen } from './kotlin.gen'\nimport { SwiftGen } from './swift.gen'\nimport { PythonGen } from './python.gen'\nimport { TypescriptGen } from './typescript.gen'\nimport { GoGen } from './go.gen'\n\nexport interface IGeneratorSpec {\n /** source code file extension regex */\n extension: RegExp\n /** name of language SDK to generate */\n language: string\n /** path name for legacy generator output. Defaults to language */\n path?: string\n /** code generator constructor */\n factory?: (api: ApiModel, versions?: IVersionInfo) => ICodeGen\n /** options for the legacy code generator */\n options?: string\n /** name of the legacy language generator */\n legacy?: string // legacy language tag\n}\n\n// To disable generation of any language specification,
|
|
1
|
+
{"version":3,"sources":["../../src/codeGenerators.ts"],"names":["CSharpGen","KotlinGen","SwiftGen","PythonGen","TypescriptGen","GoGen","Generators","factory","api","versions","language","extension","legacy","options","codeGenerators","filter","x","undefined","findGenerator","target","toLocaleLowerCase","find","item","match","getCodeGenerator","generator","legacyLanguages"],"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 { ApiModel } from './sdkModels'\nimport type { ICodeGen, IVersionInfo } from './codeGen'\nimport { CSharpGen } from './csharp.gen'\nimport { KotlinGen } from './kotlin.gen'\nimport { SwiftGen } from './swift.gen'\nimport { PythonGen } from './python.gen'\nimport { TypescriptGen } from './typescript.gen'\nimport { GoGen } from './go.gen'\n\nexport interface IGeneratorSpec {\n /** source code file extension regex */\n extension: RegExp\n /** name of language SDK to generate */\n language: string\n /** path name for legacy generator output. Defaults to language */\n path?: string\n /** code generator constructor */\n factory?: (api: ApiModel, versions?: IVersionInfo) => ICodeGen\n /** options for the legacy code generator */\n options?: string\n /** name of the legacy language generator */\n legacy?: string // legacy language tag\n}\n\n// To disable generation of any language specification, just comment it out\nexport const Generators: Array<IGeneratorSpec> = [\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new PythonGen(api, versions),\n language: 'Python',\n extension: /\\.py/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new TypescriptGen(api, versions),\n language: 'TypeScript',\n extension: /\\.ts(x?)/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new KotlinGen(api, versions),\n language: 'Kotlin',\n extension: /\\.kt/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new CSharpGen(api, versions),\n language: 'C#',\n legacy: 'csharp',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.cs/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new SwiftGen(api, versions),\n language: 'Swift',\n extension: /\\.swift/gi,\n },\n {\n factory: (api: ApiModel, versions?: IVersionInfo) =>\n new GoGen(api, versions),\n language: 'Go',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.go/gi,\n },\n {\n language: 'java',\n legacy: 'java',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.java/gi,\n },\n {\n language: 'php',\n legacy: 'php',\n options: '-papiPackage=Looker -ppackageName=looker',\n extension: /\\.php/gi,\n },\n // {\n // language: 'R',\n // legacy: 'r'\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.r/gi,\n // },\n // {\n // language: 'Ruby',\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.rb/gi,\n // },\n // {\n // language: 'Rust',\n // options: '-papiPackage=Looker -ppackageName=looker'\n // extension: /\\.rs/gi,\n // },\n]\n\nexport const codeGenerators = Generators.filter((x) => x.factory !== undefined)\n\n/**\n * Matches the code generator based on the language name, alias, file extension, or legacy name\n * @param target label/language/file extension to find in the generator list\n * @returns undefined if the label/language/extension isn't found, otherwise the generator entry\n */\nexport const findGenerator = (target: string) => {\n target = target.toLocaleLowerCase()\n // Convenience alias\n return codeGenerators.find(\n (item) =>\n item.language.toLocaleLowerCase() === target ||\n target.match(item.extension) ||\n ('.' + target).match(item.extension) ||\n item.legacy?.toLocaleLowerCase() === target\n )\n}\n\n/**\n * constructs a language generator by name lookup\n *\n * CodeGenerator settings can be overridden by creating a config file and adding an entry for the desired language\n *\n * See the `config` folder in this package for more sample config files\n *\n * @param language name, file extension, or alias of code language to generate\n * @param api API specification\n * @param versions version info to use for stamping the agentTag\n * @returns either an ICodeGen implementation or undefined\n */\nexport const getCodeGenerator = (\n language: string,\n api: ApiModel,\n versions?: IVersionInfo\n): ICodeGen | undefined => {\n const generator = findGenerator(language)\n if (generator && generator.factory) {\n return generator.factory(api, versions)\n }\n return undefined\n}\n\nexport const legacyLanguages = (): Array<IGeneratorSpec> => {\n return Generators.filter((x) => !!x.legacy)\n}\n"],"file":"codeGenerators.js"}
|
package/lib/esm/csharp.gen.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
3
|
import { CodeGen, commentBlock } from './codeGen';
|
|
4
|
-
import { strBody, firstCase, EnumType } from './sdkModels';
|
|
4
|
+
import { strBody, firstCase, EnumType, describeParam } from './sdkModels';
|
|
5
5
|
var reservedWords = new Set(['abstract', 'as', 'base', 'bool', 'break', 'byte', 'case', 'catch', 'char', 'checked', 'class', 'const', 'continue', 'decimal', 'default', 'delegate', 'do ', 'double', 'else', 'enum', 'event', 'explicit', 'extern', 'false', 'finally', 'fixed', 'float', 'for', 'foreach', 'goto', 'if', 'implicit', 'in', 'int', 'interface', 'internal', 'is', 'lock', 'long', 'namespace', 'new', 'null', 'object', 'operator', 'out', 'override', 'params', 'private', 'protected', 'public', 'readonly', 'ref', 'return', 'sbyte', 'sealed', 'short', 'sizeof', 'stackalloc', 'static', 'string', 'struct', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'uint', 'ulong', 'unchecked', 'unsafe', 'ushort', 'using', 'virtual', 'void', 'volatile', 'while']);
|
|
6
6
|
export class CSharpGen extends CodeGen {
|
|
7
7
|
constructor() {
|
|
@@ -116,7 +116,8 @@ export class CSharpGen extends CodeGen {
|
|
|
116
116
|
|
|
117
117
|
headComment += this.returnComment(method);
|
|
118
118
|
method.params.forEach(param => headComment += this.paramComment(param));
|
|
119
|
-
|
|
119
|
+
var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
|
|
120
|
+
return this.commentHeader(indent, headComment) + dep;
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
genericBits(method) {
|
|
@@ -221,7 +222,7 @@ export class CSharpGen extends CodeGen {
|
|
|
221
222
|
}
|
|
222
223
|
|
|
223
224
|
paramComment(param) {
|
|
224
|
-
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(param
|
|
225
|
+
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(describeParam(param), "</param>") : '';
|
|
225
226
|
}
|
|
226
227
|
|
|
227
228
|
returnComment(method) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/csharp.gen.ts"],"names":["CodeGen","commentBlock","strBody","firstCase","EnumType","reservedWords","Set","CSharpGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n\n return this.commentHeader(indent, headComment)\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${param.description}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/csharp.gen.ts"],"names":["CodeGen","commentBlock","strBody","firstCase","EnumType","describeParam","reservedWords","Set","CSharpGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: 'void' },\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `${map.name}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: type.name }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { permaLink } from './exampleInfo';
|
|
2
|
-
export var findDeclaration = (lode, methodId, typeId)
|
|
2
|
+
export var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
3
|
+
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : permaLink;
|
|
3
4
|
var declaration;
|
|
4
5
|
|
|
5
6
|
if (methodId) {
|
|
@@ -11,7 +12,7 @@ export var findDeclaration = (lode, methodId, typeId) => {
|
|
|
11
12
|
var link;
|
|
12
13
|
|
|
13
14
|
if (declaration) {
|
|
14
|
-
link =
|
|
15
|
+
link = sourcerer(lode.remoteOrigin, lode.commitHash, declaration.sourceFile, declaration.line);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/declarationInfo.ts"],"names":["permaLink","findDeclaration","lode","methodId","typeId","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"mappings":"AA0BA,SAASA,SAAT,QAA0B,eAA1B;
|
|
1
|
+
{"version":3,"sources":["../../src/declarationInfo.ts"],"names":["permaLink","findDeclaration","lode","methodId","typeId","sourcerer","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"mappings":"AA0BA,SAASA,SAAT,QAA0B,eAA1B;AAqBA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAC7BC,IAD6B,EAE7BC,QAF6B,EAG7BC,MAH6B,EAK1B;AAAA,MADHC,SACG,uEADqBL,SACrB;AACH,MAAIM,WAAJ;;AACA,MAAIH,QAAJ,EAAc;AACZG,IAAAA,WAAW,GAAGJ,IAAI,CAACK,OAAL,CAAaJ,QAAb,CAAd;AACD,GAFD,MAEO,IAAIC,MAAJ,EAAY;AACjBE,IAAAA,WAAW,GAAGJ,IAAI,CAACM,KAAL,CAAWJ,MAAX,CAAd;AACD;;AAED,MAAIK,IAAJ;;AACA,MAAIH,WAAJ,EAAiB;AACfG,IAAAA,IAAI,GAAGJ,SAAS,CACdH,IAAI,CAACQ,YADS,EAEdR,IAAI,CAACS,UAFS,EAGdL,WAAW,CAACM,UAHE,EAIdN,WAAW,CAACO,IAJE,CAAhB;AAOD;;AACD,SAAO;AAAEP,IAAAA,WAAF;AAAeG,IAAAA;AAAf,GAAP;AACD,CAxBM","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 */\nimport type { IMine, IFileCall, SourceLink } from './exampleInfo'\nimport { permaLink } from './exampleInfo'\nimport type { KeyedCollection } from './sdkModels'\n\n/** All mined declaration data */\nexport interface IDeclarationMine extends IMine {\n types: DeclarationNuggets\n methods: DeclarationNuggets\n}\n\nexport interface IDeclarationNugget extends IFileCall {}\n\nexport type DeclarationNuggets = KeyedCollection<IDeclarationNugget>\n\n/**\n * Searches for declaration of a given method or type and returns a GitHub\n * permalink if found\n * @param lode All declaration data\n * @param methodId Method id to search for\n * @param typeId Type id to search for\n * @param sourcerer Function to format source code link\n */\nexport const findDeclaration = (\n lode: IDeclarationMine,\n methodId?: string,\n typeId?: string,\n sourcerer: SourceLink = permaLink\n) => {\n let declaration\n if (methodId) {\n declaration = lode.methods[methodId]\n } else if (typeId) {\n declaration = lode.types[typeId]\n }\n\n let link\n if (declaration) {\n link = sourcerer(\n lode.remoteOrigin,\n lode.commitHash,\n declaration.sourceFile,\n declaration.line\n )\n // link = ideLink(parentPath, declaration.sourceFile, declaration.line)\n }\n return { declaration, link }\n}\n"],"file":"declarationInfo.js"}
|