@goast/typescript 0.8.0-beta.1 → 0.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/LICENSE +21 -21
- package/README.md +52 -52
- package/assets/client/angular/angular-service.utils.ts +82 -82
- package/assets/client/angular/request-builder.ts +377 -377
- package/assets/client/fetch/fetch-client.utils.ts +52 -52
- package/assets/client/k6/request-builder.js +448 -448
- package/assets/client/k6/request-builder.ts +366 -366
- package/assets/stubs/easy-network-stub/easy-network-stub.utils.ts +257 -257
- package/esm/src/generators/models/model-generator.d.ts +22 -0
- package/esm/src/generators/models/model-generator.d.ts.map +1 -1
- package/esm/src/generators/models/model-generator.js +37 -5
- package/esm/src/generators/services/angular-services/angular-service-generator.js +9 -9
- package/esm/src/generators/services/angular-services/angular-services-generator.js +2 -2
- package/esm/src/generators/services/easy-network-stub/easy-network-stub-generator.js +9 -9
- package/esm/src/generators/services/fetch-clients/fetch-client-generator.js +4 -4
- package/esm/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
- package/esm/src/generators/services/k6-clients/k6-client-generator.js +23 -13
- package/esm/src/import-collection.d.ts.map +1 -1
- package/esm/src/import-collection.js +2 -2
- package/package.json +2 -2
- package/script/src/generators/models/model-generator.d.ts +22 -0
- package/script/src/generators/models/model-generator.d.ts.map +1 -1
- package/script/src/generators/models/model-generator.js +37 -5
- package/script/src/generators/services/angular-services/angular-service-generator.js +9 -9
- package/script/src/generators/services/angular-services/angular-services-generator.js +2 -2
- package/script/src/generators/services/easy-network-stub/easy-network-stub-generator.js +9 -9
- package/script/src/generators/services/fetch-clients/fetch-client-generator.js +4 -4
- package/script/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
- package/script/src/generators/services/k6-clients/k6-client-generator.js +23 -13
- package/script/src/import-collection.d.ts.map +1 -1
- package/script/src/import-collection.js +1 -1
- package/src/mod.ts +7 -0
- package/src/src/assets.ts +9 -0
- package/src/src/ast/_index.ts +54 -0
- package/src/src/ast/common.ts +1 -0
- package/src/src/ast/index.ts +1 -0
- package/src/src/ast/node.ts +10 -0
- package/src/src/ast/nodes/argument.ts +40 -0
- package/src/src/ast/nodes/array-type.ts +49 -0
- package/src/src/ast/nodes/arrow-function.ts +91 -0
- package/src/src/ast/nodes/call.ts +55 -0
- package/src/src/ast/nodes/class.ts +133 -0
- package/src/src/ast/nodes/constructor-parameter.ts +70 -0
- package/src/src/ast/nodes/constructor.ts +77 -0
- package/src/src/ast/nodes/decorator.ts +76 -0
- package/src/src/ast/nodes/doc-tag.ts +291 -0
- package/src/src/ast/nodes/doc.ts +102 -0
- package/src/src/ast/nodes/enum-value.ts +72 -0
- package/src/src/ast/nodes/enum.ts +77 -0
- package/src/src/ast/nodes/export.ts +54 -0
- package/src/src/ast/nodes/function-type.ts +60 -0
- package/src/src/ast/nodes/function.ts +107 -0
- package/src/src/ast/nodes/generic-parameter.ts +71 -0
- package/src/src/ast/nodes/indexer.ts +60 -0
- package/src/src/ast/nodes/interface.ts +117 -0
- package/src/src/ast/nodes/intersection-type.ts +67 -0
- package/src/src/ast/nodes/lookup-type.ts +53 -0
- package/src/src/ast/nodes/method.ts +138 -0
- package/src/src/ast/nodes/object-type.ts +52 -0
- package/src/src/ast/nodes/object.ts +48 -0
- package/src/src/ast/nodes/parameter.ts +85 -0
- package/src/src/ast/nodes/property-accessor.ts +173 -0
- package/src/src/ast/nodes/property.ts +192 -0
- package/src/src/ast/nodes/reference.ts +194 -0
- package/src/src/ast/nodes/string.ts +49 -0
- package/src/src/ast/nodes/tuple.ts +53 -0
- package/src/src/ast/nodes/type-alias.ts +75 -0
- package/src/src/ast/nodes/typeof.ts +42 -0
- package/src/src/ast/nodes/types.ts +40 -0
- package/src/src/ast/nodes/union-type.ts +62 -0
- package/src/src/ast/nodes/variable.ts +73 -0
- package/src/src/ast/references/angular.ts +24 -0
- package/src/src/ast/references/easy-network-stub.ts +21 -0
- package/src/src/ast/references/index.ts +5 -0
- package/src/src/ast/references/k6.ts +8 -0
- package/src/src/ast/references/rxjs.ts +7 -0
- package/src/src/ast/references/typescript.ts +35 -0
- package/src/src/ast/utils/get-type-script-builder-options.ts +19 -0
- package/src/src/ast/utils/to-ts-node.ts +27 -0
- package/src/src/ast/utils/write-ts-generic-parameters.ts +25 -0
- package/src/src/ast/utils/write-ts-members.ts +28 -0
- package/src/src/ast/utils/write-ts-nodes.ts +35 -0
- package/src/src/ast/utils/write-ts-parameters.ts +25 -0
- package/src/src/common-results.ts +26 -0
- package/src/src/config.ts +96 -0
- package/src/src/file-builder.ts +137 -0
- package/src/src/generators/file-generator.ts +15 -0
- package/src/src/generators/index.ts +6 -0
- package/src/src/generators/models/index.ts +3 -0
- package/src/src/generators/models/model-generator.ts +530 -0
- package/src/src/generators/models/models-generator.ts +108 -0
- package/src/src/generators/models/models.ts +121 -0
- package/src/src/generators/services/angular-services/angular-service-generator.ts +431 -0
- package/src/src/generators/services/angular-services/angular-services-generator.ts +295 -0
- package/src/src/generators/services/angular-services/index.ts +3 -0
- package/src/src/generators/services/angular-services/models.ts +277 -0
- package/src/src/generators/services/angular-services/refs.ts +54 -0
- package/src/src/generators/services/easy-network-stub/easy-network-stub-generator.ts +250 -0
- package/src/src/generators/services/easy-network-stub/easy-network-stubs-generator.ts +211 -0
- package/src/src/generators/services/easy-network-stub/index.ts +3 -0
- package/src/src/generators/services/easy-network-stub/models.ts +124 -0
- package/src/src/generators/services/easy-network-stub/refs.ts +47 -0
- package/src/src/generators/services/fetch-clients/fetch-client-generator.ts +305 -0
- package/src/src/generators/services/fetch-clients/fetch-clients-generator.ts +163 -0
- package/src/src/generators/services/fetch-clients/index.ts +3 -0
- package/src/src/generators/services/fetch-clients/models.ts +130 -0
- package/src/src/generators/services/fetch-clients/refs.ts +21 -0
- package/src/src/generators/services/k6-clients/index.ts +3 -0
- package/src/src/generators/services/k6-clients/k6-client-generator.ts +515 -0
- package/src/src/generators/services/k6-clients/k6-clients-generator.ts +171 -0
- package/src/src/generators/services/k6-clients/models.ts +247 -0
- package/src/src/generators/services/k6-clients/refs.ts +16 -0
- package/src/src/import-collection.ts +236 -0
- package/src/src/utils.ts +79 -0
|
@@ -235,13 +235,13 @@ export class DefaultTypeScriptAngularServiceGenerator extends TypeScriptFileGene
|
|
|
235
235
|
], '\n'), { multiline: true })
|
|
236
236
|
: null,
|
|
237
237
|
'',
|
|
238
|
-
s `return ${ctx.refs.waitForResponse([responseModelType])}(${s.indent `
|
|
239
|
-
this.http.request(rb.build({${s.indent `
|
|
240
|
-
responseType: ${ts.string(responseType)},
|
|
241
|
-
accept: ${ts.string(accept)},
|
|
242
|
-
context,`}
|
|
243
|
-
})),
|
|
244
|
-
{${s.indent `
|
|
238
|
+
s `return ${ctx.refs.waitForResponse([responseModelType])}(${s.indent `
|
|
239
|
+
this.http.request(rb.build({${s.indent `
|
|
240
|
+
responseType: ${ts.string(responseType)},
|
|
241
|
+
accept: ${ts.string(accept)},
|
|
242
|
+
context,`}
|
|
243
|
+
})),
|
|
244
|
+
{${s.indent `
|
|
245
245
|
errorResponseTypes: ${ts.object({
|
|
246
246
|
members: [
|
|
247
247
|
...Object.entries(this.getEndpointStatusCodes(ctx, endpoint))
|
|
@@ -250,8 +250,8 @@ export class DefaultTypeScriptAngularServiceGenerator extends TypeScriptFileGene
|
|
|
250
250
|
return ts.property(key, { value: ts.string(value.parser) });
|
|
251
251
|
}),
|
|
252
252
|
],
|
|
253
|
-
})}`}
|
|
254
|
-
}`}
|
|
253
|
+
})}`}
|
|
254
|
+
}`}
|
|
255
255
|
)`,
|
|
256
256
|
], '\n'),
|
|
257
257
|
});
|
|
@@ -163,8 +163,8 @@ export class TypeScriptAngularServicesGenerator extends OpenApiServicesGeneratio
|
|
|
163
163
|
], '\n');
|
|
164
164
|
}
|
|
165
165
|
getRootUrl(ctx) {
|
|
166
|
-
var _a, _b, _c, _d, _e, _f;
|
|
167
|
-
return modifyString((
|
|
166
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
167
|
+
return modifyString((_j = (_h = (_g = (_f = (_e = ((_b = (_a = ctx.data.services[0]) === null || _a === void 0 ? void 0 : _a.$src) !== null && _b !== void 0 ? _b : (_d = (_c = ctx.data.services[0]) === null || _c === void 0 ? void 0 : _c.endpoints[0]) === null || _d === void 0 ? void 0 : _d.$src)) === null || _e === void 0 ? void 0 : _e.document) === null || _f === void 0 ? void 0 : _f.servers) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.url) !== null && _j !== void 0 ? _j : '/', ctx.config.rootUrl);
|
|
168
168
|
}
|
|
169
169
|
// #endregion
|
|
170
170
|
// #region Index
|
|
@@ -99,15 +99,15 @@ export class DefaultTypeScriptEasyNetworkStubGenerator extends TypeScriptFileGen
|
|
|
99
99
|
],
|
|
100
100
|
returnType: 'this',
|
|
101
101
|
body: appendValueGroup([
|
|
102
|
-
s `this.stubWrapper.stub2<${requestType}>()(${s.indent `
|
|
103
|
-
${ts.string(endpoint.method.toUpperCase())},
|
|
104
|
-
${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
|
|
105
|
-
async (request) => {${s.indent `
|
|
106
|
-
if (this.stubWrapper.options.rememberRequests) {${s.indent `
|
|
107
|
-
this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
|
|
108
|
-
}
|
|
109
|
-
throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
|
|
110
|
-
}`}
|
|
102
|
+
s `this.stubWrapper.stub2<${requestType}>()(${s.indent `
|
|
103
|
+
${ts.string(endpoint.method.toUpperCase())},
|
|
104
|
+
${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
|
|
105
|
+
async (request) => {${s.indent `
|
|
106
|
+
if (this.stubWrapper.options.rememberRequests) {${s.indent `
|
|
107
|
+
this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
|
|
108
|
+
}
|
|
109
|
+
throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
|
|
110
|
+
}`}
|
|
111
111
|
);`,
|
|
112
112
|
'return this;',
|
|
113
113
|
], '\n'),
|
|
@@ -140,7 +140,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
|
|
|
140
140
|
const method = this.getInterfaceEndpointMethod(ctx, endpoint);
|
|
141
141
|
method.accessModifier = 'public';
|
|
142
142
|
method.body = appendValueGroup([
|
|
143
|
-
s `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${s.indent `
|
|
143
|
+
s `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${s.indent `
|
|
144
144
|
.withPath(${ts.string(endpoint.path)})${(b) => b.forEach(endpoint.parameters, (b, p) => {
|
|
145
145
|
switch (p.target) {
|
|
146
146
|
case 'path':
|
|
@@ -150,11 +150,11 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
|
|
|
150
150
|
b.append(s `\n.withQueryParam(${ts.string(p.name)}, params.${toCasing(p.name, ctx.config.paramNameCasing)})`);
|
|
151
151
|
break;
|
|
152
152
|
}
|
|
153
|
-
})}
|
|
153
|
+
})}
|
|
154
154
|
.build();`}`,
|
|
155
155
|
'const headers = { ...this.options.headers };',
|
|
156
|
-
...endpoint.parameters.filter((x) => x.target === 'header').map((p) => s `if (params && params.${toCasing(p.name, ctx.config.paramNameCasing)} !== undefined) {${s.indent `
|
|
157
|
-
headers[${ts.string(p.name)}] = String(params.${toCasing(p.name, ctx.config.paramNameCasing)});`}
|
|
156
|
+
...endpoint.parameters.filter((x) => x.target === 'header').map((p) => s `if (params && params.${toCasing(p.name, ctx.config.paramNameCasing)} !== undefined) {${s.indent `
|
|
157
|
+
headers[${ts.string(p.name)}] = String(params.${toCasing(p.name, ctx.config.paramNameCasing)});`}
|
|
158
158
|
}`),
|
|
159
159
|
s `const response = (this.options.fetch ?? fetch)(url, ${ts.object({
|
|
160
160
|
members: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k6-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/k6-clients/k6-client-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAEzG,KAAK,OAAO,GAAG,kCAAkC,CAAC;AAClD,KAAK,MAAM,GAAG,iCAAiC,CAAC;AAChD,KAAK,OAAO,GAAG,qBAAqB,CAAC;AAErC,MAAM,WAAW,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,qBAAa,kCAAmC,SAAQ,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAC7F,YAAW,2BAA2B;IACtB,QAAQ,CAAC,GAAG,EAAE,kCAAkC,GAAG,YAAY,CAAC,iCAAiC,CAAC;IA4BlH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAetF,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAqErG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAuBjH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAqBvE,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"k6-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/k6-clients/k6-client-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,7 +154,11 @@ export class DefaultTypeScriptK6ClientGenerator extends TypeScriptFileGenerator
|
|
|
154
154
|
type: schema
|
|
155
155
|
? (b) => b.appendModelUsage(ctx.input.typescript.models[schema.id], importOptions)
|
|
156
156
|
: this.getAnyType(ctx),
|
|
157
|
-
description:
|
|
157
|
+
description: parameter.description
|
|
158
|
+
? (parameter.deprecated ? 'Deprecated: ' : '') + parameter.description
|
|
159
|
+
: parameter.deprecated
|
|
160
|
+
? 'Deprecated'
|
|
161
|
+
: undefined,
|
|
158
162
|
required: parameter.required,
|
|
159
163
|
};
|
|
160
164
|
});
|
|
@@ -243,9 +247,15 @@ export class DefaultTypeScriptK6ClientGenerator extends TypeScriptFileGenerator
|
|
|
243
247
|
}),
|
|
244
248
|
parameters: [
|
|
245
249
|
ts.constructorParameter('rootUrl', { type: isJs ? undefined : rootUrlType }),
|
|
246
|
-
|
|
250
|
+
// `optional` renders a TypeScript `?`, which is a syntax error in a `.js` file. JavaScript
|
|
251
|
+
// parameters are optional anyway, and the JSDoc `@param [defaultK6ParamsFactory]` above
|
|
252
|
+
// already records it.
|
|
253
|
+
ts.constructorParameter('defaultK6ParamsFactory', {
|
|
254
|
+
type: isJs ? undefined : paramType,
|
|
255
|
+
optional: isJs ? undefined : true,
|
|
256
|
+
}),
|
|
247
257
|
],
|
|
248
|
-
body: s `this.rootUrl = rootUrl;
|
|
258
|
+
body: s `this.rootUrl = rootUrl;
|
|
249
259
|
this._defaultK6ParamsFactory = defaultK6ParamsFactory;`,
|
|
250
260
|
}),
|
|
251
261
|
...ctx.service.endpoints.map((e) => this.getEndpointMethod(ctx, e)),
|
|
@@ -307,17 +317,17 @@ export class DefaultTypeScriptK6ClientGenerator extends TypeScriptFileGenerator
|
|
|
307
317
|
: null,
|
|
308
318
|
'',
|
|
309
319
|
ctx.config.language === 'javascript'
|
|
310
|
-
? s `return /** @type {${returnType}} */ (${s.indent `
|
|
311
|
-
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
|
|
312
|
-
accept: ${ts.string(accept)},
|
|
313
|
-
params: this.getK6Params(k6Params),`}
|
|
314
|
-
})`}
|
|
320
|
+
? s `return /** @type {${returnType}} */ (${s.indent `
|
|
321
|
+
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
|
|
322
|
+
accept: ${ts.string(accept)},
|
|
323
|
+
params: this.getK6Params(k6Params),`}
|
|
324
|
+
})`}
|
|
315
325
|
);`
|
|
316
|
-
: s `return (${s.indent `
|
|
317
|
-
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
|
|
318
|
-
accept: ${ts.string(accept)},
|
|
319
|
-
params: this.getK6Params(k6Params),`}
|
|
320
|
-
})`}
|
|
326
|
+
: s `return (${s.indent `
|
|
327
|
+
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
|
|
328
|
+
accept: ${ts.string(accept)},
|
|
329
|
+
params: this.getK6Params(k6Params),`}
|
|
330
|
+
})`}
|
|
321
331
|
) as unknown as ${returnType};`,
|
|
322
332
|
], '\n'),
|
|
323
333
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-collection.d.ts","sourceRoot":"","sources":["../../src/src/import-collection.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"import-collection.d.ts","sourceRoot":"","sources":["../../src/src/import-collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { extname } from 'node:path';
|
|
2
|
-
import { StringBuilder } from '@goast/core';
|
|
2
|
+
import { compareString, StringBuilder } from '@goast/core';
|
|
3
3
|
import { defaultTypeScriptGeneratorConfig } from './config.js';
|
|
4
4
|
import { getModulePathRelativeToFile } from './utils.js';
|
|
5
5
|
export const defaultImportExportCollectionOptions = {
|
|
@@ -170,7 +170,7 @@ export class ImportExportCollection {
|
|
|
170
170
|
}
|
|
171
171
|
sortAndResolve(data, filePath, importModuleTransformer) {
|
|
172
172
|
return Array.from(data.entries())
|
|
173
|
-
.sort(([
|
|
173
|
+
.sort(([a], [b]) => compareString(a, b))
|
|
174
174
|
.map(([fromModule, names]) => [...this.resolveModulePath(fromModule, filePath, importModuleTransformer), Array.from(names).sort()]);
|
|
175
175
|
}
|
|
176
176
|
getImportKind(fromModule) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goast/typescript",
|
|
3
|
-
"version": "0.8.0
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Provides gOAst generators for generating TypeScript code from OpenAPI specifications.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Marc Schmidt (MaSch0212)",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"tslib": "^2.6.2",
|
|
27
27
|
"fs-extra": "^11.3.3",
|
|
28
|
-
"@goast/core": "0.6.0
|
|
28
|
+
"@goast/core": "0.6.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^20.9.0",
|
|
@@ -20,6 +20,28 @@ export declare class DefaultTypeScriptModelGenerator extends TypeScriptFileGener
|
|
|
20
20
|
protected getEnumValuesVariable(ctx: Context, schema: ApiSchema): ts.Variable<Builder>;
|
|
21
21
|
protected getIndexer(ctx: Context, schema: ObjectLikeApiSchema): ts.Indexer<Builder> | null;
|
|
22
22
|
protected getProperties(ctx: Context, schema: ObjectLikeApiSchema): ts.Property<Builder>[];
|
|
23
|
+
/**
|
|
24
|
+
* The type of a schema used as a *member* of an enclosing type - a composition branch, an array element, an
|
|
25
|
+
* `additionalProperties` value - with the schema's own nullability applied.
|
|
26
|
+
*
|
|
27
|
+
* `getType` renders a schema's type without its `null` on purpose: the two contexts that render a schema's type
|
|
28
|
+
* as a whole declare nullability themselves. A property has it added by `getProperties`, and a top-level type
|
|
29
|
+
* alias deliberately does not hoist it, because that would change what every declared type means for consumers.
|
|
30
|
+
* A member position has neither - nothing downstream can add the `null` back - so unless it is admitted here the
|
|
31
|
+
* emitted type cannot represent a value the spec explicitly permits.
|
|
32
|
+
*/
|
|
33
|
+
protected getMemberType(ctx: Context, schema: Nullable<ApiSchema>, options?: {
|
|
34
|
+
skipSchemas?: boolean;
|
|
35
|
+
useBaseType?: boolean;
|
|
36
|
+
}): ts.Type<Builder> | null;
|
|
37
|
+
/**
|
|
38
|
+
* Whether a schema needs a `null` added to the type `getType` renders for it. A schema that only ever renders as
|
|
39
|
+
* `null` (the null type itself) already admits it, and adding a second one would emit `(null) | (null)`.
|
|
40
|
+
*
|
|
41
|
+
* Nullability is read through the reference chain the same way `getType` reads the type, so a `$ref` to a
|
|
42
|
+
* declared nullable schema - whose own declaration does not hoist the `null` - still admits null where it is used.
|
|
43
|
+
*/
|
|
44
|
+
protected isNullableMember(schema: ApiSchema): boolean;
|
|
23
45
|
protected getType(ctx: Context, schema: Nullable<ApiSchema>, options?: {
|
|
24
46
|
skipSchemas?: boolean;
|
|
25
47
|
useBaseType?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/generators/models/model-generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/generators/models/model-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,7 +161,7 @@ class DefaultTypeScriptModelGenerator extends file_generator_js_1.TypeScriptFile
|
|
|
161
161
|
getIndexer(ctx, schema) {
|
|
162
162
|
var _a;
|
|
163
163
|
return schema.additionalProperties
|
|
164
|
-
? index_js_1.ts.indexer(index_js_1.ts.refs.string(), (_a = (schema.additionalProperties === true ? null : this.
|
|
164
|
+
? index_js_1.ts.indexer(index_js_1.ts.refs.string(), (_a = (schema.additionalProperties === true ? null : this.getMemberType(ctx, schema.additionalProperties))) !== null && _a !== void 0 ? _a : this.getAnyType(ctx), { readonly: ctx.config.immutableTypes })
|
|
165
165
|
: null;
|
|
166
166
|
}
|
|
167
167
|
getProperties(ctx, schema) {
|
|
@@ -177,6 +177,33 @@ class DefaultTypeScriptModelGenerator extends file_generator_js_1.TypeScriptFile
|
|
|
177
177
|
});
|
|
178
178
|
});
|
|
179
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The type of a schema used as a *member* of an enclosing type - a composition branch, an array element, an
|
|
182
|
+
* `additionalProperties` value - with the schema's own nullability applied.
|
|
183
|
+
*
|
|
184
|
+
* `getType` renders a schema's type without its `null` on purpose: the two contexts that render a schema's type
|
|
185
|
+
* as a whole declare nullability themselves. A property has it added by `getProperties`, and a top-level type
|
|
186
|
+
* alias deliberately does not hoist it, because that would change what every declared type means for consumers.
|
|
187
|
+
* A member position has neither - nothing downstream can add the `null` back - so unless it is admitted here the
|
|
188
|
+
* emitted type cannot represent a value the spec explicitly permits.
|
|
189
|
+
*/
|
|
190
|
+
getMemberType(ctx, schema, options) {
|
|
191
|
+
const type = this.getType(ctx, schema, options);
|
|
192
|
+
return type !== null && schema && this.isNullableMember(schema) ? index_js_1.ts.unionType([type, 'null']) : type;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Whether a schema needs a `null` added to the type `getType` renders for it. A schema that only ever renders as
|
|
196
|
+
* `null` (the null type itself) already admits it, and adding a second one would emit `(null) | (null)`.
|
|
197
|
+
*
|
|
198
|
+
* Nullability is read through the reference chain the same way `getType` reads the type, so a `$ref` to a
|
|
199
|
+
* declared nullable schema - whose own declaration does not hoist the `null` - still admits null where it is used.
|
|
200
|
+
*/
|
|
201
|
+
isNullableMember(schema) {
|
|
202
|
+
const resolved = (0, core_1.getSchemaReference)(schema, core_1.DEFAULT_IGNORED_SCHEMA_PROPERTIES);
|
|
203
|
+
if (resolved.kind === 'null')
|
|
204
|
+
return false;
|
|
205
|
+
return schema.nullable === true || resolved.nullable === true;
|
|
206
|
+
}
|
|
180
207
|
getType(ctx, schema, options) {
|
|
181
208
|
if (!schema)
|
|
182
209
|
return this.getAnyType(ctx);
|
|
@@ -231,7 +258,7 @@ class DefaultTypeScriptModelGenerator extends file_generator_js_1.TypeScriptFile
|
|
|
231
258
|
}
|
|
232
259
|
getArrayType(ctx, schema) {
|
|
233
260
|
var _a;
|
|
234
|
-
return index_js_1.ts.arrayType((_a = this.
|
|
261
|
+
return index_js_1.ts.arrayType((_a = this.getMemberType(ctx, schema.items)) !== null && _a !== void 0 ? _a : this.getAnyType(ctx), {
|
|
235
262
|
readonly: ctx.config.immutableTypes,
|
|
236
263
|
});
|
|
237
264
|
}
|
|
@@ -279,16 +306,21 @@ class DefaultTypeScriptModelGenerator extends file_generator_js_1.TypeScriptFile
|
|
|
279
306
|
return this.getAnyType(ctx);
|
|
280
307
|
}
|
|
281
308
|
const useBaseType = schema.id === ctx.schema.id;
|
|
309
|
+
// allOf branches must all hold at once, i.e. an intersection. anyOf branches only require at least one to hold,
|
|
310
|
+
// i.e. a union - TypeScript unions already admit values matching several branches, so no Partial<> wrapper is
|
|
311
|
+
// needed to express that overlap. A schema with both intersects the allOf branches with the anyOf union.
|
|
282
312
|
return index_js_1.ts.intersectionType([
|
|
283
|
-
...schema.allOf.map((x) => this.
|
|
284
|
-
|
|
313
|
+
...schema.allOf.map((x) => this.getMemberType(ctx, x, { useBaseType })),
|
|
314
|
+
schema.anyOf.length > 0
|
|
315
|
+
? index_js_1.ts.unionType(schema.anyOf.map((x) => this.getMemberType(ctx, x, { useBaseType })))
|
|
316
|
+
: null,
|
|
285
317
|
]);
|
|
286
318
|
}
|
|
287
319
|
getOneOfType(ctx, schema) {
|
|
288
320
|
if (schema.oneOf.length === 0) {
|
|
289
321
|
return this.getAnyType(ctx);
|
|
290
322
|
}
|
|
291
|
-
return index_js_1.ts.unionType(schema.oneOf.map((x) => this.
|
|
323
|
+
return index_js_1.ts.unionType(schema.oneOf.map((x) => this.getMemberType(ctx, x)));
|
|
292
324
|
}
|
|
293
325
|
getMultiType(ctx, schema) {
|
|
294
326
|
if (schema.type.length === 0) {
|
|
@@ -238,13 +238,13 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_js_1.TypeS
|
|
|
238
238
|
], '\n'), { multiline: true })
|
|
239
239
|
: null,
|
|
240
240
|
'',
|
|
241
|
-
(0, core_1.builderTemplate) `return ${ctx.refs.waitForResponse([responseModelType])}(${core_1.builderTemplate.indent `
|
|
242
|
-
this.http.request(rb.build({${core_1.builderTemplate.indent `
|
|
243
|
-
responseType: ${index_js_1.ts.string(responseType)},
|
|
244
|
-
accept: ${index_js_1.ts.string(accept)},
|
|
245
|
-
context,`}
|
|
246
|
-
})),
|
|
247
|
-
{${core_1.builderTemplate.indent `
|
|
241
|
+
(0, core_1.builderTemplate) `return ${ctx.refs.waitForResponse([responseModelType])}(${core_1.builderTemplate.indent `
|
|
242
|
+
this.http.request(rb.build({${core_1.builderTemplate.indent `
|
|
243
|
+
responseType: ${index_js_1.ts.string(responseType)},
|
|
244
|
+
accept: ${index_js_1.ts.string(accept)},
|
|
245
|
+
context,`}
|
|
246
|
+
})),
|
|
247
|
+
{${core_1.builderTemplate.indent `
|
|
248
248
|
errorResponseTypes: ${index_js_1.ts.object({
|
|
249
249
|
members: [
|
|
250
250
|
...Object.entries(this.getEndpointStatusCodes(ctx, endpoint))
|
|
@@ -253,8 +253,8 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_js_1.TypeS
|
|
|
253
253
|
return index_js_1.ts.property(key, { value: index_js_1.ts.string(value.parser) });
|
|
254
254
|
}),
|
|
255
255
|
],
|
|
256
|
-
})}`}
|
|
257
|
-
}`}
|
|
256
|
+
})}`}
|
|
257
|
+
}`}
|
|
258
258
|
)`,
|
|
259
259
|
], '\n'),
|
|
260
260
|
});
|
|
@@ -167,8 +167,8 @@ class TypeScriptAngularServicesGenerator extends core_1.OpenApiServicesGeneratio
|
|
|
167
167
|
], '\n');
|
|
168
168
|
}
|
|
169
169
|
getRootUrl(ctx) {
|
|
170
|
-
var _a, _b, _c, _d, _e, _f;
|
|
171
|
-
return (0, utils_js_1.modifyString)((
|
|
170
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
171
|
+
return (0, utils_js_1.modifyString)((_j = (_h = (_g = (_f = (_e = ((_b = (_a = ctx.data.services[0]) === null || _a === void 0 ? void 0 : _a.$src) !== null && _b !== void 0 ? _b : (_d = (_c = ctx.data.services[0]) === null || _c === void 0 ? void 0 : _c.endpoints[0]) === null || _d === void 0 ? void 0 : _d.$src)) === null || _e === void 0 ? void 0 : _e.document) === null || _f === void 0 ? void 0 : _f.servers) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.url) !== null && _j !== void 0 ? _j : '/', ctx.config.rootUrl);
|
|
172
172
|
}
|
|
173
173
|
// #endregion
|
|
174
174
|
// #region Index
|
|
@@ -102,15 +102,15 @@ class DefaultTypeScriptEasyNetworkStubGenerator extends file_generator_js_1.Type
|
|
|
102
102
|
],
|
|
103
103
|
returnType: 'this',
|
|
104
104
|
body: (0, core_1.appendValueGroup)([
|
|
105
|
-
(0, core_1.builderTemplate) `this.stubWrapper.stub2<${requestType}>()(${core_1.builderTemplate.indent `
|
|
106
|
-
${index_js_1.ts.string(endpoint.method.toUpperCase())},
|
|
107
|
-
${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
|
|
108
|
-
async (request) => {${core_1.builderTemplate.indent `
|
|
109
|
-
if (this.stubWrapper.options.rememberRequests) {${core_1.builderTemplate.indent `
|
|
110
|
-
this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
|
|
111
|
-
}
|
|
112
|
-
throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
|
|
113
|
-
}`}
|
|
105
|
+
(0, core_1.builderTemplate) `this.stubWrapper.stub2<${requestType}>()(${core_1.builderTemplate.indent `
|
|
106
|
+
${index_js_1.ts.string(endpoint.method.toUpperCase())},
|
|
107
|
+
${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
|
|
108
|
+
async (request) => {${core_1.builderTemplate.indent `
|
|
109
|
+
if (this.stubWrapper.options.rememberRequests) {${core_1.builderTemplate.indent `
|
|
110
|
+
this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
|
|
111
|
+
}
|
|
112
|
+
throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
|
|
113
|
+
}`}
|
|
114
114
|
);`,
|
|
115
115
|
'return this;',
|
|
116
116
|
], '\n'),
|
|
@@ -143,7 +143,7 @@ class DefaultTypeScriptFetchClientGenerator extends file_generator_js_1.TypeScri
|
|
|
143
143
|
const method = this.getInterfaceEndpointMethod(ctx, endpoint);
|
|
144
144
|
method.accessModifier = 'public';
|
|
145
145
|
method.body = (0, core_1.appendValueGroup)([
|
|
146
|
-
(0, core_1.builderTemplate) `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${core_1.builderTemplate.indent `
|
|
146
|
+
(0, core_1.builderTemplate) `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${core_1.builderTemplate.indent `
|
|
147
147
|
.withPath(${index_js_1.ts.string(endpoint.path)})${(b) => b.forEach(endpoint.parameters, (b, p) => {
|
|
148
148
|
switch (p.target) {
|
|
149
149
|
case 'path':
|
|
@@ -153,11 +153,11 @@ class DefaultTypeScriptFetchClientGenerator extends file_generator_js_1.TypeScri
|
|
|
153
153
|
b.append((0, core_1.builderTemplate) `\n.withQueryParam(${index_js_1.ts.string(p.name)}, params.${(0, core_1.toCasing)(p.name, ctx.config.paramNameCasing)})`);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
|
-
})}
|
|
156
|
+
})}
|
|
157
157
|
.build();`}`,
|
|
158
158
|
'const headers = { ...this.options.headers };',
|
|
159
|
-
...endpoint.parameters.filter((x) => x.target === 'header').map((p) => (0, core_1.builderTemplate) `if (params && params.${(0, core_1.toCasing)(p.name, ctx.config.paramNameCasing)} !== undefined) {${core_1.builderTemplate.indent `
|
|
160
|
-
headers[${index_js_1.ts.string(p.name)}] = String(params.${(0, core_1.toCasing)(p.name, ctx.config.paramNameCasing)});`}
|
|
159
|
+
...endpoint.parameters.filter((x) => x.target === 'header').map((p) => (0, core_1.builderTemplate) `if (params && params.${(0, core_1.toCasing)(p.name, ctx.config.paramNameCasing)} !== undefined) {${core_1.builderTemplate.indent `
|
|
160
|
+
headers[${index_js_1.ts.string(p.name)}] = String(params.${(0, core_1.toCasing)(p.name, ctx.config.paramNameCasing)});`}
|
|
161
161
|
}`),
|
|
162
162
|
(0, core_1.builderTemplate) `const response = (this.options.fetch ?? fetch)(url, ${index_js_1.ts.object({
|
|
163
163
|
members: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k6-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/k6-clients/k6-client-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAEzG,KAAK,OAAO,GAAG,kCAAkC,CAAC;AAClD,KAAK,MAAM,GAAG,iCAAiC,CAAC;AAChD,KAAK,OAAO,GAAG,qBAAqB,CAAC;AAErC,MAAM,WAAW,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,qBAAa,kCAAmC,SAAQ,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAC7F,YAAW,2BAA2B;IACtB,QAAQ,CAAC,GAAG,EAAE,kCAAkC,GAAG,YAAY,CAAC,iCAAiC,CAAC;IA4BlH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAetF,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAqErG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAuBjH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAqBvE,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"k6-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/k6-clients/k6-client-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,7 +157,11 @@ class DefaultTypeScriptK6ClientGenerator extends file_generator_js_1.TypeScriptF
|
|
|
157
157
|
type: schema
|
|
158
158
|
? (b) => b.appendModelUsage(ctx.input.typescript.models[schema.id], importOptions)
|
|
159
159
|
: this.getAnyType(ctx),
|
|
160
|
-
description:
|
|
160
|
+
description: parameter.description
|
|
161
|
+
? (parameter.deprecated ? 'Deprecated: ' : '') + parameter.description
|
|
162
|
+
: parameter.deprecated
|
|
163
|
+
? 'Deprecated'
|
|
164
|
+
: undefined,
|
|
161
165
|
required: parameter.required,
|
|
162
166
|
};
|
|
163
167
|
});
|
|
@@ -246,9 +250,15 @@ class DefaultTypeScriptK6ClientGenerator extends file_generator_js_1.TypeScriptF
|
|
|
246
250
|
}),
|
|
247
251
|
parameters: [
|
|
248
252
|
index_js_1.ts.constructorParameter('rootUrl', { type: isJs ? undefined : rootUrlType }),
|
|
249
|
-
|
|
253
|
+
// `optional` renders a TypeScript `?`, which is a syntax error in a `.js` file. JavaScript
|
|
254
|
+
// parameters are optional anyway, and the JSDoc `@param [defaultK6ParamsFactory]` above
|
|
255
|
+
// already records it.
|
|
256
|
+
index_js_1.ts.constructorParameter('defaultK6ParamsFactory', {
|
|
257
|
+
type: isJs ? undefined : paramType,
|
|
258
|
+
optional: isJs ? undefined : true,
|
|
259
|
+
}),
|
|
250
260
|
],
|
|
251
|
-
body: (0, core_1.builderTemplate) `this.rootUrl = rootUrl;
|
|
261
|
+
body: (0, core_1.builderTemplate) `this.rootUrl = rootUrl;
|
|
252
262
|
this._defaultK6ParamsFactory = defaultK6ParamsFactory;`,
|
|
253
263
|
}),
|
|
254
264
|
...ctx.service.endpoints.map((e) => this.getEndpointMethod(ctx, e)),
|
|
@@ -310,17 +320,17 @@ class DefaultTypeScriptK6ClientGenerator extends file_generator_js_1.TypeScriptF
|
|
|
310
320
|
: null,
|
|
311
321
|
'',
|
|
312
322
|
ctx.config.language === 'javascript'
|
|
313
|
-
? (0, core_1.builderTemplate) `return /** @type {${returnType}} */ (${core_1.builderTemplate.indent `
|
|
314
|
-
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
|
|
315
|
-
accept: ${index_js_1.ts.string(accept)},
|
|
316
|
-
params: this.getK6Params(k6Params),`}
|
|
317
|
-
})`}
|
|
323
|
+
? (0, core_1.builderTemplate) `return /** @type {${returnType}} */ (${core_1.builderTemplate.indent `
|
|
324
|
+
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
|
|
325
|
+
accept: ${index_js_1.ts.string(accept)},
|
|
326
|
+
params: this.getK6Params(k6Params),`}
|
|
327
|
+
})`}
|
|
318
328
|
);`
|
|
319
|
-
: (0, core_1.builderTemplate) `return (${core_1.builderTemplate.indent `
|
|
320
|
-
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
|
|
321
|
-
accept: ${index_js_1.ts.string(accept)},
|
|
322
|
-
params: this.getK6Params(k6Params),`}
|
|
323
|
-
})`}
|
|
329
|
+
: (0, core_1.builderTemplate) `return (${core_1.builderTemplate.indent `
|
|
330
|
+
${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
|
|
331
|
+
accept: ${index_js_1.ts.string(accept)},
|
|
332
|
+
params: this.getK6Params(k6Params),`}
|
|
333
|
+
})`}
|
|
324
334
|
) as unknown as ${returnType};`,
|
|
325
335
|
], '\n'),
|
|
326
336
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-collection.d.ts","sourceRoot":"","sources":["../../src/src/import-collection.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"import-collection.d.ts","sourceRoot":"","sources":["../../src/src/import-collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -173,7 +173,7 @@ class ImportExportCollection {
|
|
|
173
173
|
}
|
|
174
174
|
sortAndResolve(data, filePath, importModuleTransformer) {
|
|
175
175
|
return Array.from(data.entries())
|
|
176
|
-
.sort(([
|
|
176
|
+
.sort(([a], [b]) => (0, core_1.compareString)(a, b))
|
|
177
177
|
.map(([fromModule, names]) => [...this.resolveModulePath(fromModule, filePath, importModuleTransformer), Array.from(names).sort()]);
|
|
178
178
|
}
|
|
179
179
|
getImportKind(fromModule) {
|
package/src/mod.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './src/ast/index.js';
|
|
2
|
+
export * from './src/common-results.js';
|
|
3
|
+
export * from './src/config.js';
|
|
4
|
+
export * from './src/file-builder.js';
|
|
5
|
+
export * from './src/generators/index.js';
|
|
6
|
+
export * from './src/import-collection.js';
|
|
7
|
+
export * from './src/utils.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AssetManager } from '@goast/core';
|
|
2
|
+
import { pathToFileURL, URL } from 'node:url';
|
|
3
|
+
|
|
4
|
+
declare const __filename: string | undefined;
|
|
5
|
+
const scriptUrl = typeof __filename === 'undefined' ? import.meta.url : pathToFileURL(__filename);
|
|
6
|
+
|
|
7
|
+
const manager = new AssetManager(new URL('../assets/', scriptUrl));
|
|
8
|
+
export const getAssetFileContent = manager.getAssetFileContent.bind(manager);
|
|
9
|
+
export const copyAssetFile = manager.copyAssetFile.bind(manager);
|