@looker/sdk-codegen 21.7.3 → 21.8.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 +23 -0
- package/lib/codeGen.d.ts +1 -1
- package/lib/codeGen.js +28 -154
- package/lib/codeGen.js.map +1 -1
- package/lib/codeGenerators.js +0 -16
- package/lib/codeGenerators.js.map +1 -1
- package/lib/csharp.gen.js +3 -71
- package/lib/csharp.gen.js.map +1 -1
- package/lib/declarationInfo.js +0 -7
- package/lib/declarationInfo.js.map +1 -1
- package/lib/esm/codeGen.js +48 -157
- package/lib/esm/codeGen.js.map +1 -1
- package/lib/esm/codeGenerators.js +28 -20
- package/lib/esm/codeGenerators.js.map +1 -1
- package/lib/esm/csharp.gen.js +19 -75
- package/lib/esm/csharp.gen.js.map +1 -1
- package/lib/esm/declarationInfo.js +10 -7
- package/lib/esm/declarationInfo.js.map +1 -1
- package/lib/esm/exampleInfo.js +24 -23
- package/lib/esm/exampleInfo.js.map +1 -1
- package/lib/esm/go.gen.js +18 -92
- package/lib/esm/go.gen.js.map +1 -1
- package/lib/esm/index.js +148 -13
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/kotlin.gen.js +23 -118
- package/lib/esm/kotlin.gen.js.map +1 -1
- package/lib/esm/pseudo.gen.js +14 -24
- package/lib/esm/pseudo.gen.js.map +1 -1
- package/lib/esm/python.gen.js +19 -138
- package/lib/esm/python.gen.js.map +1 -1
- package/lib/esm/sdkModels.js +100 -432
- package/lib/esm/sdkModels.js.map +1 -1
- package/lib/esm/specConverter.js +58 -88
- package/lib/esm/specConverter.js.map +1 -1
- package/lib/esm/specDiff.js +36 -51
- package/lib/esm/specDiff.js.map +1 -1
- package/lib/esm/swift.gen.js +25 -137
- package/lib/esm/swift.gen.js.map +1 -1
- package/lib/esm/testUtils/index.js +17 -0
- package/lib/esm/testUtils/index.js.map +1 -0
- package/lib/esm/testUtils/testUtils.js +66 -0
- package/lib/esm/testUtils/testUtils.js.map +1 -0
- package/lib/esm/typescript.gen.js +24 -125
- package/lib/esm/typescript.gen.js.map +1 -1
- package/lib/exampleInfo.js +1 -31
- package/lib/exampleInfo.js.map +1 -1
- package/lib/go.gen.js +3 -87
- package/lib/go.gen.js.map +1 -1
- package/lib/index.js +0 -26
- package/lib/index.js.map +1 -1
- package/lib/kotlin.gen.js +7 -113
- package/lib/kotlin.gen.js.map +1 -1
- package/lib/pseudo.gen.js +3 -24
- package/lib/pseudo.gen.js.map +1 -1
- package/lib/python.gen.js +3 -133
- package/lib/python.gen.js.map +1 -1
- package/lib/sdkModels.js +8 -438
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.js +6 -106
- package/lib/specConverter.js.map +1 -1
- package/lib/specDiff.js +1 -56
- package/lib/specDiff.js.map +1 -1
- package/lib/swift.gen.js +3 -128
- package/lib/swift.gen.js.map +1 -1
- package/lib/testUtils/index.js +0 -2
- package/lib/testUtils/index.js.map +1 -1
- package/lib/testUtils/testUtils.js +1 -17
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/typescript.gen.js +5 -117
- package/lib/typescript.gen.js.map +1 -1
- package/package.json +3 -3
package/lib/esm/csharp.gen.js
CHANGED
|
@@ -1,85 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
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(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
11
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
5
12
|
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
|
-
|
|
13
|
+
class CSharpGen extends _codeGen.CodeGen {
|
|
7
14
|
constructor() {
|
|
8
15
|
super(...arguments);
|
|
9
|
-
|
|
10
16
|
_defineProperty(this, "codePath", './csharp');
|
|
11
|
-
|
|
12
17
|
_defineProperty(this, "packagePath", '');
|
|
13
|
-
|
|
14
18
|
_defineProperty(this, "itself", 'this');
|
|
15
|
-
|
|
16
19
|
_defineProperty(this, "fileExtension", '.cs');
|
|
17
|
-
|
|
18
20
|
_defineProperty(this, "commentStr", '// ');
|
|
19
|
-
|
|
20
21
|
_defineProperty(this, "nullStr", 'null');
|
|
21
|
-
|
|
22
22
|
_defineProperty(this, "transport", 'Transport');
|
|
23
|
-
|
|
24
23
|
_defineProperty(this, "argDelimiter", ',');
|
|
25
|
-
|
|
26
24
|
_defineProperty(this, "paramDelimiter", ',\n');
|
|
27
|
-
|
|
28
25
|
_defineProperty(this, "propDelimiter", '\n');
|
|
29
|
-
|
|
30
26
|
_defineProperty(this, "indentStr", ' ');
|
|
31
|
-
|
|
32
27
|
_defineProperty(this, "endTypeStr", '\n}');
|
|
33
|
-
|
|
34
28
|
_defineProperty(this, "needsRequestTypes", false);
|
|
35
|
-
|
|
36
29
|
_defineProperty(this, "willItStream", false);
|
|
37
|
-
|
|
38
30
|
_defineProperty(this, "codeQuote", '"');
|
|
39
31
|
}
|
|
40
|
-
|
|
41
32
|
commentHeader(indent, text) {
|
|
42
33
|
if (this.noComment) return '';
|
|
43
|
-
return text ? "".concat(commentBlock(text, indent, '/// '), "\n") : '';
|
|
34
|
+
return text ? "".concat((0, _codeGen.commentBlock)(text, indent, '/// '), "\n") : '';
|
|
44
35
|
}
|
|
45
|
-
|
|
46
36
|
modelsPrologue(_indent) {
|
|
47
37
|
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");
|
|
48
38
|
}
|
|
49
|
-
|
|
50
39
|
modelsEpilogue(_indent) {
|
|
51
40
|
return '\n}';
|
|
52
41
|
}
|
|
53
|
-
|
|
54
42
|
methodsPrologue(_indent) {
|
|
55
43
|
return "#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n".concat(this.commentHeader('', this.warnEditing()), "\nnamespace Looker.SDK.API").concat(this.apiRef, "\n{\n\n public class ").concat(this.packageName, ": ApiMethods\n {\n public ").concat(this.packageName, "(IAuthSession authSession): base(authSession, \"").concat(this.apiVersion, "\") { }\n");
|
|
56
44
|
}
|
|
57
|
-
|
|
58
45
|
methodsEpilogue(indent) {
|
|
59
46
|
return "".concat(indent, "}\n}\n");
|
|
60
47
|
}
|
|
61
|
-
|
|
62
48
|
reserve(name) {
|
|
63
49
|
if (reservedWords.has(name)) {
|
|
64
50
|
return '@' + name;
|
|
65
51
|
}
|
|
66
|
-
|
|
67
52
|
return name;
|
|
68
53
|
}
|
|
69
|
-
|
|
70
54
|
declareParameter(indent, method, param) {
|
|
71
|
-
var type = param.location === strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
55
|
+
var type = param.location === _sdkModels.strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
72
56
|
var mapped = this.typeMap(type);
|
|
73
57
|
var arg = this.reserve(param.name);
|
|
74
58
|
var pOpt = param.required ? '' : '?';
|
|
75
59
|
var defaulting = param.required ? '' : mapped.optional ? " = ".concat(mapped.optional) : '';
|
|
76
60
|
return "".concat(indent).concat(mapped.name).concat(pOpt, " ").concat(arg).concat(defaulting);
|
|
77
61
|
}
|
|
78
|
-
|
|
79
62
|
declareProperty(indent, property) {
|
|
80
63
|
var type = this.typeMap(property.type);
|
|
81
64
|
var getset = '{ get; set; }';
|
|
82
|
-
|
|
83
65
|
if (property.required) {
|
|
84
66
|
if (type.default) {
|
|
85
67
|
getset += " = ".concat(type.default, ";");
|
|
@@ -89,42 +71,33 @@ export class CSharpGen extends CodeGen {
|
|
|
89
71
|
getset += " = ".concat(type.optional, ";");
|
|
90
72
|
}
|
|
91
73
|
}
|
|
92
|
-
|
|
93
74
|
var arg = this.reserve(property.name);
|
|
94
75
|
var pOpt = property.required ? '' : '?';
|
|
95
|
-
var attr = property.type instanceof EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
|
|
96
|
-
|
|
76
|
+
var attr = property.type instanceof _sdkModels.EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
|
|
97
77
|
if (property.hasSpecialNeeds) {
|
|
98
78
|
attr += "".concat(indent, "[JsonProperty(\"").concat(property.jsonName, "\")]\n");
|
|
99
79
|
}
|
|
100
|
-
|
|
101
80
|
return this.summary(indent, this.describeProperty(property)) + attr + "".concat(indent, "public ").concat(type.name).concat(pOpt, " ").concat(arg, " ").concat(getset);
|
|
102
81
|
}
|
|
103
|
-
|
|
104
82
|
methodHeader(indent, method) {
|
|
105
83
|
var _method$description;
|
|
106
|
-
|
|
107
84
|
var type = this.typeMap(method.type);
|
|
108
85
|
var head = (_method$description = method.description) === null || _method$description === void 0 ? void 0 : _method$description.trim();
|
|
109
86
|
var headComment = (head ? "".concat(head, "\n\n") : '') + "".concat(method.httpMethod, " ").concat(method.endpoint, " -> ").concat(type.name);
|
|
110
|
-
|
|
111
87
|
if (method.responseIsBoth()) {
|
|
112
88
|
headComment += "\n\n**Note**: Binary content may be returned by this method.";
|
|
113
89
|
} else if (method.responseIsBinary()) {
|
|
114
90
|
headComment += "\n\n**Note**: Binary content is returned by this method.";
|
|
115
91
|
}
|
|
116
|
-
|
|
117
92
|
headComment += this.returnComment(method);
|
|
118
93
|
method.params.forEach(param => headComment += this.paramComment(param));
|
|
119
94
|
var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
|
|
120
95
|
return this.commentHeader(indent, headComment) + dep;
|
|
121
96
|
}
|
|
122
|
-
|
|
123
97
|
genericBits(method) {
|
|
124
98
|
var success = 'TSuccess';
|
|
125
99
|
var generic = '<TSuccess>';
|
|
126
100
|
var constraint = ' where TSuccess : class';
|
|
127
|
-
|
|
128
101
|
if (method.returnType) {
|
|
129
102
|
var ret = method.returnType;
|
|
130
103
|
var type = this.typeMap(ret.type);
|
|
@@ -132,14 +105,12 @@ export class CSharpGen extends CodeGen {
|
|
|
132
105
|
generic = '';
|
|
133
106
|
constraint = '';
|
|
134
107
|
}
|
|
135
|
-
|
|
136
108
|
return {
|
|
137
109
|
success,
|
|
138
110
|
generic,
|
|
139
111
|
constraint
|
|
140
112
|
};
|
|
141
113
|
}
|
|
142
|
-
|
|
143
114
|
methodHeaderDeclaration(indent, method) {
|
|
144
115
|
var streamer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
145
116
|
var type = this.typeMap(method.type);
|
|
@@ -153,57 +124,46 @@ export class CSharpGen extends CodeGen {
|
|
|
153
124
|
var header = this.methodHeader(indent, method) + "".concat(indent, "public async Task<SdkResponse<").concat(bits.success, ", Exception>> ").concat(method.name).concat(bits.generic, "(") + (streamer ? "\n".concat(bump).concat(callback) : '');
|
|
154
125
|
return header + fragment + "".concat(fragment ? ',' : '', "\n").concat(bump, "ITransportSettings? options = null)").concat(bits.constraint, "\n{").concat(indent, "\n");
|
|
155
126
|
}
|
|
156
|
-
|
|
157
127
|
methodSignature(indent, method) {
|
|
158
128
|
return this.methodHeaderDeclaration(indent, method, false);
|
|
159
129
|
}
|
|
160
|
-
|
|
161
130
|
httpPath(path, prefix) {
|
|
162
131
|
prefix = prefix || '';
|
|
163
|
-
|
|
164
132
|
if (path.indexOf('{') >= 0) {
|
|
165
133
|
return "$\"".concat(path.replace(/{/gi, '{' + prefix), "\"");
|
|
166
134
|
}
|
|
167
|
-
|
|
168
135
|
return "'".concat(path, "'");
|
|
169
136
|
}
|
|
170
|
-
|
|
171
137
|
declareMethod(indent, method) {
|
|
172
138
|
var bump = this.bumper(indent);
|
|
173
139
|
return this.methodSignature(indent, method) + this.encodePathParams(bump, method) + this.httpCall(bump, method) + "\n".concat(indent, "}");
|
|
174
140
|
}
|
|
175
|
-
|
|
176
141
|
errorResponses(_indent, _method) {
|
|
177
142
|
return 'Exception';
|
|
178
143
|
}
|
|
179
|
-
|
|
180
144
|
argGroup(_indent, args, prefix) {
|
|
181
145
|
prefix = prefix || '';
|
|
182
146
|
var values = args.map(arg => "{ \"".concat(arg, "\", ").concat(this.reserve(arg), " }"));
|
|
183
147
|
var bump = this.bumper(this.indentStr) + this.indentStr;
|
|
184
148
|
return args && args.length !== 0 ? "new Values {\n".concat(bump).concat(values.join("".concat(this.argDelimiter.trim(), "\n").concat(bump).concat(prefix)), "}") : this.nullStr;
|
|
185
149
|
}
|
|
186
|
-
|
|
187
150
|
httpArgs(indent, method) {
|
|
188
151
|
var result = this.argFill('', 'options');
|
|
189
152
|
result = this.argFill(result, method.bodyArg ? method.bodyArg : this.nullStr);
|
|
190
153
|
result = this.argFill(result, this.argGroup(indent, method.queryArgs));
|
|
191
154
|
return result;
|
|
192
155
|
}
|
|
193
|
-
|
|
194
156
|
httpCall(indent, method) {
|
|
195
157
|
var bump = indent + this.indentStr;
|
|
196
158
|
var args = this.httpArgs(bump, method);
|
|
197
159
|
var dollah = method.pathArgs.length ? '$' : '';
|
|
198
160
|
var bits = this.genericBits(method);
|
|
199
|
-
var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat(firstCase(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
|
|
161
|
+
var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat((0, _sdkModels.firstCase)(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
|
|
200
162
|
return "".concat(indent, "return await ").concat(fragment, ";");
|
|
201
163
|
}
|
|
202
|
-
|
|
203
164
|
encodePathParams(indent, method) {
|
|
204
165
|
var bump = indent + this.indentStr;
|
|
205
166
|
var encodings = '';
|
|
206
|
-
|
|
207
167
|
if (method.pathParams.length > 0) {
|
|
208
168
|
for (var param of method.pathParams) {
|
|
209
169
|
if (param.doEncode()) {
|
|
@@ -211,28 +171,22 @@ export class CSharpGen extends CodeGen {
|
|
|
211
171
|
}
|
|
212
172
|
}
|
|
213
173
|
}
|
|
214
|
-
|
|
215
174
|
return encodings;
|
|
216
175
|
}
|
|
217
|
-
|
|
218
176
|
summary(indent, summary) {
|
|
219
177
|
if (this.noComment || !summary) return '';
|
|
220
178
|
var nl = summary.indexOf('\n') >= 0 ? '\n' : '';
|
|
221
179
|
return this.commentHeader(indent, "<summary>".concat(nl).concat(summary).concat(nl, "</summary>"));
|
|
222
180
|
}
|
|
223
|
-
|
|
224
181
|
paramComment(param) {
|
|
225
|
-
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(describeParam(param), "</param>") : '';
|
|
182
|
+
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat((0, _sdkModels.describeParam)(param), "</param>") : '';
|
|
226
183
|
}
|
|
227
|
-
|
|
228
184
|
returnComment(method) {
|
|
229
185
|
var type = method.returnType;
|
|
230
|
-
|
|
231
186
|
if (type) {
|
|
232
187
|
var mapped = this.typeMap(type.type);
|
|
233
188
|
return "\n\n<returns><c>".concat(mapped.name, "</c> ").concat(type.description, " (").concat(type.mediaType, ")</returns>\n");
|
|
234
189
|
}
|
|
235
|
-
|
|
236
190
|
var desc = [];
|
|
237
191
|
method.okResponses.forEach(r => {
|
|
238
192
|
var mapped = this.typeMap(r.type);
|
|
@@ -241,18 +195,15 @@ export class CSharpGen extends CodeGen {
|
|
|
241
195
|
var lines = desc.join('\n');
|
|
242
196
|
return "\n\n<returns>\n".concat(lines, "\n</returns>\n");
|
|
243
197
|
}
|
|
244
|
-
|
|
245
198
|
declareEnumValue(indent, value) {
|
|
246
199
|
return "".concat(indent, "[EnumMember(Value = \"").concat(value, "\")]\n").concat(indent).concat(this.reserve(value.toString()));
|
|
247
200
|
}
|
|
248
|
-
|
|
249
201
|
typeSignature(indent, type) {
|
|
250
|
-
var isEnum = type instanceof EnumType;
|
|
202
|
+
var isEnum = type instanceof _sdkModels.EnumType;
|
|
251
203
|
var kind = isEnum ? 'enum' : 'class';
|
|
252
204
|
var parent = isEnum ? '' : ' : SdkModel';
|
|
253
205
|
return this.commentHeader(indent, type.description) + "".concat(indent, "public ").concat(kind, " ").concat(this.reserve(type.name)).concat(parent, "\n{\n");
|
|
254
206
|
}
|
|
255
|
-
|
|
256
207
|
typeMap(type) {
|
|
257
208
|
super.typeMap(type);
|
|
258
209
|
var mt = '';
|
|
@@ -344,10 +295,8 @@ export class CSharpGen extends CodeGen {
|
|
|
344
295
|
name: 'void'
|
|
345
296
|
}
|
|
346
297
|
};
|
|
347
|
-
|
|
348
298
|
if (type.elementType) {
|
|
349
299
|
var map = this.typeMap(type.elementType);
|
|
350
|
-
|
|
351
300
|
switch (type.className) {
|
|
352
301
|
case 'ArrayType':
|
|
353
302
|
return {
|
|
@@ -355,31 +304,26 @@ export class CSharpGen extends CodeGen {
|
|
|
355
304
|
name: "".concat(map.name, "[]"),
|
|
356
305
|
optional
|
|
357
306
|
};
|
|
358
|
-
|
|
359
307
|
case 'HashType':
|
|
360
308
|
return {
|
|
361
309
|
default: this.nullStr,
|
|
362
310
|
name: "StringDictionary<".concat(map.name, ">"),
|
|
363
311
|
optional
|
|
364
312
|
};
|
|
365
|
-
|
|
366
313
|
case 'DelimArrayType':
|
|
367
314
|
return {
|
|
368
315
|
default: this.nullStr,
|
|
369
316
|
name: "DelimArray<".concat(map.name, ">"),
|
|
370
317
|
optional
|
|
371
318
|
};
|
|
372
|
-
|
|
373
319
|
case 'EnumType':
|
|
374
320
|
return {
|
|
375
321
|
default: '',
|
|
376
322
|
name: type.name
|
|
377
323
|
};
|
|
378
324
|
}
|
|
379
|
-
|
|
380
325
|
throw new Error("Don't know how to handle: ".concat(JSON.stringify(type)));
|
|
381
326
|
}
|
|
382
|
-
|
|
383
327
|
if (type.name) {
|
|
384
328
|
return csTypes[type.name] || {
|
|
385
329
|
default: this.nullStr,
|
|
@@ -389,6 +333,6 @@ export class CSharpGen extends CodeGen {
|
|
|
389
333
|
throw new Error('Cannot output a nameless type.');
|
|
390
334
|
}
|
|
391
335
|
}
|
|
392
|
-
|
|
393
336
|
}
|
|
337
|
+
exports.CSharpGen = CSharpGen;
|
|
394
338
|
//# sourceMappingURL=csharp.gen.js.map
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"csharp.gen.js","names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","commentBlock","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","firstCase","encodings","pathParams","doEncode","nl","describeParam","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 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":";;;;;;AA2BA;AASA;AAAyE;AAAA;AAAA;AAGzE,IAAMA,aAAa,GAAG,IAAIC,GAAG,CAAS,CACpC,UAAU,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,WAAW,EACX,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,CACR,CAAC;AAKK,MAAMC,SAAS,SAASC,gBAAO,CAAC;EAAA;IAAA;IAAA,kCAC1B,UAAU;IAAA,qCACP,EAAE;IAAA,gCACP,MAAM;IAAA,uCACC,KAAK;IAAA,oCACR,KAAK;IAAA,iCACR,MAAM;IAAA,mCACJ,WAAW;IAAA,sCAER,GAAG;IAAA,wCACD,KAAK;IAAA,uCACN,IAAI;IAAA,mCAER,IAAI;IAAA,oCACH,KAAK;IAAA,2CACE,KAAK;IAAA,sCACV,KAAK;IAAA,mCACR,GAAG;EAAA;EAEfC,aAAa,CAACC,MAAc,EAAEC,IAAwB,EAAE;IACtD,IAAI,IAAI,CAACC,SAAS,EAAE,OAAO,EAAE;IAC7B,OAAOD,IAAI,aAAM,IAAAE,qBAAY,EAACF,IAAI,EAAED,MAAM,EAAE,MAAM,CAAC,UAAO,EAAE;EAC9D;EAEAI,cAAc,CAACC,OAAe,EAAE;IAC9B,6QAUF,IAAI,CAACN,aAAa,CAAC,EAAE,EAAE,IAAI,CAACO,WAAW,EAAE,CAAC,uCAClB,IAAI,CAACC,MAAM;EAInC;EAEAC,cAAc,CAACH,OAAe,EAAE;IAC9B,OAAO,KAAK;EACd;EAEAI,eAAe,CAACJ,OAAe,EAAE;IAC/B,uKAOF,IAAI,CAACN,aAAa,CAAC,EAAE,EAAE,IAAI,CAACO,WAAW,EAAE,CAAC,uCAClB,IAAI,CAACC,MAAM,mCAGpB,IAAI,CAACG,WAAW,2CAEpB,IAAI,CAACA,WAAW,6DACvB,IAAI,CAACC,UAAU;EAGnB;EAEAC,eAAe,CAACZ,MAAc,EAAE;IAC9B,iBAAUA,MAAM;EAGlB;EAEAa,OAAO,CAACC,IAAY,EAAE;IACpB,IAAInB,aAAa,CAACoB,GAAG,CAACD,IAAI,CAAC,EAAE;MAC3B,OAAO,GAAG,GAAGA,IAAI;IACnB;IACA,OAAOA,IAAI;EACb;EAEAE,gBAAgB,CAAChB,MAAc,EAAEiB,MAAe,EAAEC,KAAiB,EAAE;IACnE,IAAMC,IAAI,GACRD,KAAK,CAACE,QAAQ,KAAKC,kBAAO,GACtB,IAAI,CAACC,aAAa,CAACJ,KAAK,CAACC,IAAI,EAAEF,MAAM,CAAC,IAAIC,KAAK,CAACC,IAAI,GACpDD,KAAK,CAACC,IAAI;IAChB,IAAMI,MAAM,GAAG,IAAI,CAACC,OAAO,CAACL,IAAI,CAAC;IACjC,IAAMM,GAAG,GAAG,IAAI,CAACZ,OAAO,CAACK,KAAK,CAACJ,IAAI,CAAC;IACpC,IAAMY,IAAI,GAAGR,KAAK,CAACS,QAAQ,GAAG,EAAE,GAAG,GAAG;IACtC,IAAMC,UAAU,GAAGV,KAAK,CAACS,QAAQ,GAC7B,EAAE,GACFJ,MAAM,CAACM,QAAQ,gBACTN,MAAM,CAACM,QAAQ,IACrB,EAAE;IACN,iBAAU7B,MAAM,SAAGuB,MAAM,CAACT,IAAI,SAAGY,IAAI,cAAID,GAAG,SAAGG,UAAU;EAC3D;EAEAE,eAAe,CAAC9B,MAAc,EAAE+B,QAAmB,EAAU;IAC3D,IAAMZ,IAAI,GAAG,IAAI,CAACK,OAAO,CAACO,QAAQ,CAACZ,IAAI,CAAC;IAGxC,IAAIa,MAAM,GAAG,eAAe;IAC5B,IAAID,QAAQ,CAACJ,QAAQ,EAAE;MACrB,IAAIR,IAAI,CAACc,OAAO,EAAE;QAChBD,MAAM,iBAAUb,IAAI,CAACc,OAAO,MAAG;MACjC;IACF,CAAC,MAAM;MACL,IAAId,IAAI,CAACU,QAAQ,EAAE;QACjBG,MAAM,iBAAUb,IAAI,CAACU,QAAQ,MAAG;MAClC;IACF;IAEA,IAAMJ,GAAG,GAAG,IAAI,CAACZ,OAAO,CAACkB,QAAQ,CAACjB,IAAI,CAAC;IACvC,IAAMY,IAAI,GAAGK,QAAQ,CAACJ,QAAQ,GAAG,EAAE,GAAG,GAAG;IACzC,IAAIO,IAAI,GACNH,QAAQ,CAACZ,IAAI,YAAYgB,mBAAQ,aAC1BnC,MAAM,sDACT,EAAE;IACR,IAAI+B,QAAQ,CAACK,eAAe,EAAE;MAC5BF,IAAI,cAAOlC,MAAM,6BAAkB+B,QAAQ,CAACM,QAAQ,WAAO;IAC7D;IACA,OACE,IAAI,CAACC,OAAO,CAACtC,MAAM,EAAE,IAAI,CAACuC,gBAAgB,CAACR,QAAQ,CAAC,CAAC,GACrDG,IAAI,aACDlC,MAAM,oBAAUmB,IAAI,CAACL,IAAI,SAAGY,IAAI,cAAID,GAAG,cAAIO,MAAM,CAAE;EAE1D;EAEAQ,YAAY,CAACxC,MAAc,EAAEiB,MAAe,EAAE;IAAA;IAC5C,IAAME,IAAI,GAAG,IAAI,CAACK,OAAO,CAACP,MAAM,CAACE,IAAI,CAAC;IACtC,IAAMsB,IAAI,0BAAGxB,MAAM,CAACyB,WAAW,wDAAlB,oBAAoBC,IAAI,EAAE;IACvC,IAAIC,WAAW,GACb,CAACH,IAAI,aAAMA,IAAI,YAAS,EAAE,cACvBxB,MAAM,CAAC4B,UAAU,cAAI5B,MAAM,CAAC6B,QAAQ,iBAAO3B,IAAI,CAACL,IAAI,CAAE;IAC3D,IAAIG,MAAM,CAAC8B,cAAc,EAAE,EAAE;MAC3BH,WAAW,kEAAkE;IAC/E,CAAC,MAAM,IAAI3B,MAAM,CAAC+B,gBAAgB,EAAE,EAAE;MACpCJ,WAAW,8DAA8D;IAC3E;IAEAA,WAAW,IAAI,IAAI,CAACK,aAAa,CAAChC,MAAM,CAAC;IACzCA,MAAM,CAACiC,MAAM,CAACC,OAAO,CAAEjC,KAAK,IAAM0B,WAAW,IAAI,IAAI,CAACQ,YAAY,CAAClC,KAAK,CAAE,CAAC;IAC3E,IAAMmC,GAAG,GAAGpC,MAAM,CAACqC,UAAU,aAAMtD,MAAM,oCAA+B,EAAE;IAC1E,OAAO,IAAI,CAACD,aAAa,CAACC,MAAM,EAAE4C,WAAW,CAAC,GAAGS,GAAG;EACtD;EAEAE,WAAW,CAACtC,MAAe,EAAE;IAC3B,IAAIuC,OAAO,GAAG,UAAU;IACxB,IAAIC,OAAO,GAAG,YAAY;IAC1B,IAAIC,UAAU,GAAG,yBAAyB;IAC1C,IAAIzC,MAAM,CAAC0C,UAAU,EAAE;MACrB,IAAMC,GAAG,GAAG3C,MAAM,CAAC0C,UAAU;MAC7B,IAAMxC,IAAI,GAAG,IAAI,CAACK,OAAO,CAACoC,GAAG,CAACzC,IAAI,CAAC;MACnCqC,OAAO,GAAGrC,IAAI,CAACL,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAGK,IAAI,CAACL,IAAI;MACrD2C,OAAO,GAAG,EAAE;MACZC,UAAU,GAAG,EAAE;IACjB;IACA,OAAO;MAAEF,OAAO;MAAEC,OAAO;MAAEC;IAAW,CAAC;EACzC;EAEAG,uBAAuB,CAAC7D,MAAc,EAAEiB,MAAe,EAAoB;IAAA,IAAlB6C,QAAQ,uEAAG,KAAK;IACvE,IAAM3C,IAAI,GAAG,IAAI,CAACK,OAAO,CAACP,MAAM,CAACE,IAAI,CAAC;IACtC,IAAM4C,IAAI,GAAG/D,MAAM,GAAG,IAAI,CAACgE,SAAS;IAEpC,IAAMd,MAAgB,GAAG,EAAE;IAC3B,IAAMe,IAAI,GAAGhD,MAAM,CAACiD,SAAS;IAC7B,IAAID,IAAI,IAAIA,IAAI,CAACE,MAAM,GAAG,CAAC,EACzBF,IAAI,CAACd,OAAO,CAAEiB,CAAC,IAAKlB,MAAM,CAACmB,IAAI,CAAC,IAAI,CAACrD,gBAAgB,CAAC+C,IAAI,EAAE9C,MAAM,EAAEmD,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAME,QAAQ,GACZpB,MAAM,CAACiB,MAAM,GAAG,CAAC,eAAQjB,MAAM,CAACqB,IAAI,CAAC,IAAI,CAACC,cAAc,CAAC,IAAK,EAAE;IAClE,IAAMC,QAAQ,uDAAgDtD,IAAI,CAACL,IAAI,OAAI;IAC3E,IAAM4D,IAAI,GAAG,IAAI,CAACnB,WAAW,CAACtC,MAAM,CAAC;IACrC,IAAM0D,MAAM,GACV,IAAI,CAACnC,YAAY,CAACxC,MAAM,EAAEiB,MAAM,CAAC,aAC9BjB,MAAM,2CAAiC0E,IAAI,CAAClB,OAAO,2BAAiBvC,MAAM,CAACH,IAAI,SAAG4D,IAAI,CAACjB,OAAO,MAAG,IACnGK,QAAQ,eAAQC,IAAI,SAAGU,QAAQ,IAAK,EAAE,CAAC;IAE1C,OACEE,MAAM,GACNL,QAAQ,aACLA,QAAQ,GAAG,GAAG,GAAG,EAAE,eAAKP,IAAI,gDAC7BW,IAAI,CAAChB,UAAU,gBACX1D,MAAM,OAAI;EAEpB;EAEA4E,eAAe,CAAC5E,MAAc,EAAEiB,MAAe,EAAU;IACvD,OAAO,IAAI,CAAC4C,uBAAuB,CAAC7D,MAAM,EAAEiB,MAAM,EAAE,KAAK,CAAC;EAC5D;EAEA4D,QAAQ,CAACC,IAAY,EAAEC,MAAe,EAAE;IACtCA,MAAM,GAAGA,MAAM,IAAI,EAAE;IACrB,IAAID,IAAI,CAACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;MAC1B,oBAAYF,IAAI,CAACG,OAAO,CAAC,KAAK,EAAE,GAAG,GAAGF,MAAM,CAAC;IAC/C;IACA,kBAAWD,IAAI;EACjB;EAEAI,aAAa,CAAClF,MAAc,EAAEiB,MAAe,EAAE;IAC7C,IAAM8C,IAAI,GAAG,IAAI,CAACoB,MAAM,CAACnF,MAAM,CAAC;IAChC,OACE,IAAI,CAAC4E,eAAe,CAAC5E,MAAM,EAAEiB,MAAM,CAAC,GACpC,IAAI,CAACmE,gBAAgB,CAACrB,IAAI,EAAE9C,MAAM,CAAC,GACnC,IAAI,CAACoE,QAAQ,CAACtB,IAAI,EAAE9C,MAAM,CAAC,eACtBjB,MAAM,MAAG;EAElB;EAEAsF,cAAc,CAACjF,OAAe,EAAEkF,OAAgB,EAAE;IAChD,OAAO,WAAW;EACpB;EAEAC,QAAQ,CAACnF,OAAe,EAAE4D,IAAW,EAAEc,MAAe,EAAE;IACtDA,MAAM,GAAGA,MAAM,IAAI,EAAE;IACrB,IAAMU,MAAM,GAAGxB,IAAI,CAACyB,GAAG,CAAEjE,GAAG,kBAAWA,GAAG,iBAAM,IAAI,CAACZ,OAAO,CAACY,GAAG,CAAC,OAAI,CAAC;IACtE,IAAMsC,IAAI,GAAG,IAAI,CAACoB,MAAM,CAAC,IAAI,CAACnB,SAAS,CAAC,GAAG,IAAI,CAACA,SAAS;IACzD,OAAOC,IAAI,IAAIA,IAAI,CAACE,MAAM,KAAK,CAAC,2BACXJ,IAAI,SAAG0B,MAAM,CAAClB,IAAI,WAC9B,IAAI,CAACoB,YAAY,CAAChD,IAAI,EAAE,eAAKoB,IAAI,SAAGgB,MAAM,EAC9C,SACD,IAAI,CAACa,OAAO;EAClB;EAEAC,QAAQ,CAAC7F,MAAc,EAAEiB,MAAe,EAAE;IACxC,IAAI6E,MAAM,GAAG,IAAI,CAACC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC;IAGxCD,MAAM,GAAG,IAAI,CAACC,OAAO,CACnBD,MAAM,EACN7E,MAAM,CAAC+E,OAAO,GAAG/E,MAAM,CAAC+E,OAAO,GAAG,IAAI,CAACJ,OAAO,CAC/C;IACDE,MAAM,GAAG,IAAI,CAACC,OAAO,CAACD,MAAM,EAAE,IAAI,CAACN,QAAQ,CAACxF,MAAM,EAAEiB,MAAM,CAACgF,SAAS,CAAC,CAAC;IACtE,OAAOH,MAAM;EACf;EAEAT,QAAQ,CAACrF,MAAc,EAAEiB,MAAe,EAAE;IACxC,IAAM8C,IAAI,GAAG/D,MAAM,GAAG,IAAI,CAACgE,SAAS;IACpC,IAAMC,IAAI,GAAG,IAAI,CAAC4B,QAAQ,CAAC9B,IAAI,EAAE9C,MAAM,CAAC;IACxC,IAAMiF,MAAM,GAAGjF,MAAM,CAACkF,QAAQ,CAAChC,MAAM,GAAG,GAAG,GAAG,EAAE;IAEhD,IAAMO,IAAI,GAAG,IAAI,CAACnB,WAAW,CAACtC,MAAM,CAAC;IACrC,IAAMqD,QAAQ,yBACZI,IAAI,CAAClB,OAAO,qCACa,IAAA4C,oBAAS,EAACnF,MAAM,CAAC4B,UAAU,CAAC,eAAKqD,MAAM,eAChEjF,MAAM,CAAC6B,QAAQ,eACbmB,IAAI,GAAG,IAAI,GAAGA,IAAI,GAAG,EAAE,MAAG;IAC9B,iBAAUjE,MAAM,0BAAgBsE,QAAQ;EAC1C;EAEAc,gBAAgB,CAACpF,MAAc,EAAEiB,MAAe,EAAU;IACxD,IAAM8C,IAAI,GAAG/D,MAAM,GAAG,IAAI,CAACgE,SAAS;IACpC,IAAIqC,SAAS,GAAG,EAAE;IAClB,IAAIpF,MAAM,CAACqF,UAAU,CAACnC,MAAM,GAAG,CAAC,EAAE;MAChC,KAAK,IAAMjD,KAAK,IAAID,MAAM,CAACqF,UAAU,EAAE;QACrC,IAAIpF,KAAK,CAACqF,QAAQ,EAAE,EAAE;UACpBF,SAAS,cAAOtC,IAAI,SAAG7C,KAAK,CAACJ,IAAI,qCAA2BI,KAAK,CAACJ,IAAI,SAAM;QAC9E;MACF;IACF;IACA,OAAOuF,SAAS;EAClB;EAEA/D,OAAO,CAACtC,MAAc,EAAEsC,OAAe,EAAE;IACvC,IAAI,IAAI,CAACpC,SAAS,IAAI,CAACoC,OAAO,EAAE,OAAO,EAAE;IACzC,IAAMkE,EAAE,GAAGlE,OAAO,CAAC0C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;IACjD,OAAO,IAAI,CAACjF,aAAa,CAACC,MAAM,qBAAcwG,EAAE,SAAGlE,OAAO,SAAGkE,EAAE,gBAAa;EAC9E;EAEApD,YAAY,CAAClC,KAAiB,EAAE;IAC9B,OAAOA,KAAK,CAACwB,WAAW,6BACFxB,KAAK,CAACJ,IAAI,gBAAK,IAAA2F,wBAAa,EAACvF,KAAK,CAAC,gBACrD,EAAE;EACR;EAEA+B,aAAa,CAAChC,MAAe,EAAE;IAC7B,IAAME,IAAI,GAAGF,MAAM,CAAC0C,UAAU;IAC9B,IAAIxC,IAAI,EAAE;MACR,IAAMI,MAAM,GAAG,IAAI,CAACC,OAAO,CAACL,IAAI,CAACA,IAAI,CAAC;MACtC,iCAA0BI,MAAM,CAACT,IAAI,kBAAQK,IAAI,CAACuB,WAAW,eAAKvB,IAAI,CAACuF,SAAS;IAClF;IACA,IAAMC,IAAc,GAAG,EAAE;IACzB1F,MAAM,CAAC2F,WAAW,CAACzD,OAAO,CAAE0D,CAAC,IAAK;MAChC,IAAMtF,MAAM,GAAG,IAAI,CAACC,OAAO,CAACqF,CAAC,CAAC1F,IAAI,CAAC;MACnCwF,IAAI,CAACtC,IAAI,cAAO9C,MAAM,CAACT,IAAI,kBAAQ+F,CAAC,CAACnE,WAAW,eAAKmE,CAAC,CAACH,SAAS,OAAI;IACtE,CAAC,CAAC;IACF,IAAMI,KAAK,GAAGH,IAAI,CAACpC,IAAI,CAAC,IAAI,CAAC;IAC7B,gCAAyBuC,KAAK;EAChC;EAEAC,gBAAgB,CAAC/G,MAAc,EAAEgH,KAAoB,EAAE;IACrD,iBAAUhH,MAAM,mCAAwBgH,KAAK,mBAC/ChH,MAAM,SAAG,IAAI,CAACa,OAAO,CAACmG,KAAK,CAACC,QAAQ,EAAE,CAAC;EACvC;EAIAC,aAAa,CAAClH,MAAc,EAAEmB,IAAW,EAAE;IACzC,IAAMgG,MAAM,GAAGhG,IAAI,YAAYgB,mBAAQ;IACvC,IAAMiF,IAAI,GAAGD,MAAM,GAAG,MAAM,GAAG,OAAO;IACtC,IAAME,MAAM,GAAGF,MAAM,GAAG,EAAE,GAAG,aAAa;IAC1C,OACE,IAAI,CAACpH,aAAa,CAACC,MAAM,EAAEmB,IAAI,CAACuB,WAAW,CAAC,aACzC1C,MAAM,oBAAUoH,IAAI,cAAI,IAAI,CAACvG,OAAO,CAACM,IAAI,CAACL,IAAI,CAAC,SAAGuG,MAAM,UAAO;EAEtE;EAEA7F,OAAO,CAACL,IAAW,EAAe;IAChC,KAAK,CAACK,OAAO,CAACL,IAAI,CAAC;IAGnB,IAAMmG,EAAE,GAAG,EAAE;IACb,IAAMC,MAAM,GAAG,IAAI;IACnB,IAAM1F,QAAQ,GAAG,IAAI,CAAC+D,OAAO;IAE7B,IAAM4B,OAAoC,GAAG;MAC3CC,GAAG,EAAE;QAAExF,OAAO,EAAE,IAAI,CAAC2D,OAAO;QAAE9E,IAAI,EAAE,QAAQ;QAAEe;MAAS,CAAC;MACxD6F,OAAO,EAAE;QAAEzF,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,MAAM;QAAEe;MAAS,CAAC;MAChD8F,IAAI,EAAE;QAAE1F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,MAAM;QAAEe;MAAS,CAAC;MAC7C+F,IAAI,EAAE;QAAE3F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,UAAU;QAAEe;MAAS,CAAC;MACjDgG,QAAQ,EAAE;QAAE5F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,UAAU;QAAEe;MAAS,CAAC;MACrDiG,MAAM,EAAE;QAAE7F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,QAAQ;QAAEe;MAAS,CAAC;MACjDkG,KAAK,EAAE;QAAE9F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,OAAO;QAAEe;MAAS,CAAC;MAC/CmG,KAAK,EAAE;QAAE/F,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,KAAK;QAAEe;MAAS,CAAC;MAC7CoG,KAAK,EAAE;QAAEhG,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,MAAM;QAAEe;MAAS,CAAC;MAC9CqG,OAAO,EAAE;QAAEjG,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,KAAK;QAAEe;MAAS,CAAC;MAC/CsG,MAAM,EAAE;QAAElG,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE,QAAQ;QAAEe;MAAS,CAAC;MACjDuG,MAAM,EAAE;QAAEnG,OAAO,EAAE,IAAI,CAAC2D,OAAO;QAAE9E,IAAI,EAAE,QAAQ;QAAEe;MAAS,CAAC;MAC3DwG,QAAQ,EAAE;QAAEpG,OAAO,EAAEsF,MAAM;QAAEzG,IAAI,EAAE,UAAU;QAAEe;MAAS,CAAC;MACzDyG,MAAM,EAAE;QAAErG,OAAO,EAAEsF,MAAM;QAAEzG,IAAI,EAAE,QAAQ;QAAEe;MAAS,CAAC;MACrD0G,GAAG,EAAE;QAAEtG,OAAO,EAAEsF,MAAM;QAAEzG,IAAI,EAAE,KAAK;QAAEe;MAAS,CAAC;MAC/C2G,GAAG,EAAE;QAAEvG,OAAO,EAAEsF,MAAM;QAAEzG,IAAI,EAAE,KAAK;QAAEe;MAAS,CAAC;MAC/C4G,IAAI,EAAE;QAAExG,OAAO,EAAEqF,EAAE;QAAExG,IAAI,EAAE;MAAO;IACpC,CAAC;IAED,IAAIK,IAAI,CAACuH,WAAW,EAAE;MAEpB,IAAMhD,GAAG,GAAG,IAAI,CAAClE,OAAO,CAACL,IAAI,CAACuH,WAAW,CAAC;MAC1C,QAAQvH,IAAI,CAACwH,SAAS;QACpB,KAAK,WAAW;UACd,OAAO;YAAE1G,OAAO,EAAE,IAAI,CAAC2D,OAAO;YAAE9E,IAAI,YAAK4E,GAAG,CAAC5E,IAAI,OAAI;YAAEe;UAAS,CAAC;QACnE,KAAK,UAAU;UACb,OAAO;YACLI,OAAO,EAAE,IAAI,CAAC2D,OAAO;YACrB9E,IAAI,6BAAsB4E,GAAG,CAAC5E,IAAI,MAAG;YACrCe;UACF,CAAC;QACH,KAAK,gBAAgB;UACnB,OAAO;YACLI,OAAO,EAAE,IAAI,CAAC2D,OAAO;YACrB9E,IAAI,uBAAgB4E,GAAG,CAAC5E,IAAI,MAAG;YAC/Be;UACF,CAAC;QACH,KAAK,UAAU;UACb,OAAO;YAAEI,OAAO,EAAE,EAAE;YAAEnB,IAAI,EAAEK,IAAI,CAACL;UAAK,CAAC;MAAA;MAE3C,MAAM,IAAI8H,KAAK,qCAA8BC,IAAI,CAACC,SAAS,CAAC3H,IAAI,CAAC,EAAG;IACtE;IAEA,IAAIA,IAAI,CAACL,IAAI,EAAE;MACb,OACE0G,OAAO,CAACrG,IAAI,CAACL,IAAI,CAAC,IAAI;QAAEmB,OAAO,EAAE,IAAI,CAAC2D,OAAO;QAAE9E,IAAI,YAAKK,IAAI,CAACL,IAAI;MAAG,CAAC;IAEzE,CAAC,MAAM;MACL,MAAM,IAAI8H,KAAK,CAAC,gCAAgC,CAAC;IACnD;EACF;AACF;AAAC"}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
export var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
3
|
-
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : permaLink;
|
|
4
|
-
var declaration;
|
|
1
|
+
"use strict";
|
|
5
2
|
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
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;
|
|
10
|
+
var declaration;
|
|
6
11
|
if (methodId) {
|
|
7
12
|
declaration = lode.methods[methodId];
|
|
8
13
|
} else if (typeId) {
|
|
9
14
|
declaration = lode.types[typeId];
|
|
10
15
|
}
|
|
11
|
-
|
|
12
16
|
var link;
|
|
13
|
-
|
|
14
17
|
if (declaration) {
|
|
15
18
|
link = sourcerer(lode.remoteOrigin, lode.commitHash, declaration.sourceFile, declaration.line);
|
|
16
19
|
}
|
|
17
|
-
|
|
18
20
|
return {
|
|
19
21
|
declaration,
|
|
20
22
|
link
|
|
21
23
|
};
|
|
22
24
|
};
|
|
25
|
+
exports.findDeclaration = findDeclaration;
|
|
23
26
|
//# sourceMappingURL=declarationInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"declarationInfo.js","names":["findDeclaration","lode","methodId","typeId","sourcerer","permaLink","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 { 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"],"mappings":";;;;;;AA0BA;AAqBO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAC1BC,IAAsB,EACtBC,QAAiB,EACjBC,MAAe,EAEZ;EAAA,IADHC,SAAqB,uEAAGC,sBAAS;EAEjC,IAAIC,WAAW;EACf,IAAIJ,QAAQ,EAAE;IACZI,WAAW,GAAGL,IAAI,CAACM,OAAO,CAACL,QAAQ,CAAC;EACtC,CAAC,MAAM,IAAIC,MAAM,EAAE;IACjBG,WAAW,GAAGL,IAAI,CAACO,KAAK,CAACL,MAAM,CAAC;EAClC;EAEA,IAAIM,IAAI;EACR,IAAIH,WAAW,EAAE;IACfG,IAAI,GAAGL,SAAS,CACdH,IAAI,CAACS,YAAY,EACjBT,IAAI,CAACU,UAAU,EACfL,WAAW,CAACM,UAAU,EACtBN,WAAW,CAACO,IAAI,CACjB;EAEH;EACA,OAAO;IAAEP,WAAW;IAAEG;EAAK,CAAC;AAC9B,CAAC;AAAA"}
|
package/lib/esm/exampleInfo.js
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
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) => {
|
|
4
12
|
var vscode = 'vscode://';
|
|
5
13
|
return "".concat(vscode).concat(parentPath, "/").concat(fileName, ":L:").concat(line);
|
|
6
14
|
};
|
|
7
|
-
|
|
15
|
+
exports.ideLink = ideLink;
|
|
16
|
+
var summarize = (lode, call) => {
|
|
8
17
|
if (call.sourceFile in lode.summaries) {
|
|
9
18
|
return lode.summaries[call.sourceFile].summary;
|
|
10
19
|
}
|
|
11
|
-
|
|
12
20
|
return call.sourceFile;
|
|
13
21
|
};
|
|
14
|
-
|
|
22
|
+
exports.summarize = summarize;
|
|
23
|
+
var exampleLink = (lode, call) => {
|
|
15
24
|
var link = permaLink(lode.remoteOrigin, lode.commitHash, call.sourceFile, call.line);
|
|
16
25
|
return {
|
|
17
26
|
permalink: link,
|
|
@@ -20,7 +29,8 @@ export var exampleLink = (lode, call) => {
|
|
|
20
29
|
lineNumber: call.line.toString()
|
|
21
30
|
};
|
|
22
31
|
};
|
|
23
|
-
|
|
32
|
+
exports.exampleLink = exampleLink;
|
|
33
|
+
var extensionToLanguage = {
|
|
24
34
|
'.py': 'Python',
|
|
25
35
|
'.ts': 'TypeScript',
|
|
26
36
|
'.tsx': 'TypeScript',
|
|
@@ -33,42 +43,35 @@ export var extensionToLanguage = {
|
|
|
33
43
|
'.md': 'Markdown',
|
|
34
44
|
'.java': 'Java'
|
|
35
45
|
};
|
|
36
|
-
|
|
46
|
+
exports.extensionToLanguage = extensionToLanguage;
|
|
47
|
+
var getLanguageExtensions = language => {
|
|
37
48
|
switch (language.toLowerCase()) {
|
|
38
49
|
case 'ts':
|
|
39
50
|
case 'typescript':
|
|
40
51
|
return ['.ts', 'tsx'];
|
|
41
|
-
|
|
42
52
|
case 'csharp':
|
|
43
53
|
case 'c#':
|
|
44
54
|
return ['.cs'];
|
|
45
|
-
|
|
46
55
|
case 'ruby':
|
|
47
56
|
return ['.rb'];
|
|
48
|
-
|
|
49
57
|
case 'python':
|
|
50
58
|
return ['.py'];
|
|
51
|
-
|
|
52
59
|
case 'swift':
|
|
53
60
|
return ['.swift'];
|
|
54
|
-
|
|
55
61
|
case 'kotlin':
|
|
56
62
|
return ['.kt'];
|
|
57
|
-
|
|
58
63
|
case 'dart':
|
|
59
64
|
return ['.dart'];
|
|
60
|
-
|
|
61
65
|
case 'go':
|
|
62
66
|
return ['.go'];
|
|
63
|
-
|
|
64
67
|
case 'java':
|
|
65
68
|
return ['.java'];
|
|
66
|
-
|
|
67
69
|
default:
|
|
68
70
|
return [];
|
|
69
71
|
}
|
|
70
72
|
};
|
|
71
|
-
|
|
73
|
+
exports.getLanguageExtensions = getLanguageExtensions;
|
|
74
|
+
var findExampleLanguages = (lode, methodName) => {
|
|
72
75
|
var all = lode.nuggets[methodName];
|
|
73
76
|
if (!all) return [];
|
|
74
77
|
var result = new Set();
|
|
@@ -78,19 +81,17 @@ export var findExampleLanguages = (lode, methodName) => {
|
|
|
78
81
|
});
|
|
79
82
|
return Array.from(result);
|
|
80
83
|
};
|
|
81
|
-
|
|
84
|
+
exports.findExampleLanguages = findExampleLanguages;
|
|
85
|
+
var findExamples = (lode, language, operationId) => {
|
|
82
86
|
var all = lode.nuggets[operationId];
|
|
83
87
|
var exts = getLanguageExtensions(language);
|
|
84
88
|
var links = [];
|
|
85
|
-
|
|
86
89
|
if (all && exts.length > 0) {
|
|
87
90
|
exts.forEach(ext => {
|
|
88
91
|
var calls = all.calls[ext];
|
|
89
|
-
|
|
90
92
|
if (calls) {
|
|
91
93
|
calls.forEach(call => {
|
|
92
94
|
var link = exampleLink(lode, call);
|
|
93
|
-
|
|
94
95
|
if (link) {
|
|
95
96
|
links.push(exampleLink(lode, call));
|
|
96
97
|
}
|
|
@@ -98,7 +99,7 @@ export var findExamples = (lode, language, operationId) => {
|
|
|
98
99
|
}
|
|
99
100
|
});
|
|
100
101
|
}
|
|
101
|
-
|
|
102
102
|
return links.sort((a, b) => a.permalink.localeCompare(b.permalink));
|
|
103
103
|
};
|
|
104
|
+
exports.findExamples = findExamples;
|
|
104
105
|
//# sourceMappingURL=exampleInfo.js.map
|