@looker/sdk-codegen 21.8.1 → 21.9.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 +128 -167
- package/README.md +0 -1
- package/lib/codeGen.d.ts +1 -1
- package/lib/codeGen.js +4 -6
- package/lib/codeGen.js.map +1 -1
- package/lib/codeGenerators.d.ts +1 -1
- package/lib/codeGenerators.js +2 -4
- package/lib/codeGenerators.js.map +1 -1
- package/lib/csharp.gen.d.ts +1 -1
- package/lib/csharp.gen.js +2 -2
- package/lib/csharp.gen.js.map +1 -1
- package/lib/declarationInfo.d.ts +3 -3
- package/lib/declarationInfo.js +1 -2
- package/lib/declarationInfo.js.map +1 -1
- package/lib/esm/codeGen.js +14 -23
- package/lib/esm/codeGen.js.map +1 -1
- package/lib/esm/codeGenerators.js +17 -28
- package/lib/esm/codeGenerators.js.map +1 -1
- package/lib/esm/csharp.gen.js +11 -18
- package/lib/esm/csharp.gen.js.map +1 -1
- package/lib/esm/declarationInfo.js +3 -10
- package/lib/esm/declarationInfo.js.map +1 -1
- package/lib/esm/exampleInfo.js +9 -24
- package/lib/esm/exampleInfo.js.map +1 -1
- package/lib/esm/go.gen.js +11 -18
- package/lib/esm/go.gen.js.map +1 -1
- package/lib/esm/index.js +13 -148
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/kotlin.gen.js +11 -18
- package/lib/esm/kotlin.gen.js.map +1 -1
- package/lib/esm/pseudo.gen.js +6 -13
- package/lib/esm/pseudo.gen.js.map +1 -1
- package/lib/esm/python.gen.js +15 -19
- package/lib/esm/python.gen.js.map +1 -1
- package/lib/esm/sdkModels.js +52 -96
- package/lib/esm/sdkModels.js.map +1 -1
- package/lib/esm/specConverter.js +29 -57
- package/lib/esm/specConverter.js.map +1 -1
- package/lib/esm/specDiff.js +17 -36
- package/lib/esm/specDiff.js.map +1 -1
- package/lib/esm/swift.gen.js +17 -24
- package/lib/esm/swift.gen.js.map +1 -1
- package/lib/esm/testUtils/index.js +1 -16
- package/lib/esm/testUtils/index.js.map +1 -1
- package/lib/esm/testUtils/testUtils.js +12 -25
- package/lib/esm/testUtils/testUtils.js.map +1 -1
- package/lib/esm/typescript.gen.js +16 -23
- package/lib/esm/typescript.gen.js.map +1 -1
- package/lib/exampleInfo.d.ts +6 -6
- package/lib/exampleInfo.js +1 -2
- package/lib/exampleInfo.js.map +1 -1
- package/lib/go.gen.js +3 -3
- package/lib/go.gen.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/kotlin.gen.d.ts +1 -1
- package/lib/kotlin.gen.js +2 -2
- package/lib/kotlin.gen.js.map +1 -1
- package/lib/pseudo.gen.js +2 -2
- package/lib/pseudo.gen.js.map +1 -1
- package/lib/python.gen.js +6 -3
- package/lib/python.gen.js.map +1 -1
- package/lib/sdkModels.d.ts +13 -13
- package/lib/sdkModels.js +15 -25
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.d.ts +6 -9
- package/lib/specConverter.js +12 -20
- package/lib/specConverter.js.map +1 -1
- package/lib/specDiff.d.ts +4 -4
- package/lib/specDiff.js +4 -8
- package/lib/specDiff.js.map +1 -1
- package/lib/swift.gen.js +2 -2
- package/lib/swift.gen.js.map +1 -1
- package/lib/testUtils/index.js.map +1 -1
- package/lib/testUtils/testUtils.js +4 -6
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/typescript.gen.js +4 -4
- package/lib/typescript.gen.js.map +1 -1
- package/package.json +6 -6
package/lib/esm/csharp.gen.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.CSharpGen = void 0;
|
|
7
|
-
var _codeGen = require("./codeGen");
|
|
8
|
-
var _sdkModels = require("./sdkModels");
|
|
9
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
function _toPropertyKey(
|
|
11
|
-
function _toPrimitive(
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import { CodeGen, commentBlock } from './codeGen';
|
|
5
|
+
import { EnumType, describeParam, firstCase, strBody } from './sdkModels';
|
|
12
6
|
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']);
|
|
13
|
-
class CSharpGen extends
|
|
7
|
+
export class CSharpGen extends CodeGen {
|
|
14
8
|
constructor() {
|
|
15
9
|
super(...arguments);
|
|
16
10
|
_defineProperty(this, "codePath", './csharp');
|
|
@@ -31,7 +25,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
31
25
|
}
|
|
32
26
|
commentHeader(indent, text) {
|
|
33
27
|
if (this.noComment) return '';
|
|
34
|
-
return text ? "".concat(
|
|
28
|
+
return text ? "".concat(commentBlock(text, indent, '/// '), "\n") : '';
|
|
35
29
|
}
|
|
36
30
|
modelsPrologue(_indent) {
|
|
37
31
|
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".concat(this.commentHeader('', this.warnEditing()), "\nnamespace Looker.SDK.API").concat(this.apiRef, "\n{\n\n");
|
|
@@ -52,7 +46,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
52
46
|
return name;
|
|
53
47
|
}
|
|
54
48
|
declareParameter(indent, method, param) {
|
|
55
|
-
var type = param.location ===
|
|
49
|
+
var type = param.location === strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
56
50
|
var mapped = this.typeMap(type);
|
|
57
51
|
var arg = this.reserve(param.name);
|
|
58
52
|
var pOpt = param.required ? '' : '?';
|
|
@@ -73,7 +67,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
73
67
|
}
|
|
74
68
|
var arg = this.reserve(property.name);
|
|
75
69
|
var pOpt = property.required ? '' : '?';
|
|
76
|
-
var attr = property.type instanceof
|
|
70
|
+
var attr = property.type instanceof EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
|
|
77
71
|
if (property.hasSpecialNeeds) {
|
|
78
72
|
attr += "".concat(indent, "[JsonProperty(\"").concat(property.jsonName, "\")]\n");
|
|
79
73
|
}
|
|
@@ -158,7 +152,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
158
152
|
var args = this.httpArgs(bump, method);
|
|
159
153
|
var dollah = method.pathArgs.length ? '$' : '';
|
|
160
154
|
var bits = this.genericBits(method);
|
|
161
|
-
var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat(
|
|
155
|
+
var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat(firstCase(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
|
|
162
156
|
return "".concat(indent, "return await ").concat(fragment, ";");
|
|
163
157
|
}
|
|
164
158
|
encodePathParams(indent, method) {
|
|
@@ -179,7 +173,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
179
173
|
return this.commentHeader(indent, "<summary>".concat(nl).concat(summary).concat(nl, "</summary>"));
|
|
180
174
|
}
|
|
181
175
|
paramComment(param) {
|
|
182
|
-
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(
|
|
176
|
+
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(describeParam(param), "</param>") : '';
|
|
183
177
|
}
|
|
184
178
|
returnComment(method) {
|
|
185
179
|
var type = method.returnType;
|
|
@@ -199,7 +193,7 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
199
193
|
return "".concat(indent, "[EnumMember(Value = \"").concat(value, "\")]\n").concat(indent).concat(this.reserve(value.toString()));
|
|
200
194
|
}
|
|
201
195
|
typeSignature(indent, type) {
|
|
202
|
-
var isEnum = type instanceof
|
|
196
|
+
var isEnum = type instanceof EnumType;
|
|
203
197
|
var kind = isEnum ? 'enum' : 'class';
|
|
204
198
|
var parent = isEnum ? '' : ' : SdkModel';
|
|
205
199
|
return this.commentHeader(indent, type.description) + "".concat(indent, "public ").concat(kind, " ").concat(this.reserve(type.name)).concat(parent, "\n{\n");
|
|
@@ -334,5 +328,4 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
334
328
|
}
|
|
335
329
|
}
|
|
336
330
|
}
|
|
337
|
-
exports.CSharpGen = CSharpGen;
|
|
338
331
|
//# sourceMappingURL=csharp.gen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.gen.js","names":["_codeGen","require","_sdkModels","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","reservedWords","Set","CSharpGen","CodeGen","constructor","arguments","commentHeader","indent","text","noComment","concat","commentBlock","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","_method$description","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","length","bump","indentStr","args","allParams","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","firstCase","encodings","pathParams","doEncode","nl","describeParam","mediaType","desc","okResponses","r","lines","declareEnumValue","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","exports"],"sources":["../../src/csharp.gen.ts"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csharp.gen.js","names":["CodeGen","commentBlock","EnumType","describeParam","firstCase","strBody","reservedWords","Set","CSharpGen","constructor","arguments","_defineProperty","commentHeader","indent","text","noComment","concat","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","_method$description","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","length","undefined","bump","indentStr","args","allParams","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"],"sources":["../../src/csharp.gen.ts"],"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 Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, firstCase, strBody } 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(\n indent,\n `<summary>${nl}${summary}${nl}</summary>`\n );\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"],"mappings":"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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.findDeclaration = void 0;
|
|
7
|
-
var _exampleInfo = require("./exampleInfo");
|
|
8
|
-
var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
9
|
-
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _exampleInfo.permaLink;
|
|
1
|
+
import { permaLink } from './exampleInfo';
|
|
2
|
+
export var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
3
|
+
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : permaLink;
|
|
10
4
|
var declaration;
|
|
11
5
|
if (methodId) {
|
|
12
6
|
declaration = lode.methods[methodId];
|
|
@@ -22,5 +16,4 @@ var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
|
22
16
|
link
|
|
23
17
|
};
|
|
24
18
|
};
|
|
25
|
-
exports.findDeclaration = findDeclaration;
|
|
26
19
|
//# sourceMappingURL=declarationInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarationInfo.js","names":["
|
|
1
|
+
{"version":3,"file":"declarationInfo.js","names":["permaLink","findDeclaration","lode","methodId","typeId","sourcerer","arguments","length","undefined","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"sources":["../../src/declarationInfo.ts"],"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 { IFileCall, IMine, 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"],"mappings":"AA0BA,SAASA,SAAS,QAAQ,eAAe;AAqBzC,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,IAAsB,EACtBC,QAAiB,EACjBC,MAAe,EAEZ;EAAA,IADHC,SAAqB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGN,SAAS;EAEjC,IAAIS,WAAW;EACf,IAAIN,QAAQ,EAAE;IACZM,WAAW,GAAGP,IAAI,CAACQ,OAAO,CAACP,QAAQ,CAAC;EACtC,CAAC,MAAM,IAAIC,MAAM,EAAE;IACjBK,WAAW,GAAGP,IAAI,CAACS,KAAK,CAACP,MAAM,CAAC;EAClC;EAEA,IAAIQ,IAAI;EACR,IAAIH,WAAW,EAAE;IACfG,IAAI,GAAGP,SAAS,CACdH,IAAI,CAACW,YAAY,EACjBX,IAAI,CAACY,UAAU,EACfL,WAAW,CAACM,UAAU,EACtBN,WAAW,CAACO,IACd,CAAC;EAEH;EACA,OAAO;IAAEP,WAAW;IAAEG;EAAK,CAAC;AAC9B,CAAC"}
|
package/lib/esm/exampleInfo.js
CHANGED
|
@@ -1,26 +1,16 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.summarize = exports.permaLink = exports.ideLink = exports.getLanguageExtensions = exports.findExamples = exports.findExampleLanguages = exports.extensionToLanguage = exports.exampleLink = exports.codeSearchLink = void 0;
|
|
7
|
-
var permaLink = (remote, hash, fileName, line) => "".concat(remote, "/blob/").concat(hash, "/").concat(fileName, "#L").concat(line);
|
|
8
|
-
exports.permaLink = permaLink;
|
|
9
|
-
var codeSearchLink = (remote, hash, fileName, line) => "".concat(remote, "/").concat(fileName, "?l=").concat(line, "&rcl=").concat(hash);
|
|
10
|
-
exports.codeSearchLink = codeSearchLink;
|
|
11
|
-
var ideLink = (parentPath, fileName, line) => {
|
|
1
|
+
export var permaLink = (remote, hash, fileName, line) => "".concat(remote, "/blob/").concat(hash, "/").concat(fileName, "#L").concat(line);
|
|
2
|
+
export var codeSearchLink = (remote, hash, fileName, line) => "".concat(remote, "/").concat(fileName, "?l=").concat(line, "&rcl=").concat(hash);
|
|
3
|
+
export var ideLink = (parentPath, fileName, line) => {
|
|
12
4
|
var vscode = 'vscode://';
|
|
13
5
|
return "".concat(vscode).concat(parentPath, "/").concat(fileName, ":L:").concat(line);
|
|
14
6
|
};
|
|
15
|
-
|
|
16
|
-
var summarize = (lode, call) => {
|
|
7
|
+
export var summarize = (lode, call) => {
|
|
17
8
|
if (call.sourceFile in lode.summaries) {
|
|
18
9
|
return lode.summaries[call.sourceFile].summary;
|
|
19
10
|
}
|
|
20
11
|
return call.sourceFile;
|
|
21
12
|
};
|
|
22
|
-
|
|
23
|
-
var exampleLink = (lode, call) => {
|
|
13
|
+
export var exampleLink = (lode, call) => {
|
|
24
14
|
var link = permaLink(lode.remoteOrigin, lode.commitHash, call.sourceFile, call.line);
|
|
25
15
|
return {
|
|
26
16
|
permalink: link,
|
|
@@ -29,8 +19,7 @@ var exampleLink = (lode, call) => {
|
|
|
29
19
|
lineNumber: call.line.toString()
|
|
30
20
|
};
|
|
31
21
|
};
|
|
32
|
-
|
|
33
|
-
var extensionToLanguage = {
|
|
22
|
+
export var extensionToLanguage = {
|
|
34
23
|
'.py': 'Python',
|
|
35
24
|
'.ts': 'TypeScript',
|
|
36
25
|
'.tsx': 'TypeScript',
|
|
@@ -43,8 +32,7 @@ var extensionToLanguage = {
|
|
|
43
32
|
'.md': 'Markdown',
|
|
44
33
|
'.java': 'Java'
|
|
45
34
|
};
|
|
46
|
-
|
|
47
|
-
var getLanguageExtensions = language => {
|
|
35
|
+
export var getLanguageExtensions = language => {
|
|
48
36
|
switch (language.toLowerCase()) {
|
|
49
37
|
case 'ts':
|
|
50
38
|
case 'typescript':
|
|
@@ -70,8 +58,7 @@ var getLanguageExtensions = language => {
|
|
|
70
58
|
return [];
|
|
71
59
|
}
|
|
72
60
|
};
|
|
73
|
-
|
|
74
|
-
var findExampleLanguages = (lode, methodName) => {
|
|
61
|
+
export var findExampleLanguages = (lode, methodName) => {
|
|
75
62
|
var all = lode.nuggets[methodName];
|
|
76
63
|
if (!all) return [];
|
|
77
64
|
var result = new Set();
|
|
@@ -81,8 +68,7 @@ var findExampleLanguages = (lode, methodName) => {
|
|
|
81
68
|
});
|
|
82
69
|
return Array.from(result);
|
|
83
70
|
};
|
|
84
|
-
|
|
85
|
-
var findExamples = (lode, language, operationId) => {
|
|
71
|
+
export var findExamples = (lode, language, operationId) => {
|
|
86
72
|
var all = lode.nuggets[operationId];
|
|
87
73
|
var exts = getLanguageExtensions(language);
|
|
88
74
|
var links = [];
|
|
@@ -101,5 +87,4 @@ var findExamples = (lode, language, operationId) => {
|
|
|
101
87
|
}
|
|
102
88
|
return links.sort((a, b) => a.permalink.localeCompare(b.permalink));
|
|
103
89
|
};
|
|
104
|
-
exports.findExamples = findExamples;
|
|
105
90
|
//# sourceMappingURL=exampleInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exampleInfo.js","names":["permaLink","remote","hash","fileName","line","concat","exports","codeSearchLink","ideLink","parentPath","vscode","summarize","lode","call","sourceFile","summaries","summary","exampleLink","link","remoteOrigin","commitHash","permalink","description","tooltip","lineNumber","toString","extensionToLanguage","getLanguageExtensions","language","toLowerCase","findExampleLanguages","methodName","all","nuggets","result","Set","keys","Object","forEach","key","calls","add","Array","from","findExamples","operationId","exts","links","length","ext","push","sort","a","b","localeCompare"],"sources":["../../src/exampleInfo.ts"],"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 { KeyedCollection } from './sdkModels'\n\nexport interface ISDKCall {\n /** SDK variable name for the call found */\n sdk: string\n\n /** Name of the method/operationId */\n operationId: string\n\n /** Source code line number */\n line: number\n\n /** Source code column number where method name was found */\n column: number\n}\n\nexport interface IExampleLink {\n /** Either summary from .md documentation or the name of the source file */\n description: string\n /** permalink to file and line number */\n permalink: string\n /** text to show on hover */\n tooltip: string\n /** line number text */\n lineNumber: string\n}\n\nexport type SDKCalls = ISDKCall[]\n\nexport interface ISummary {\n /** relative file name */\n sourceFile: string\n /** summary extracted from md, rst, or other doc file */\n summary: string\n}\n\nexport type Summaries = KeyedCollection<ISummary>\n\nexport interface IFileCall {\n /** relative file name */\n sourceFile: string\n /** line number for source code call */\n line: number\n /** Optional column number for source code call. Maybe we don't need this datum */\n column?: number\n}\n\n/**\n { \"me\": {\n \".ts\": {\n [\n {\n \"hash\": \"TODO\",\n \"sourceFile\": \"foo.ts\",\n \"line\": 1,\n \"column\": 5,\n }\n ]\n }\n }\n}\n */\n\nexport type FileCalls = IFileCall[]\n\nexport type LanguageCalls = KeyedCollection<FileCalls>\n\nexport interface INugget {\n operationId: string\n calls: LanguageCalls\n}\n\nexport type Nuggets = KeyedCollection<INugget>\n\nexport interface IMine {\n commitHash: string\n remoteOrigin: string\n}\n\n/** All mined example data */\nexport interface IExampleMine extends IMine {\n summaries: Summaries\n nuggets: Nuggets\n}\n\n/** function type for formatting source code links */\nexport type SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => string\n\n/**\n * Create a permalink for a github file with line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const permaLink: SourceLink = (\n // https://github.com/looker-open-source/sdk-codegen/blob/bfca52d2c8ba85018f76548158fd1dd90aa1f64a/examples/typescript/customConfigReader.ts#L53\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/blob/${hash}/${fileName}#L${line}`\n\n/**\n * Create a permalink for a code search with commit hash and line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const codeSearchLink: SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/${fileName}?l=${line}&rcl=${hash}`\n\n/**\n * Create an IDE file link with line number\n * @param parentPath to fully qualify the source file\n * @param fileName full name of file\n * @param line line number in file\n */\nexport const ideLink = (\n // https://plugins.jetbrains.com/plugin/6027-remote-call\n // https://github.com/microsoft/vscode/issues/4883#issuecomment-270141535\n // pattern:\n parentPath: string,\n fileName: string,\n line: number\n) => {\n // const idea = 'http//localhost:8091'\n const vscode = 'vscode://'\n\n return `${vscode}${parentPath}/${fileName}:L:${line}`\n}\n\n/**\n * Gets the summary for an example file, or defaults to the file and line number\n * @param lode all mined example data\n * @param call specific call to summarize\n */\nexport const summarize = (lode: IExampleMine, call: IFileCall): string => {\n if (call.sourceFile in lode.summaries) {\n return lode.summaries[call.sourceFile].summary\n }\n // Default to file name if no summary is found\n return call.sourceFile\n}\n\n/**\n * Provides permalink and description for an example file call\n * @param lode all mined example data\n * @param call specific all to link\n */\nexport const exampleLink = (\n lode: IExampleMine,\n call: IFileCall\n): IExampleLink => {\n const link = permaLink(\n lode.remoteOrigin,\n lode.commitHash,\n call.sourceFile,\n call.line\n )\n\n return {\n permalink: link,\n description: summarize(lode, call),\n tooltip: `${call.sourceFile} line ${call.line}`,\n lineNumber: call.line.toString(),\n }\n}\n\n// TODO create one data set for extensionToLanguage and getLanguageExtensions\n/** map file extension to language name */\nexport const extensionToLanguage = {\n '.py': 'Python',\n '.ts': 'TypeScript',\n '.tsx': 'TypeScript',\n '.cs': 'C#',\n '.kt': 'Kotlin',\n '.swift': 'Swift',\n '.rb': 'Ruby',\n '.dart': 'Dart',\n '.go': 'Go',\n '.md': 'Markdown',\n '.java': 'Java',\n}\n\n/**\n * Return the recognized file extensions for the requested language\n * @param language\n */\nexport const getLanguageExtensions = (language: string): string[] => {\n switch (language.toLowerCase()) {\n case 'ts':\n case 'typescript':\n return ['.ts', 'tsx']\n case 'csharp':\n case 'c#':\n return ['.cs']\n case 'ruby':\n return ['.rb']\n case 'python':\n return ['.py']\n case 'swift':\n return ['.swift']\n case 'kotlin':\n return ['.kt']\n case 'dart':\n return ['.dart']\n case 'go':\n return ['.go']\n case 'java':\n return ['.java']\n default:\n return []\n }\n}\n\nexport const findExampleLanguages = (\n lode: IExampleMine,\n methodName: string\n) => {\n const all = lode.nuggets[methodName]\n if (!all) return []\n const result = new Set<string>()\n const keys = Object.keys(extensionToLanguage)\n keys.forEach((key) => {\n if (all.calls[key]) result.add(extensionToLanguage[key])\n })\n return Array.from(result)\n}\n\n/**\n * Searches for examples containing operationId usages in the given language\n * @param lode All example data\n * @param language Language example should be in\n * @param operationId Method's operationId to search for\n */\nexport const findExamples = (\n lode: IExampleMine,\n language: string,\n operationId: string\n): IExampleLink[] => {\n const all = lode.nuggets[operationId]\n const exts = getLanguageExtensions(language)\n const links: IExampleLink[] = []\n\n if (all && exts.length > 0) {\n exts.forEach((ext) => {\n const calls = all.calls[ext]\n if (calls) {\n calls.forEach((call: IFileCall) => {\n const link = exampleLink(lode, call)\n if (link) {\n links.push(exampleLink(lode, call))\n }\n })\n }\n })\n }\n return links.sort((a, b) => a.permalink.localeCompare(b.permalink))\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exampleInfo.js","names":["permaLink","remote","hash","fileName","line","concat","codeSearchLink","ideLink","parentPath","vscode","summarize","lode","call","sourceFile","summaries","summary","exampleLink","link","remoteOrigin","commitHash","permalink","description","tooltip","lineNumber","toString","extensionToLanguage","getLanguageExtensions","language","toLowerCase","findExampleLanguages","methodName","all","nuggets","result","Set","keys","Object","forEach","key","calls","add","Array","from","findExamples","operationId","exts","links","length","ext","push","sort","a","b","localeCompare"],"sources":["../../src/exampleInfo.ts"],"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 { KeyedCollection } from './sdkModels';\n\nexport interface ISDKCall {\n /** SDK variable name for the call found */\n sdk: string;\n\n /** Name of the method/operationId */\n operationId: string;\n\n /** Source code line number */\n line: number;\n\n /** Source code column number where method name was found */\n column: number;\n}\n\nexport interface IExampleLink {\n /** Either summary from .md documentation or the name of the source file */\n description: string;\n /** permalink to file and line number */\n permalink: string;\n /** text to show on hover */\n tooltip: string;\n /** line number text */\n lineNumber: string;\n}\n\nexport type SDKCalls = ISDKCall[];\n\nexport interface ISummary {\n /** relative file name */\n sourceFile: string;\n /** summary extracted from md, rst, or other doc file */\n summary: string;\n}\n\nexport type Summaries = KeyedCollection<ISummary>;\n\nexport interface IFileCall {\n /** relative file name */\n sourceFile: string;\n /** line number for source code call */\n line: number;\n /** Optional column number for source code call. Maybe we don't need this datum */\n column?: number;\n}\n\n/**\n { \"me\": {\n \".ts\": {\n [\n {\n \"hash\": \"TODO\",\n \"sourceFile\": \"foo.ts\",\n \"line\": 1,\n \"column\": 5,\n }\n ]\n }\n }\n}\n */\n\nexport type FileCalls = IFileCall[];\n\nexport type LanguageCalls = KeyedCollection<FileCalls>;\n\nexport interface INugget {\n operationId: string;\n calls: LanguageCalls;\n}\n\nexport type Nuggets = KeyedCollection<INugget>;\n\nexport interface IMine {\n commitHash: string;\n remoteOrigin: string;\n}\n\n/** All mined example data */\nexport interface IExampleMine extends IMine {\n summaries: Summaries;\n nuggets: Nuggets;\n}\n\n/** function type for formatting source code links */\nexport type SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => string;\n\n/**\n * Create a permalink for a github file with line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const permaLink: SourceLink = (\n // https://github.com/looker-open-source/sdk-codegen/blob/bfca52d2c8ba85018f76548158fd1dd90aa1f64a/examples/typescript/customConfigReader.ts#L53\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/blob/${hash}/${fileName}#L${line}`;\n\n/**\n * Create a permalink for a code search with commit hash and line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const codeSearchLink: SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/${fileName}?l=${line}&rcl=${hash}`;\n\n/**\n * Create an IDE file link with line number\n * @param parentPath to fully qualify the source file\n * @param fileName full name of file\n * @param line line number in file\n */\nexport const ideLink = (\n // https://plugins.jetbrains.com/plugin/6027-remote-call\n // https://github.com/microsoft/vscode/issues/4883#issuecomment-270141535\n // pattern:\n parentPath: string,\n fileName: string,\n line: number\n) => {\n // const idea = 'http//localhost:8091'\n const vscode = 'vscode://';\n\n return `${vscode}${parentPath}/${fileName}:L:${line}`;\n};\n\n/**\n * Gets the summary for an example file, or defaults to the file and line number\n * @param lode all mined example data\n * @param call specific call to summarize\n */\nexport const summarize = (lode: IExampleMine, call: IFileCall): string => {\n if (call.sourceFile in lode.summaries) {\n return lode.summaries[call.sourceFile].summary;\n }\n // Default to file name if no summary is found\n return call.sourceFile;\n};\n\n/**\n * Provides permalink and description for an example file call\n * @param lode all mined example data\n * @param call specific all to link\n */\nexport const exampleLink = (\n lode: IExampleMine,\n call: IFileCall\n): IExampleLink => {\n const link = permaLink(\n lode.remoteOrigin,\n lode.commitHash,\n call.sourceFile,\n call.line\n );\n\n return {\n permalink: link,\n description: summarize(lode, call),\n tooltip: `${call.sourceFile} line ${call.line}`,\n lineNumber: call.line.toString(),\n };\n};\n\n// TODO create one data set for extensionToLanguage and getLanguageExtensions\n/** map file extension to language name */\nexport const extensionToLanguage = {\n '.py': 'Python',\n '.ts': 'TypeScript',\n '.tsx': 'TypeScript',\n '.cs': 'C#',\n '.kt': 'Kotlin',\n '.swift': 'Swift',\n '.rb': 'Ruby',\n '.dart': 'Dart',\n '.go': 'Go',\n '.md': 'Markdown',\n '.java': 'Java',\n};\n\n/**\n * Return the recognized file extensions for the requested language\n * @param language\n */\nexport const getLanguageExtensions = (language: string): string[] => {\n switch (language.toLowerCase()) {\n case 'ts':\n case 'typescript':\n return ['.ts', 'tsx'];\n case 'csharp':\n case 'c#':\n return ['.cs'];\n case 'ruby':\n return ['.rb'];\n case 'python':\n return ['.py'];\n case 'swift':\n return ['.swift'];\n case 'kotlin':\n return ['.kt'];\n case 'dart':\n return ['.dart'];\n case 'go':\n return ['.go'];\n case 'java':\n return ['.java'];\n default:\n return [];\n }\n};\n\nexport const findExampleLanguages = (\n lode: IExampleMine,\n methodName: string\n) => {\n const all = lode.nuggets[methodName];\n if (!all) return [];\n const result = new Set<string>();\n const keys = Object.keys(extensionToLanguage);\n keys.forEach((key) => {\n if (all.calls[key]) result.add((extensionToLanguage as any)[key]);\n });\n return Array.from(result);\n};\n\n/**\n * Searches for examples containing operationId usages in the given language\n * @param lode All example data\n * @param language Language example should be in\n * @param operationId Method's operationId to search for\n */\nexport const findExamples = (\n lode: IExampleMine,\n language: string,\n operationId: string\n): IExampleLink[] => {\n const all = lode.nuggets[operationId];\n const exts = getLanguageExtensions(language);\n const links: IExampleLink[] = [];\n\n if (all && exts.length > 0) {\n exts.forEach((ext) => {\n const calls = all.calls[ext];\n if (calls) {\n calls.forEach((call: IFileCall) => {\n const link = exampleLink(lode, call);\n if (link) {\n links.push(exampleLink(lode, call));\n }\n });\n }\n });\n }\n return links.sort((a, b) => a.permalink.localeCompare(b.permalink));\n};\n"],"mappings":"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"}
|
package/lib/esm/go.gen.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.GoGen = void 0;
|
|
7
|
-
var _codeGen = require("./codeGen");
|
|
8
|
-
var _sdkModels = require("./sdkModels");
|
|
9
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
function _toPropertyKey(
|
|
11
|
-
function _toPrimitive(
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import { CodeGen, commentBlock } from './codeGen';
|
|
5
|
+
import { EnumType, strBody } from './sdkModels';
|
|
12
6
|
var align = (str, size) => {
|
|
13
7
|
var num = size - str.length + 1;
|
|
14
8
|
return str + ' '.repeat(num);
|
|
@@ -39,7 +33,7 @@ class AlignColumnWriter {
|
|
|
39
33
|
return result;
|
|
40
34
|
}
|
|
41
35
|
}
|
|
42
|
-
class GoGen extends
|
|
36
|
+
export class GoGen extends CodeGen {
|
|
43
37
|
constructor(api, versions) {
|
|
44
38
|
super(api, versions);
|
|
45
39
|
this.api = api;
|
|
@@ -70,11 +64,11 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
70
64
|
}
|
|
71
65
|
commentHeader(indent, text) {
|
|
72
66
|
if (this.noComment) return '';
|
|
73
|
-
return text ? "".concat(indent, "/*\n\n").concat(
|
|
67
|
+
return text ? "".concat(indent, "/*\n\n").concat(commentBlock(text, indent, ''), "\n").concat(indent, "*/\n") : '';
|
|
74
68
|
}
|
|
75
69
|
comment(indent, description) {
|
|
76
70
|
if (this.noComment) return '';
|
|
77
|
-
return
|
|
71
|
+
return commentBlock(description, indent, this.commentStr);
|
|
78
72
|
}
|
|
79
73
|
sdkFileName(baseFileName) {
|
|
80
74
|
return this.fileName("".concat(this.sdkPath, "/").concat(this.packageName, "/").concat(baseFileName));
|
|
@@ -117,10 +111,10 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
117
111
|
return this.methodSignature(indent, method) + this.encodePathParams(bump, method) + this.httpCall(bump, method) + "\n}";
|
|
118
112
|
}
|
|
119
113
|
declareParameter(indent, method, param) {
|
|
120
|
-
var type = param.location ===
|
|
114
|
+
var type = param.location === strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
121
115
|
var mapped = this.typeMap(type);
|
|
122
116
|
var pOpt = '';
|
|
123
|
-
if (param.location ===
|
|
117
|
+
if (param.location === strBody) {
|
|
124
118
|
mapped.name = "".concat(mapped.name);
|
|
125
119
|
}
|
|
126
120
|
if (!param.required) {
|
|
@@ -193,7 +187,7 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
193
187
|
return '';
|
|
194
188
|
}
|
|
195
189
|
methodsPrologue(_indent) {
|
|
196
|
-
return "\n// ".concat(this.warnEditing(), "\n\npackage ").concat(this.packageName, "\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype
|
|
190
|
+
return "\n// ".concat(this.warnEditing(), "\n\npackage ").concat(this.packageName, "\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype authSessionDoer interface {\n Do(result interface{}, method, ver, path string, reqPars map[string]interface{}, body interface{}, options *rtl.ApiSettings) error\n}\n\ntype LookerSDK struct {\n session authSessionDoer\n}\n\nfunc NewLookerSDK(session authSessionDoer) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n");
|
|
197
191
|
}
|
|
198
192
|
modelsPrologue(_indent) {
|
|
199
193
|
var goImport = "\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)";
|
|
@@ -329,7 +323,7 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
329
323
|
var bump = this.bumper(indent);
|
|
330
324
|
var writer = new AlignColumnWriter();
|
|
331
325
|
try {
|
|
332
|
-
if (type instanceof
|
|
326
|
+
if (type instanceof EnumType) {
|
|
333
327
|
var props = [];
|
|
334
328
|
var propertyValues = '';
|
|
335
329
|
var num = type;
|
|
@@ -379,5 +373,4 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
379
373
|
return str.replace(/([-_][a-z])/g, group => group.toUpperCase().replace('-', '').replace('_', ''));
|
|
380
374
|
}
|
|
381
375
|
}
|
|
382
|
-
exports.GoGen = GoGen;
|
|
383
376
|
//# sourceMappingURL=go.gen.js.map
|