@looker/sdk-codegen 21.7.4 → 21.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -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 +103 -435
- 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 +39 -54
- 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 +20 -450
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.js +6 -106
- package/lib/specConverter.js.map +1 -1
- package/lib/specDiff.js +4 -59
- 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/csharp.gen.js
CHANGED
|
@@ -4,79 +4,53 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CSharpGen = void 0;
|
|
7
|
-
|
|
8
7
|
var _codeGen = require("./codeGen");
|
|
9
|
-
|
|
10
8
|
var _sdkModels = require("./sdkModels");
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
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); }
|
|
14
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']);
|
|
15
|
-
|
|
16
13
|
class CSharpGen extends _codeGen.CodeGen {
|
|
17
14
|
constructor() {
|
|
18
15
|
super(...arguments);
|
|
19
|
-
|
|
20
16
|
_defineProperty(this, "codePath", './csharp');
|
|
21
|
-
|
|
22
17
|
_defineProperty(this, "packagePath", '');
|
|
23
|
-
|
|
24
18
|
_defineProperty(this, "itself", 'this');
|
|
25
|
-
|
|
26
19
|
_defineProperty(this, "fileExtension", '.cs');
|
|
27
|
-
|
|
28
20
|
_defineProperty(this, "commentStr", '// ');
|
|
29
|
-
|
|
30
21
|
_defineProperty(this, "nullStr", 'null');
|
|
31
|
-
|
|
32
22
|
_defineProperty(this, "transport", 'Transport');
|
|
33
|
-
|
|
34
23
|
_defineProperty(this, "argDelimiter", ',');
|
|
35
|
-
|
|
36
24
|
_defineProperty(this, "paramDelimiter", ',\n');
|
|
37
|
-
|
|
38
25
|
_defineProperty(this, "propDelimiter", '\n');
|
|
39
|
-
|
|
40
26
|
_defineProperty(this, "indentStr", ' ');
|
|
41
|
-
|
|
42
27
|
_defineProperty(this, "endTypeStr", '\n}');
|
|
43
|
-
|
|
44
28
|
_defineProperty(this, "needsRequestTypes", false);
|
|
45
|
-
|
|
46
29
|
_defineProperty(this, "willItStream", false);
|
|
47
|
-
|
|
48
30
|
_defineProperty(this, "codeQuote", '"');
|
|
49
31
|
}
|
|
50
|
-
|
|
51
32
|
commentHeader(indent, text) {
|
|
52
33
|
if (this.noComment) return '';
|
|
53
34
|
return text ? "".concat((0, _codeGen.commentBlock)(text, indent, '/// '), "\n") : '';
|
|
54
35
|
}
|
|
55
|
-
|
|
56
36
|
modelsPrologue(_indent) {
|
|
57
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");
|
|
58
38
|
}
|
|
59
|
-
|
|
60
39
|
modelsEpilogue(_indent) {
|
|
61
40
|
return '\n}';
|
|
62
41
|
}
|
|
63
|
-
|
|
64
42
|
methodsPrologue(_indent) {
|
|
65
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");
|
|
66
44
|
}
|
|
67
|
-
|
|
68
45
|
methodsEpilogue(indent) {
|
|
69
46
|
return "".concat(indent, "}\n}\n");
|
|
70
47
|
}
|
|
71
|
-
|
|
72
48
|
reserve(name) {
|
|
73
49
|
if (reservedWords.has(name)) {
|
|
74
50
|
return '@' + name;
|
|
75
51
|
}
|
|
76
|
-
|
|
77
52
|
return name;
|
|
78
53
|
}
|
|
79
|
-
|
|
80
54
|
declareParameter(indent, method, param) {
|
|
81
55
|
var type = param.location === _sdkModels.strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
82
56
|
var mapped = this.typeMap(type);
|
|
@@ -85,11 +59,9 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
85
59
|
var defaulting = param.required ? '' : mapped.optional ? " = ".concat(mapped.optional) : '';
|
|
86
60
|
return "".concat(indent).concat(mapped.name).concat(pOpt, " ").concat(arg).concat(defaulting);
|
|
87
61
|
}
|
|
88
|
-
|
|
89
62
|
declareProperty(indent, property) {
|
|
90
63
|
var type = this.typeMap(property.type);
|
|
91
64
|
var getset = '{ get; set; }';
|
|
92
|
-
|
|
93
65
|
if (property.required) {
|
|
94
66
|
if (type.default) {
|
|
95
67
|
getset += " = ".concat(type.default, ";");
|
|
@@ -99,42 +71,33 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
99
71
|
getset += " = ".concat(type.optional, ";");
|
|
100
72
|
}
|
|
101
73
|
}
|
|
102
|
-
|
|
103
74
|
var arg = this.reserve(property.name);
|
|
104
75
|
var pOpt = property.required ? '' : '?';
|
|
105
76
|
var attr = property.type instanceof _sdkModels.EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
|
|
106
|
-
|
|
107
77
|
if (property.hasSpecialNeeds) {
|
|
108
78
|
attr += "".concat(indent, "[JsonProperty(\"").concat(property.jsonName, "\")]\n");
|
|
109
79
|
}
|
|
110
|
-
|
|
111
80
|
return this.summary(indent, this.describeProperty(property)) + attr + "".concat(indent, "public ").concat(type.name).concat(pOpt, " ").concat(arg, " ").concat(getset);
|
|
112
81
|
}
|
|
113
|
-
|
|
114
82
|
methodHeader(indent, method) {
|
|
115
83
|
var _method$description;
|
|
116
|
-
|
|
117
84
|
var type = this.typeMap(method.type);
|
|
118
85
|
var head = (_method$description = method.description) === null || _method$description === void 0 ? void 0 : _method$description.trim();
|
|
119
86
|
var headComment = (head ? "".concat(head, "\n\n") : '') + "".concat(method.httpMethod, " ").concat(method.endpoint, " -> ").concat(type.name);
|
|
120
|
-
|
|
121
87
|
if (method.responseIsBoth()) {
|
|
122
88
|
headComment += "\n\n**Note**: Binary content may be returned by this method.";
|
|
123
89
|
} else if (method.responseIsBinary()) {
|
|
124
90
|
headComment += "\n\n**Note**: Binary content is returned by this method.";
|
|
125
91
|
}
|
|
126
|
-
|
|
127
92
|
headComment += this.returnComment(method);
|
|
128
93
|
method.params.forEach(param => headComment += this.paramComment(param));
|
|
129
94
|
var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
|
|
130
95
|
return this.commentHeader(indent, headComment) + dep;
|
|
131
96
|
}
|
|
132
|
-
|
|
133
97
|
genericBits(method) {
|
|
134
98
|
var success = 'TSuccess';
|
|
135
99
|
var generic = '<TSuccess>';
|
|
136
100
|
var constraint = ' where TSuccess : class';
|
|
137
|
-
|
|
138
101
|
if (method.returnType) {
|
|
139
102
|
var ret = method.returnType;
|
|
140
103
|
var type = this.typeMap(ret.type);
|
|
@@ -142,14 +105,12 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
142
105
|
generic = '';
|
|
143
106
|
constraint = '';
|
|
144
107
|
}
|
|
145
|
-
|
|
146
108
|
return {
|
|
147
109
|
success,
|
|
148
110
|
generic,
|
|
149
111
|
constraint
|
|
150
112
|
};
|
|
151
113
|
}
|
|
152
|
-
|
|
153
114
|
methodHeaderDeclaration(indent, method) {
|
|
154
115
|
var streamer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
155
116
|
var type = this.typeMap(method.type);
|
|
@@ -163,44 +124,35 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
163
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) : '');
|
|
164
125
|
return header + fragment + "".concat(fragment ? ',' : '', "\n").concat(bump, "ITransportSettings? options = null)").concat(bits.constraint, "\n{").concat(indent, "\n");
|
|
165
126
|
}
|
|
166
|
-
|
|
167
127
|
methodSignature(indent, method) {
|
|
168
128
|
return this.methodHeaderDeclaration(indent, method, false);
|
|
169
129
|
}
|
|
170
|
-
|
|
171
130
|
httpPath(path, prefix) {
|
|
172
131
|
prefix = prefix || '';
|
|
173
|
-
|
|
174
132
|
if (path.indexOf('{') >= 0) {
|
|
175
133
|
return "$\"".concat(path.replace(/{/gi, '{' + prefix), "\"");
|
|
176
134
|
}
|
|
177
|
-
|
|
178
135
|
return "'".concat(path, "'");
|
|
179
136
|
}
|
|
180
|
-
|
|
181
137
|
declareMethod(indent, method) {
|
|
182
138
|
var bump = this.bumper(indent);
|
|
183
139
|
return this.methodSignature(indent, method) + this.encodePathParams(bump, method) + this.httpCall(bump, method) + "\n".concat(indent, "}");
|
|
184
140
|
}
|
|
185
|
-
|
|
186
141
|
errorResponses(_indent, _method) {
|
|
187
142
|
return 'Exception';
|
|
188
143
|
}
|
|
189
|
-
|
|
190
144
|
argGroup(_indent, args, prefix) {
|
|
191
145
|
prefix = prefix || '';
|
|
192
146
|
var values = args.map(arg => "{ \"".concat(arg, "\", ").concat(this.reserve(arg), " }"));
|
|
193
147
|
var bump = this.bumper(this.indentStr) + this.indentStr;
|
|
194
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;
|
|
195
149
|
}
|
|
196
|
-
|
|
197
150
|
httpArgs(indent, method) {
|
|
198
151
|
var result = this.argFill('', 'options');
|
|
199
152
|
result = this.argFill(result, method.bodyArg ? method.bodyArg : this.nullStr);
|
|
200
153
|
result = this.argFill(result, this.argGroup(indent, method.queryArgs));
|
|
201
154
|
return result;
|
|
202
155
|
}
|
|
203
|
-
|
|
204
156
|
httpCall(indent, method) {
|
|
205
157
|
var bump = indent + this.indentStr;
|
|
206
158
|
var args = this.httpArgs(bump, method);
|
|
@@ -209,11 +161,9 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
209
161
|
var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat((0, _sdkModels.firstCase)(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
|
|
210
162
|
return "".concat(indent, "return await ").concat(fragment, ";");
|
|
211
163
|
}
|
|
212
|
-
|
|
213
164
|
encodePathParams(indent, method) {
|
|
214
165
|
var bump = indent + this.indentStr;
|
|
215
166
|
var encodings = '';
|
|
216
|
-
|
|
217
167
|
if (method.pathParams.length > 0) {
|
|
218
168
|
for (var param of method.pathParams) {
|
|
219
169
|
if (param.doEncode()) {
|
|
@@ -221,28 +171,22 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
221
171
|
}
|
|
222
172
|
}
|
|
223
173
|
}
|
|
224
|
-
|
|
225
174
|
return encodings;
|
|
226
175
|
}
|
|
227
|
-
|
|
228
176
|
summary(indent, summary) {
|
|
229
177
|
if (this.noComment || !summary) return '';
|
|
230
178
|
var nl = summary.indexOf('\n') >= 0 ? '\n' : '';
|
|
231
179
|
return this.commentHeader(indent, "<summary>".concat(nl).concat(summary).concat(nl, "</summary>"));
|
|
232
180
|
}
|
|
233
|
-
|
|
234
181
|
paramComment(param) {
|
|
235
182
|
return param.description ? "\n<param name=\"".concat(param.name, "\">").concat((0, _sdkModels.describeParam)(param), "</param>") : '';
|
|
236
183
|
}
|
|
237
|
-
|
|
238
184
|
returnComment(method) {
|
|
239
185
|
var type = method.returnType;
|
|
240
|
-
|
|
241
186
|
if (type) {
|
|
242
187
|
var mapped = this.typeMap(type.type);
|
|
243
188
|
return "\n\n<returns><c>".concat(mapped.name, "</c> ").concat(type.description, " (").concat(type.mediaType, ")</returns>\n");
|
|
244
189
|
}
|
|
245
|
-
|
|
246
190
|
var desc = [];
|
|
247
191
|
method.okResponses.forEach(r => {
|
|
248
192
|
var mapped = this.typeMap(r.type);
|
|
@@ -251,18 +195,15 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
251
195
|
var lines = desc.join('\n');
|
|
252
196
|
return "\n\n<returns>\n".concat(lines, "\n</returns>\n");
|
|
253
197
|
}
|
|
254
|
-
|
|
255
198
|
declareEnumValue(indent, value) {
|
|
256
199
|
return "".concat(indent, "[EnumMember(Value = \"").concat(value, "\")]\n").concat(indent).concat(this.reserve(value.toString()));
|
|
257
200
|
}
|
|
258
|
-
|
|
259
201
|
typeSignature(indent, type) {
|
|
260
202
|
var isEnum = type instanceof _sdkModels.EnumType;
|
|
261
203
|
var kind = isEnum ? 'enum' : 'class';
|
|
262
204
|
var parent = isEnum ? '' : ' : SdkModel';
|
|
263
205
|
return this.commentHeader(indent, type.description) + "".concat(indent, "public ").concat(kind, " ").concat(this.reserve(type.name)).concat(parent, "\n{\n");
|
|
264
206
|
}
|
|
265
|
-
|
|
266
207
|
typeMap(type) {
|
|
267
208
|
super.typeMap(type);
|
|
268
209
|
var mt = '';
|
|
@@ -354,10 +295,8 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
354
295
|
name: 'void'
|
|
355
296
|
}
|
|
356
297
|
};
|
|
357
|
-
|
|
358
298
|
if (type.elementType) {
|
|
359
299
|
var map = this.typeMap(type.elementType);
|
|
360
|
-
|
|
361
300
|
switch (type.className) {
|
|
362
301
|
case 'ArrayType':
|
|
363
302
|
return {
|
|
@@ -365,31 +304,26 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
365
304
|
name: "".concat(map.name, "[]"),
|
|
366
305
|
optional
|
|
367
306
|
};
|
|
368
|
-
|
|
369
307
|
case 'HashType':
|
|
370
308
|
return {
|
|
371
309
|
default: this.nullStr,
|
|
372
310
|
name: "StringDictionary<".concat(map.name, ">"),
|
|
373
311
|
optional
|
|
374
312
|
};
|
|
375
|
-
|
|
376
313
|
case 'DelimArrayType':
|
|
377
314
|
return {
|
|
378
315
|
default: this.nullStr,
|
|
379
316
|
name: "DelimArray<".concat(map.name, ">"),
|
|
380
317
|
optional
|
|
381
318
|
};
|
|
382
|
-
|
|
383
319
|
case 'EnumType':
|
|
384
320
|
return {
|
|
385
321
|
default: '',
|
|
386
322
|
name: type.name
|
|
387
323
|
};
|
|
388
324
|
}
|
|
389
|
-
|
|
390
325
|
throw new Error("Don't know how to handle: ".concat(JSON.stringify(type)));
|
|
391
326
|
}
|
|
392
|
-
|
|
393
327
|
if (type.name) {
|
|
394
328
|
return csTypes[type.name] || {
|
|
395
329
|
default: this.nullStr,
|
|
@@ -399,8 +333,6 @@ class CSharpGen extends _codeGen.CodeGen {
|
|
|
399
333
|
throw new Error('Cannot output a nameless type.');
|
|
400
334
|
}
|
|
401
335
|
}
|
|
402
|
-
|
|
403
336
|
}
|
|
404
|
-
|
|
405
337
|
exports.CSharpGen = CSharpGen;
|
|
406
338
|
//# sourceMappingURL=csharp.gen.js.map
|
package/lib/csharp.gen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/csharp.gen.ts"],"names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","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":["_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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"}
|
package/lib/declarationInfo.js
CHANGED
|
@@ -4,30 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.findDeclaration = void 0;
|
|
7
|
-
|
|
8
7
|
var _exampleInfo = require("./exampleInfo");
|
|
9
|
-
|
|
10
8
|
var findDeclaration = function findDeclaration(lode, methodId, typeId) {
|
|
11
9
|
var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _exampleInfo.permaLink;
|
|
12
10
|
var declaration;
|
|
13
|
-
|
|
14
11
|
if (methodId) {
|
|
15
12
|
declaration = lode.methods[methodId];
|
|
16
13
|
} else if (typeId) {
|
|
17
14
|
declaration = lode.types[typeId];
|
|
18
15
|
}
|
|
19
|
-
|
|
20
16
|
var link;
|
|
21
|
-
|
|
22
17
|
if (declaration) {
|
|
23
18
|
link = sourcerer(lode.remoteOrigin, lode.commitHash, declaration.sourceFile, declaration.line);
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
return {
|
|
27
21
|
declaration,
|
|
28
22
|
link
|
|
29
23
|
};
|
|
30
24
|
};
|
|
31
|
-
|
|
32
25
|
exports.findDeclaration = findDeclaration;
|
|
33
26
|
//# sourceMappingURL=declarationInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"declarationInfo.js","names":["_exampleInfo","require","findDeclaration","lode","methodId","typeId","sourcerer","arguments","length","undefined","permaLink","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line","exports"],"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,IAAAA,YAAA,GAAAC,OAAA;AAqBO,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,MAAGG,sBAAS;EAEjC,IAAIC,WAAW;EACf,IAAIP,QAAQ,EAAE;IACZO,WAAW,GAAGR,IAAI,CAACS,OAAO,CAACR,QAAQ,CAAC;EACtC,CAAC,MAAM,IAAIC,MAAM,EAAE;IACjBM,WAAW,GAAGR,IAAI,CAACU,KAAK,CAACR,MAAM,CAAC;EAClC;EAEA,IAAIS,IAAI;EACR,IAAIH,WAAW,EAAE;IACfG,IAAI,GAAGR,SAAS,CACdH,IAAI,CAACY,YAAY,EACjBZ,IAAI,CAACa,UAAU,EACfL,WAAW,CAACM,UAAU,EACtBN,WAAW,CAACO,IAAI,CACjB;EAEH;EACA,OAAO;IAAEP,WAAW;IAAEG;EAAK,CAAC;AAC9B,CAAC;AAAAK,OAAA,CAAAjB,eAAA,GAAAA,eAAA"}
|