From dda400e185e6dc3525aaf80446c4b787816d3054 Mon Sep 17 00:00:00 2001 From: Himenon Date: Tue, 21 Jun 2022 10:40:43 +0900 Subject: [PATCH 1/5] feat: add readonly flag --- CONTRIBUTING.md | 20 +++++++++++++++++++ .../api-client/ApiClientArgument.ts | 5 +++++ .../ApiClientClass/ApiClientInterface.ts | 4 ++++ .../OpenApiTools/components/Header.ts | 3 +++ .../OpenApiTools/components/MediaType.ts | 1 + .../OpenApiTools/components/Parameter.ts | 3 +++ .../OpenApiTools/components/Schema.ts | 2 ++ .../OpenApiTools/components/SecuritySchema.ts | 4 ++++ src/internal/OpenApiTools/toTypeNode.ts | 1 + .../TsGenerator/factory/PropertySignature.ts | 3 ++- .../__snapshots__/argo-rollout-test.ts.snap | 2 +- .../__snapshots__/format.domain.ts.snap | 2 +- .../__snapshots__/kubernetes-test.ts.snap | 2 +- .../multi-type.test.domain.ts.snap | 4 ++-- .../__snapshots__/spit-code-test.ts.snap | 4 ++-- .../__snapshots__/template-only-test.ts.snap | 6 +++--- .../__snapshots__/typedef-only-test.ts.snap | 4 ++-- .../typedef-with-template-test.ts.snap | 10 +++++----- .../unknown-schema-domain-test.ts.snap | 2 +- 19 files changed, 63 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 854139a3..09d9b8bc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1,21 @@ # Contributing + +## Build + +```bash +pnpm run build +``` + +## Test + +Snapshot Update + +```bash +pnpm run update:snapshot +``` + +## Shortcut + +```bash +pnpm run build && pnpm run update:snapshot +``` diff --git a/src/code-templates/api-client/ApiClientArgument.ts b/src/code-templates/api-client/ApiClientArgument.ts index 34233939..e58401ce 100644 --- a/src/code-templates/api-client/ApiClientArgument.ts +++ b/src/code-templates/api-client/ApiClientArgument.ts @@ -57,6 +57,7 @@ const createHeaders = (factory: TsGenerator.Factory.Type, { convertedParams }: C if (convertedParams.has2OrMoreRequestContentTypes) { members.push( factory.PropertySignature.create({ + readOnly: false, name: `"Content-Type"`, optional: false, type: factory.TypeReferenceNode.create({ name: "T" }), @@ -67,6 +68,7 @@ const createHeaders = (factory: TsGenerator.Factory.Type, { convertedParams }: C if (convertedParams.has2OrMoreSuccessResponseContentTypes) { members.push( factory.PropertySignature.create({ + readOnly: false, name: `Accept`, optional: false, type: factory.TypeReferenceNode.create({ name: "U" }), @@ -117,6 +119,7 @@ export const create = (factory: TsGenerator.Factory.Type, params: CodeGenerator. const headerDeclaration = createHeaders(factory, params); if (headerDeclaration) { const extraHeader = factory.PropertySignature.create({ + readOnly: false, name: "headers", optional: false, type: headerDeclaration, @@ -126,6 +129,7 @@ export const create = (factory: TsGenerator.Factory.Type, params: CodeGenerator. if (convertedParams.hasParameter) { const parameter = factory.PropertySignature.create({ + readOnly: false, name: "parameter", optional: false, type: factory.TypeReferenceNode.create({ @@ -137,6 +141,7 @@ export const create = (factory: TsGenerator.Factory.Type, params: CodeGenerator. if (convertedParams.hasRequestBody) { const requestBody = factory.PropertySignature.create({ + readOnly: false, name: "requestBody", optional: false, type: factory.IndexedAccessTypeNode.create({ diff --git a/src/code-templates/api-client/ApiClientClass/ApiClientInterface.ts b/src/code-templates/api-client/ApiClientClass/ApiClientInterface.ts index 1480ee93..98d20f84 100644 --- a/src/code-templates/api-client/ApiClientClass/ApiClientInterface.ts +++ b/src/code-templates/api-client/ApiClientClass/ApiClientInterface.ts @@ -62,16 +62,19 @@ const createQueryParamsDeclarations = (factory: TsGenerator.Factory.Type) => { name: "QueryParameter", members: [ factory.PropertySignature.create({ + readOnly: false, name: "value", optional: false, type: factory.TypeNode.create({ type: "any" }), }), factory.PropertySignature.create({ + readOnly: false, name: "style", optional: true, type: factory.TypeNode.create({ type: "string", enum: ["form", "spaceDelimited", "pipeDelimited", "deepObject"] }), }), factory.PropertySignature.create({ + readOnly: false, name: "explode", optional: false, type: factory.TypeNode.create({ type: "boolean" }), @@ -191,6 +194,7 @@ export const create = (factory: TsGenerator.Factory.Type, list: CodeGenerator.Pa }); const requestFunction = factory.PropertySignature.create({ + readOnly: false, name: "request", optional: false, type: functionType, diff --git a/src/internal/OpenApiTools/components/Header.ts b/src/internal/OpenApiTools/components/Header.ts index 0c988f3b..96f13f1b 100644 --- a/src/internal/OpenApiTools/components/Header.ts +++ b/src/internal/OpenApiTools/components/Header.ts @@ -37,6 +37,7 @@ export const generatePropertySignature = ( if (reference.type === "local") { context.setReferenceHandler(currentPoint, reference); return factory.PropertySignature.create({ + readOnly: false, name: converterContext.escapePropertySignatureName(name), optional: false, type: factory.TypeReferenceNode.create({ @@ -45,6 +46,7 @@ export const generatePropertySignature = ( }); } return factory.PropertySignature.create({ + readOnly: false, name: converterContext.escapePropertySignatureName(name), optional: false, type: factory.TypeReferenceNode.create({ @@ -53,6 +55,7 @@ export const generatePropertySignature = ( }); } return factory.PropertySignature.create({ + readOnly: false, name: converterContext.escapePropertySignatureName(name), optional: false, type: ToTypeNode.convert(entryPoint, currentPoint, factory, header.schema || { type: "null" }, context, converterContext), diff --git a/src/internal/OpenApiTools/components/MediaType.ts b/src/internal/OpenApiTools/components/MediaType.ts index dc3bf4e5..9ea80582 100644 --- a/src/internal/OpenApiTools/components/MediaType.ts +++ b/src/internal/OpenApiTools/components/MediaType.ts @@ -15,6 +15,7 @@ export const generatePropertySignature = ( converterContext: ConverterContext.Types, ): ts.PropertySignature => { return factory.PropertySignature.create({ + readOnly: false, name: converterContext.escapePropertySignatureName(protocol), optional: false, type: ToTypeNode.convert(entryPoint, currentPoint, factory, schema, context, converterContext), diff --git a/src/internal/OpenApiTools/components/Parameter.ts b/src/internal/OpenApiTools/components/Parameter.ts index 80577d54..500db334 100644 --- a/src/internal/OpenApiTools/components/Parameter.ts +++ b/src/internal/OpenApiTools/components/Parameter.ts @@ -53,6 +53,7 @@ export const generatePropertySignatureObject = ( const isPathProperty = localRef.in === "path"; const name = converterContext.escapePropertySignatureName(localRef.name); const typeElement = factory.PropertySignature.create({ + readOnly: false, name: name, optional: isPathProperty ? false : !localRef.required, comment: localRef.description, @@ -68,6 +69,7 @@ export const generatePropertySignatureObject = ( const isPathProperty = reference.data.in === "path"; const name = converterContext.escapePropertySignatureName(reference.data.name); const typeElement = factory.PropertySignature.create({ + readOnly: false, name: name, optional: isPathProperty ? false : !reference.data.required, comment: reference.data.description, @@ -88,6 +90,7 @@ export const generatePropertySignatureObject = ( const isPathProperty = parameter.in === "path"; const name = converterContext.escapePropertySignatureName(parameter.name); const typeElement = factory.PropertySignature.create({ + readOnly: false, name: name, optional: isPathProperty ? false : !parameter.required, type: ToTypeNode.convert(entryPoint, currentPoint, factory, parameter.schema || { type: "null" }, context, converterContext), diff --git a/src/internal/OpenApiTools/components/Schema.ts b/src/internal/OpenApiTools/components/Schema.ts index 49bfe8d6..f544df31 100644 --- a/src/internal/OpenApiTools/components/Schema.ts +++ b/src/internal/OpenApiTools/components/Schema.ts @@ -25,6 +25,7 @@ export const generatePropertySignatures = ( return Object.entries(schema.properties).map(([propertyName, property]) => { if (!property) { return factory.PropertySignature.create({ + readOnly: !!schema.readOnly, name: convertContext.escapePropertySignatureName(propertyName), optional: !required.includes(propertyName), comment: [schema.title, schema.description].filter(v => !!v).join("\n\n"), @@ -34,6 +35,7 @@ export const generatePropertySignatures = ( }); } return factory.PropertySignature.create({ + readOnly: !!schema.readOnly, name: convertContext.escapePropertySignatureName(propertyName), optional: !required.includes(propertyName), type: ToTypeNode.convert(entryPoint, currentPoint, factory, property, context, convertContext, { parent: schema }), diff --git a/src/internal/OpenApiTools/components/SecuritySchema.ts b/src/internal/OpenApiTools/components/SecuritySchema.ts index 9885b072..4dcf8569 100644 --- a/src/internal/OpenApiTools/components/SecuritySchema.ts +++ b/src/internal/OpenApiTools/components/SecuritySchema.ts @@ -11,21 +11,25 @@ export const generatePropertySignatures = ( ): ts.PropertySignature[] => { const signatures: ts.PropertySignature[] = [ factory.PropertySignature.create({ + readOnly: false, name: "type", optional: false, type: factory.LiteralTypeNode.create({ value: securitySchema.type }), }), factory.PropertySignature.create({ + readOnly: false, name: "name", optional: false, type: factory.LiteralTypeNode.create({ value: securitySchema.name }), }), factory.PropertySignature.create({ + readOnly: false, name: "in", optional: false, type: factory.LiteralTypeNode.create({ value: securitySchema.in }), }), factory.PropertySignature.create({ + readOnly: false, name: "openIdConnectUrl", optional: false, type: factory.LiteralTypeNode.create({ value: securitySchema.openIdConnectUrl }), diff --git a/src/internal/OpenApiTools/toTypeNode.ts b/src/internal/OpenApiTools/toTypeNode.ts index 405561b3..a640911a 100644 --- a/src/internal/OpenApiTools/toTypeNode.ts +++ b/src/internal/OpenApiTools/toTypeNode.ts @@ -270,6 +270,7 @@ export const convert: Convert = ( const value: ts.PropertySignature[] = Object.entries(schema.properties || {}).map(([name, jsonSchema]) => { return factory.PropertySignature.create({ + readOnly: !!schema.readOnly, name: converterContext.escapePropertySignatureName(name), type: convert(entryPoint, currentPoint, factory, jsonSchema, context, converterContext, { parent: schema.properties }), optional: !required.includes(name), diff --git a/src/internal/TsGenerator/factory/PropertySignature.ts b/src/internal/TsGenerator/factory/PropertySignature.ts index 6cabc9f6..16ccd897 100644 --- a/src/internal/TsGenerator/factory/PropertySignature.ts +++ b/src/internal/TsGenerator/factory/PropertySignature.ts @@ -4,6 +4,7 @@ import { generateComment } from "./utils"; export interface Params { name: string; + readOnly: boolean; optional: boolean; type: ts.TypeNode; comment?: string; @@ -15,7 +16,7 @@ export interface Factory { export const create = ({ factory }: Pick): Factory["create"] => (params: Params): ts.PropertySignature => { const node = factory.createPropertySignature( - undefined, + params.readOnly ? [factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)] : undefined, params.name, params.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, params.type, diff --git a/test/__tests__/__snapshots__/argo-rollout-test.ts.snap b/test/__tests__/__snapshots__/argo-rollout-test.ts.snap index 4d9d4bc2..d5918732 100644 --- a/test/__tests__/__snapshots__/argo-rollout-test.ts.snap +++ b/test/__tests__/__snapshots__/argo-rollout-test.ts.snap @@ -2,7 +2,7 @@ exports[`Argo Rollout client.ts 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.0.0 // diff --git a/test/__tests__/__snapshots__/format.domain.ts.snap b/test/__tests__/__snapshots__/format.domain.ts.snap index 53f3e9d0..8d867cde 100644 --- a/test/__tests__/__snapshots__/format.domain.ts.snap +++ b/test/__tests__/__snapshots__/format.domain.ts.snap @@ -2,7 +2,7 @@ exports[`Format Types format.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // diff --git a/test/__tests__/__snapshots__/kubernetes-test.ts.snap b/test/__tests__/__snapshots__/kubernetes-test.ts.snap index 980fd843..46967621 100644 --- a/test/__tests__/__snapshots__/kubernetes-test.ts.snap +++ b/test/__tests__/__snapshots__/kubernetes-test.ts.snap @@ -2,7 +2,7 @@ exports[`Kubernetes client-v1.18.5.ts 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.0.0 // diff --git a/test/__tests__/__snapshots__/multi-type.test.domain.ts.snap b/test/__tests__/__snapshots__/multi-type.test.domain.ts.snap index de7810b3..de19218f 100644 --- a/test/__tests__/__snapshots__/multi-type.test.domain.ts.snap +++ b/test/__tests__/__snapshots__/multi-type.test.domain.ts.snap @@ -2,7 +2,7 @@ exports[`Multi Type apiClient 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.0.1 // @@ -76,7 +76,7 @@ export class Client { exports[`Multi Type types 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.0.1 // diff --git a/test/__tests__/__snapshots__/spit-code-test.ts.snap b/test/__tests__/__snapshots__/spit-code-test.ts.snap index 942e9f01..bfe6e435 100644 --- a/test/__tests__/__snapshots__/spit-code-test.ts.snap +++ b/test/__tests__/__snapshots__/spit-code-test.ts.snap @@ -2,7 +2,7 @@ exports[`Split Code apiClient 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -235,7 +235,7 @@ export class Client { exports[`Split Code types 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // diff --git a/test/__tests__/__snapshots__/template-only-test.ts.snap b/test/__tests__/__snapshots__/template-only-test.ts.snap index 81cfc2ab..8cbc1a8a 100644 --- a/test/__tests__/__snapshots__/template-only-test.ts.snap +++ b/test/__tests__/__snapshots__/template-only-test.ts.snap @@ -2,7 +2,7 @@ exports[`Template Only api.test.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -140,7 +140,7 @@ export class Client { exports[`Template Only async-api.test.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -278,7 +278,7 @@ export class Client { exports[`Template Only infer.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // diff --git a/test/__tests__/__snapshots__/typedef-only-test.ts.snap b/test/__tests__/__snapshots__/typedef-only-test.ts.snap index e28cf1f1..cc1e9660 100644 --- a/test/__tests__/__snapshots__/typedef-only-test.ts.snap +++ b/test/__tests__/__snapshots__/typedef-only-test.ts.snap @@ -2,7 +2,7 @@ exports[`Typedef only typedef-api.test.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -295,7 +295,7 @@ export namespace RequestBodies { exports[`Typedef only typedef-infer.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // diff --git a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap index 460828c9..752a4698 100644 --- a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap @@ -2,7 +2,7 @@ exports[`Typedef with template api.test.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -482,7 +482,7 @@ export class Client { exports[`Typedef with template api.v2.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -545,7 +545,7 @@ export class Client { exports[`Typedef with template async-api.test.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -1025,7 +1025,7 @@ export class Client { exports[`Typedef with template infer.domain 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // @@ -1082,7 +1082,7 @@ export class Client { exports[`Typedef with template ref-access 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // diff --git a/test/__tests__/__snapshots__/unknown-schema-domain-test.ts.snap b/test/__tests__/__snapshots__/unknown-schema-domain-test.ts.snap index 79af3182..b5652a08 100644 --- a/test/__tests__/__snapshots__/unknown-schema-domain-test.ts.snap +++ b/test/__tests__/__snapshots__/unknown-schema-domain-test.ts.snap @@ -2,7 +2,7 @@ exports[`Unknown client.ts 1`] = ` "// -// Generated by @himenon/openapi-typescript-code-generator +// Generated by dummy-name vdummy // // OpenApi : 3.1.0 // From bbb5b9d12f459b326fc81c46be235f2082cb9915 Mon Sep 17 00:00:00 2001 From: Himenon Date: Tue, 21 Jun 2022 10:55:52 +0900 Subject: [PATCH 2/5] test: update sample --- .../typedef-with-template-test.ts.snap | 26 ++++++++++++++++++- test/api.v2.domain/index.yml | 24 +++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap index 752a4698..048d7ade 100644 --- a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap @@ -493,6 +493,9 @@ exports[`Typedef with template api.v2.domain 1`] = ` export namespace Schemas { export type Message = \\"hello\\" | \\"world\\"; export type QueryParams = \\"a\\" | \\"b\\" | \\"c\\"; + export interface ReadOnlyParams { + name?: string; + } } export interface Parameter$getHelloWorld { /** query word */ @@ -503,10 +506,22 @@ export interface Response$getHelloWorld$Status$200 { message?: Schemas.Message; }; } +export interface RequestBody$postHelloWorldReadonly { +} +export interface Response$postHelloWorldReadonly$Status$200 { + \\"application/json\\": { + message?: Schemas.Message; + }; +} export type ResponseContentType$getHelloWorld = keyof Response$getHelloWorld$Status$200; export interface Params$getHelloWorld { parameter: Parameter$getHelloWorld; } +export type RequestContentType$postHelloWorldReadonly = keyof RequestBody$postHelloWorldReadonly; +export type ResponseContentType$postHelloWorldReadonly = keyof Response$postHelloWorldReadonly$Status$200; +export interface Params$postHelloWorldReadonly { + requestBody: RequestBody$postHelloWorldReadonly[\\"application/json\\"]; +} export type HttpMethod = \\"GET\\" | \\"PUT\\" | \\"POST\\" | \\"DELETE\\" | \\"OPTIONS\\" | \\"HEAD\\" | \\"PATCH\\" | \\"TRACE\\"; export interface ObjectLike { [key: string]: any; @@ -519,9 +534,10 @@ export interface QueryParameter { export interface QueryParameters { [key: string]: QueryParameter; } -export type SuccessResponses = Response$getHelloWorld$Status$200; +export type SuccessResponses = Response$getHelloWorld$Status$200 | Response$postHelloWorldReadonly$Status$200; export namespace ErrorResponse { export type getHelloWorld = void; + export type postHelloWorldReadonly = void; } export interface ApiClient { request: (httpMethod: HttpMethod, url: string, headers: ObjectLike | any, requestBody: ObjectLike | any, queryParameters: QueryParameters | undefined, options?: RequestOption) => Promise; @@ -539,6 +555,14 @@ export class Client { }; return this.apiClient.request(\\"GET\\", url, headers, undefined, queryParameters, option); } + public async postHelloWorldReadonly(params: Params$postHelloWorldReadonly, option?: RequestOption): Promise { + const url = this.baseUrl + \`/hello/world/readonly\`; + const headers = { + \\"Content-Type\\": \\"application/json\\", + Accept: \\"application/json\\" + }; + return this.apiClient.request(\\"POST\\", url, headers, params.requestBody, undefined, option); + } } " `; diff --git a/test/api.v2.domain/index.yml b/test/api.v2.domain/index.yml index 86ed80b9..7a01ed56 100644 --- a/test/api.v2.domain/index.yml +++ b/test/api.v2.domain/index.yml @@ -21,6 +21,12 @@ components: $ref: "./components/schemas/Message.yml" QueryParams: $ref: "./components/schemas/QueryParams.yml" + ReadOnlyParams: + type: object + properties: + name: + type: string + readOnly: true paths: /hello/world: get: @@ -42,3 +48,21 @@ paths: properties: message: $ref: "#/components/schemas/Message" + /hello/world/readonly: + post: + operationId: postHelloWorldReadonly + requestBody: + description: ReadOnly Request Body + content: + application/json: + $ref: "#/components/schemas/ReadOnlyParams" + responses: + 200: + description: 成功 + content: + application/json: + schema: + type: object + properties: + message: + $ref: "#/components/schemas/Message" From 98a2ec50e49426f1f6d4e27a779ab27acf3c495d Mon Sep 17 00:00:00 2001 From: Himenon Date: Tue, 21 Jun 2022 11:12:39 +0900 Subject: [PATCH 3/5] test: update sample --- CONTRIBUTING.md | 2 +- src/internal/OpenApiTools/components/Schema.ts | 4 ++-- src/internal/OpenApiTools/toTypeNode.ts | 2 +- .../__snapshots__/typedef-with-template-test.ts.snap | 2 +- test/api.v2.domain/index.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 09d9b8bc..8ad6bafe 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,5 +17,5 @@ pnpm run update:snapshot ## Shortcut ```bash -pnpm run build && pnpm run update:snapshot +pnpm run build && pnpm run test:code:gen && pnpm run update:snapshot ``` diff --git a/src/internal/OpenApiTools/components/Schema.ts b/src/internal/OpenApiTools/components/Schema.ts index f544df31..2a7d8860 100644 --- a/src/internal/OpenApiTools/components/Schema.ts +++ b/src/internal/OpenApiTools/components/Schema.ts @@ -25,7 +25,7 @@ export const generatePropertySignatures = ( return Object.entries(schema.properties).map(([propertyName, property]) => { if (!property) { return factory.PropertySignature.create({ - readOnly: !!schema.readOnly, + readOnly: false, name: convertContext.escapePropertySignatureName(propertyName), optional: !required.includes(propertyName), comment: [schema.title, schema.description].filter(v => !!v).join("\n\n"), @@ -35,7 +35,7 @@ export const generatePropertySignatures = ( }); } return factory.PropertySignature.create({ - readOnly: !!schema.readOnly, + readOnly: typeof property !== "boolean" ? !!property.readOnly : false, name: convertContext.escapePropertySignatureName(propertyName), optional: !required.includes(propertyName), type: ToTypeNode.convert(entryPoint, currentPoint, factory, property, context, convertContext, { parent: schema }), diff --git a/src/internal/OpenApiTools/toTypeNode.ts b/src/internal/OpenApiTools/toTypeNode.ts index a640911a..b623cd80 100644 --- a/src/internal/OpenApiTools/toTypeNode.ts +++ b/src/internal/OpenApiTools/toTypeNode.ts @@ -270,7 +270,7 @@ export const convert: Convert = ( const value: ts.PropertySignature[] = Object.entries(schema.properties || {}).map(([name, jsonSchema]) => { return factory.PropertySignature.create({ - readOnly: !!schema.readOnly, + readOnly: typeof jsonSchema !== "boolean" ? !!jsonSchema.readOnly : false, name: converterContext.escapePropertySignatureName(name), type: convert(entryPoint, currentPoint, factory, jsonSchema, context, converterContext, { parent: schema.properties }), optional: !required.includes(name), diff --git a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap index 048d7ade..b4fe0924 100644 --- a/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/__snapshots__/typedef-with-template-test.ts.snap @@ -494,7 +494,7 @@ export namespace Schemas { export type Message = \\"hello\\" | \\"world\\"; export type QueryParams = \\"a\\" | \\"b\\" | \\"c\\"; export interface ReadOnlyParams { - name?: string; + readonly readonlyPropertyKey?: string; } } export interface Parameter$getHelloWorld { diff --git a/test/api.v2.domain/index.yml b/test/api.v2.domain/index.yml index 7a01ed56..69a60210 100644 --- a/test/api.v2.domain/index.yml +++ b/test/api.v2.domain/index.yml @@ -24,7 +24,7 @@ components: ReadOnlyParams: type: object properties: - name: + readonlyPropertyKey: type: string readOnly: true paths: From 1e566d52dc3ab4f4e3160b7de299a72acd9a9f3a Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Wed, 17 May 2023 21:16:24 +0900 Subject: [PATCH 4/5] chore: update --- .../_shared/ApiClientInterface.ts | 11 ++ .../__snapshots__/argo-rollout-test.ts.snap | 24 +-- .../class/__snapshots__/format.domain.ts.snap | 24 +-- .../__snapshots__/kubernetes-test.ts.snap | 24 +-- .../multi-type.test.domain.ts.snap | 26 +-- .../__snapshots__/spit-code-test.ts.snap | 26 +-- .../__snapshots__/template-only-test.ts.snap | 72 ++++---- .../__snapshots__/typedef-only-test.ts.snap | 4 +- .../typedef-with-template-test.ts.snap | 172 +++++++++--------- .../unknown-schema-domain-test.ts.snap | 24 +-- .../__snapshots__/argo-rollout-test.ts.snap | 22 +-- .../__snapshots__/format.domain.ts.snap | 22 +-- .../__snapshots__/kubernetes-test.ts.snap | 22 +-- .../multi-type.test.domain.ts.snap | 22 +-- .../__snapshots__/spit-code-test.ts.snap | 22 +-- .../__snapshots__/template-only-test.ts.snap | 66 +++---- .../typedef-with-template-test.ts.snap | 163 ++++++++++------- .../unknown-schema-domain-test.ts.snap | 22 +-- 18 files changed, 402 insertions(+), 366 deletions(-) diff --git a/src/code-templates/_shared/ApiClientInterface.ts b/src/code-templates/_shared/ApiClientInterface.ts index 46396251..72bd716c 100644 --- a/src/code-templates/_shared/ApiClientInterface.ts +++ b/src/code-templates/_shared/ApiClientInterface.ts @@ -116,6 +116,7 @@ const createEncodingInterface = (factory: TsGenerator.Factory.Type) => { members: [ factory.PropertySignature.create({ name: "contentType", + readOnly: true, optional: true, type: factory.TypeReferenceNode.create({ name: "string", @@ -123,6 +124,7 @@ const createEncodingInterface = (factory: TsGenerator.Factory.Type) => { }), factory.PropertySignature.create({ name: "headers", + readOnly: true, optional: true, type: factory.TypeReferenceNode.create({ name: "Record", @@ -130,11 +132,13 @@ const createEncodingInterface = (factory: TsGenerator.Factory.Type) => { }), factory.PropertySignature.create({ name: "style", + readOnly: true, optional: true, type: factory.TypeNode.create({ type: "string", enum: ["form", "spaceDelimited", "pipeDelimited", "deepObject"] }), }), factory.PropertySignature.create({ name: "explode", + readOnly: true, optional: true, type: factory.TypeReferenceNode.create({ name: "boolean", @@ -142,6 +146,7 @@ const createEncodingInterface = (factory: TsGenerator.Factory.Type) => { }), factory.PropertySignature.create({ name: "allowReserved", + readOnly: true, optional: true, type: factory.TypeReferenceNode.create({ name: "boolean", @@ -234,32 +239,38 @@ export const create = ( members: [ factory.PropertySignature.create({ name: `httpMethod`, + readOnly: true, optional: false, type: factory.TypeReferenceNode.create({ name: "HttpMethod" }), }), factory.PropertySignature.create({ name: methodType === "currying-function" ? "uri" : "url", + readOnly: true, optional: false, type: factory.TypeReferenceNode.create({ name: "string" }), }), factory.PropertySignature.create({ name: `headers`, + readOnly: true, optional: false, type: objectLikeOrAnyType, }), factory.PropertySignature.create({ name: `requestBody`, + readOnly: true, optional: true, type: objectLikeOrAnyType, }), factory.PropertySignature.create({ name: `requestBodyEncoding`, + readOnly: true, optional: true, type: factory.TypeReferenceNode.create({ name: "Record" }), }), factory.PropertySignature.create({ name: `queryParameters`, optional: true, + readOnly: true, type: factory.UnionTypeNode.create({ typeNodes: [ factory.TypeReferenceNode.create({ diff --git a/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap b/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap index 0bb5bc69..c96e7267 100644 --- a/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap +++ b/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap @@ -2,7 +2,7 @@ exports[`Argo Rollout client.ts 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.0.0 // @@ -3827,19 +3827,19 @@ export namespace ErrorResponse { export type RolloutService_Version = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/format.domain.ts.snap b/test/__tests__/class/__snapshots__/format.domain.ts.snap index a2454c4f..b7638c2e 100644 --- a/test/__tests__/class/__snapshots__/format.domain.ts.snap +++ b/test/__tests__/class/__snapshots__/format.domain.ts.snap @@ -2,7 +2,7 @@ exports[`Format Types format.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -44,19 +44,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap b/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap index 91dbbd33..c4954bc0 100644 --- a/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap +++ b/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap @@ -2,7 +2,7 @@ exports[`Kubernetes client-v1.18.5.ts 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.0.0 // @@ -41026,19 +41026,19 @@ export namespace ErrorResponse { export type getCodeVersion = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap b/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap index 6465f115..bbc6bed6 100644 --- a/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap +++ b/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap @@ -2,7 +2,7 @@ exports[`Multi Type apiClient 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.0.1 // @@ -43,19 +43,19 @@ export namespace ErrorResponse { export type patchOneOf = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -101,7 +101,7 @@ export class Client { exports[`Multi Type types 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.0.1 // diff --git a/test/__tests__/class/__snapshots__/spit-code-test.ts.snap b/test/__tests__/class/__snapshots__/spit-code-test.ts.snap index 43a8cd2e..bee919c2 100644 --- a/test/__tests__/class/__snapshots__/spit-code-test.ts.snap +++ b/test/__tests__/class/__snapshots__/spit-code-test.ts.snap @@ -2,7 +2,7 @@ exports[`Split Code apiClient 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -124,19 +124,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -287,7 +287,7 @@ export class Client { exports[`Split Code types 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // diff --git a/test/__tests__/class/__snapshots__/template-only-test.ts.snap b/test/__tests__/class/__snapshots__/template-only-test.ts.snap index 94124284..7b5a6aa4 100644 --- a/test/__tests__/class/__snapshots__/template-only-test.ts.snap +++ b/test/__tests__/class/__snapshots__/template-only-test.ts.snap @@ -2,7 +2,7 @@ exports[`Template Only api.test.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -61,19 +61,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -192,7 +192,7 @@ export class Client { exports[`Template Only async-api.test.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -251,19 +251,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -382,7 +382,7 @@ export class Client { exports[`Template Only infer.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -405,19 +405,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; diff --git a/test/__tests__/class/__snapshots__/typedef-only-test.ts.snap b/test/__tests__/class/__snapshots__/typedef-only-test.ts.snap index 85638564..eeb84a0d 100644 --- a/test/__tests__/class/__snapshots__/typedef-only-test.ts.snap +++ b/test/__tests__/class/__snapshots__/typedef-only-test.ts.snap @@ -36,7 +36,7 @@ export namespace Schemas { exports[`Typedef only typedef-api.test.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -336,7 +336,7 @@ export namespace RequestBodies { exports[`Typedef only typedef-infer.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // diff --git a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap index 9853816b..82f0a46f 100644 --- a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap @@ -2,7 +2,7 @@ exports[`Typedef with template api.test.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -410,19 +410,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -541,7 +541,7 @@ export class Client { exports[`Typedef with template api.v2.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -550,16 +550,11 @@ exports[`Typedef with template api.v2.domain 1`] = ` export namespace Schemas { -<<<<<<< HEAD:test/__tests__/__snapshots__/typedef-with-template-test.ts.snap - export type Message = \\"hello\\" | \\"world\\"; - export type QueryParams = \\"a\\" | \\"b\\" | \\"c\\"; + export type Message = "hello" | "world"; + export type QueryParams = "a" | "b" | "c"; export interface ReadOnlyParams { readonly readonlyPropertyKey?: string; } -======= - export type Message = "hello" | "world"; - export type QueryParams = "a" | "b" | "c"; ->>>>>>> c8fffc939490b34fa53c9684a7737382af48c1f7:test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap } export interface Parameter$getHelloWorld { /** query word */ @@ -573,7 +568,7 @@ export interface Response$getHelloWorld$Status$200 { export interface RequestBody$postHelloWorldReadonly { } export interface Response$postHelloWorldReadonly$Status$200 { - \\"application/json\\": { + "application/json": { message?: Schemas.Message; }; } @@ -581,16 +576,12 @@ export type ResponseContentType$getHelloWorld = keyof Response$getHelloWorld$Sta export interface Params$getHelloWorld { parameter: Parameter$getHelloWorld; } -<<<<<<< HEAD:test/__tests__/__snapshots__/typedef-with-template-test.ts.snap export type RequestContentType$postHelloWorldReadonly = keyof RequestBody$postHelloWorldReadonly; export type ResponseContentType$postHelloWorldReadonly = keyof Response$postHelloWorldReadonly$Status$200; export interface Params$postHelloWorldReadonly { - requestBody: RequestBody$postHelloWorldReadonly[\\"application/json\\"]; + requestBody: RequestBody$postHelloWorldReadonly["application/json"]; } -export type HttpMethod = \\"GET\\" | \\"PUT\\" | \\"POST\\" | \\"DELETE\\" | \\"OPTIONS\\" | \\"HEAD\\" | \\"PATCH\\" | \\"TRACE\\"; -======= export type HttpMethod = "GET" | "PUT" | "POST" | "DELETE" | "OPTIONS" | "HEAD" | "PATCH" | "TRACE"; ->>>>>>> c8fffc939490b34fa53c9684a7737382af48c1f7:test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap export interface ObjectLike { [key: string]: any; } @@ -608,19 +599,19 @@ export namespace ErrorResponse { export type postHelloWorldReadonly = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -643,13 +634,18 @@ export class Client { queryParameters: queryParameters }, option); } - public async postHelloWorldReadonly(params: Params$postHelloWorldReadonly, option?: RequestOption): Promise { + public async postHelloWorldReadonly(params: Params$postHelloWorldReadonly, option?: RequestOption): Promise { const url = this.baseUrl + \`/hello/world/readonly\`; const headers = { - \\"Content-Type\\": \\"application/json\\", - Accept: \\"application/json\\" + "Content-Type": "application/json", + Accept: "application/json" }; - return this.apiClient.request(\\"POST\\", url, headers, params.requestBody, undefined, option); + return this.apiClient.request({ + httpMethod: "POST", + url, + headers, + requestBody: params.requestBody + }, option); } } " @@ -657,7 +653,7 @@ export class Client { exports[`Typedef with template async-api.test.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -1065,19 +1061,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -1196,7 +1192,7 @@ export class Client { exports[`Typedef with template infer.domain 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -1242,19 +1238,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1268,7 +1264,7 @@ export class Client { exports[`Typedef with template ref-access 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -1404,19 +1400,19 @@ export namespace ErrorResponse { export type createPublisherV2 = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1630,19 +1626,19 @@ export namespace ErrorResponse { export type getPublisher = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap b/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap index ff765afb..7af031d4 100644 --- a/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap +++ b/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap @@ -2,7 +2,7 @@ exports[`Unknown client.ts 1`] = ` "// -// Generated by dummy-name vdummy +// Generated by @himenon/openapi-typescript-code-generator // // OpenApi : 3.1.0 // @@ -42,19 +42,19 @@ export namespace ErrorResponse { export type getUnknown = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap b/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap index 125c8245..4be21120 100644 --- a/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap @@ -3827,19 +3827,19 @@ export namespace ErrorResponse { export type RolloutService_Version = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/format.domain.ts.snap b/test/__tests__/functional/__snapshots__/format.domain.ts.snap index 70b71ed8..c794699c 100644 --- a/test/__tests__/functional/__snapshots__/format.domain.ts.snap +++ b/test/__tests__/functional/__snapshots__/format.domain.ts.snap @@ -44,19 +44,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap b/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap index b0ea1a8a..dac1510f 100644 --- a/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap @@ -41026,19 +41026,19 @@ export namespace ErrorResponse { export type getCodeVersion = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap b/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap index b007d37a..227ae658 100644 --- a/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap +++ b/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap @@ -43,19 +43,19 @@ export namespace ErrorResponse { export type patchOneOf = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap b/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap index 48eb2761..198b9949 100644 --- a/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap @@ -124,19 +124,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/template-only-test.ts.snap b/test/__tests__/functional/__snapshots__/template-only-test.ts.snap index c6f3ba23..29000390 100644 --- a/test/__tests__/functional/__snapshots__/template-only-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/template-only-test.ts.snap @@ -61,19 +61,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -254,19 +254,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -411,19 +411,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; diff --git a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap index e2874356..254950f8 100644 --- a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap @@ -410,19 +410,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -555,6 +555,9 @@ exports[`Typedef with template api.v2.domain 1`] = ` export namespace Schemas { export type Message = "hello" | "world"; export type QueryParams = "a" | "b" | "c"; + export interface ReadOnlyParams { + readonly readonlyPropertyKey?: string; + } } export interface Parameter$getHelloWorld { /** query word */ @@ -565,10 +568,22 @@ export interface Response$getHelloWorld$Status$200 { message?: Schemas.Message; }; } +export interface RequestBody$postHelloWorldReadonly { +} +export interface Response$postHelloWorldReadonly$Status$200 { + "application/json": { + message?: Schemas.Message; + }; +} export type ResponseContentType$getHelloWorld = keyof Response$getHelloWorld$Status$200; export interface Params$getHelloWorld { parameter: Parameter$getHelloWorld; } +export type RequestContentType$postHelloWorldReadonly = keyof RequestBody$postHelloWorldReadonly; +export type ResponseContentType$postHelloWorldReadonly = keyof Response$postHelloWorldReadonly$Status$200; +export interface Params$postHelloWorldReadonly { + requestBody: RequestBody$postHelloWorldReadonly["application/json"]; +} export type HttpMethod = "GET" | "PUT" | "POST" | "DELETE" | "OPTIONS" | "HEAD" | "PATCH" | "TRACE"; export interface ObjectLike { [key: string]: any; @@ -581,24 +596,25 @@ export interface QueryParameter { export interface QueryParameters { [key: string]: QueryParameter; } -export type SuccessResponses = Response$getHelloWorld$Status$200; +export type SuccessResponses = Response$getHelloWorld$Status$200 | Response$postHelloWorldReadonly$Status$200; export namespace ErrorResponse { export type getHelloWorld = void; + export type postHelloWorldReadonly = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -620,6 +636,19 @@ export const createClient = (apiClient: ApiClient, headers, queryParameters: queryParameters }, option); + }, + postHelloWorldReadonly: (params: Params$postHelloWorldReadonly, option?: RequestOption): Promise => { + const url = _baseUrl + \`/hello/world/readonly\`; + const headers = { + "Content-Type": "application/json", + Accept: "application/json" + }; + return apiClient.request({ + httpMethod: "POST", + url, + headers, + requestBody: params.requestBody + }, option); } }; }; @@ -1038,19 +1067,19 @@ export namespace ErrorResponse { export type deleteBook = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -1218,19 +1247,19 @@ export interface QueryParameters { export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1382,19 +1411,19 @@ export namespace ErrorResponse { export type createPublisherV2 = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1611,19 +1640,19 @@ export namespace ErrorResponse { export type getPublisher = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap b/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap index dfac984e..790f591d 100644 --- a/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap @@ -42,19 +42,19 @@ export namespace ErrorResponse { export type getUnknown = void; } export interface Encoding { - contentType?: string; - headers?: Record; - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - explode?: boolean; - allowReserved?: boolean; + readonly contentType?: string; + readonly headers?: Record; + readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + readonly explode?: boolean; + readonly allowReserved?: boolean; } export interface RequestArgs { - httpMethod: HttpMethod; - url: string; - headers: ObjectLike | any; - requestBody?: ObjectLike | any; - requestBodyEncoding?: Record; - queryParameters?: QueryParameters | undefined; + readonly httpMethod: HttpMethod; + readonly url: string; + readonly headers: ObjectLike | any; + readonly requestBody?: ObjectLike | any; + readonly requestBodyEncoding?: Record; + readonly queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; From 596e75c38a23eb2bbebbda76d1d1f438c4fd88b8 Mon Sep 17 00:00:00 2001 From: "K.Himeno" <6715229+Himenon@users.noreply.github.com> Date: Wed, 17 May 2023 21:20:21 +0900 Subject: [PATCH 5/5] chore: update --- .../_shared/ApiClientInterface.ts | 10 ++-- .../__snapshots__/argo-rollout-test.ts.snap | 10 ++-- .../class/__snapshots__/format.domain.ts.snap | 10 ++-- .../__snapshots__/kubernetes-test.ts.snap | 10 ++-- .../multi-type.test.domain.ts.snap | 10 ++-- .../__snapshots__/spit-code-test.ts.snap | 10 ++-- .../__snapshots__/template-only-test.ts.snap | 30 +++++----- .../typedef-with-template-test.ts.snap | 60 +++++++++---------- .../unknown-schema-domain-test.ts.snap | 10 ++-- .../__snapshots__/argo-rollout-test.ts.snap | 10 ++-- .../__snapshots__/format.domain.ts.snap | 10 ++-- .../__snapshots__/kubernetes-test.ts.snap | 10 ++-- .../multi-type.test.domain.ts.snap | 10 ++-- .../__snapshots__/spit-code-test.ts.snap | 10 ++-- .../__snapshots__/template-only-test.ts.snap | 30 +++++----- .../typedef-with-template-test.ts.snap | 60 +++++++++---------- .../unknown-schema-domain-test.ts.snap | 10 ++-- 17 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/code-templates/_shared/ApiClientInterface.ts b/src/code-templates/_shared/ApiClientInterface.ts index 72bd716c..29632106 100644 --- a/src/code-templates/_shared/ApiClientInterface.ts +++ b/src/code-templates/_shared/ApiClientInterface.ts @@ -124,7 +124,7 @@ const createEncodingInterface = (factory: TsGenerator.Factory.Type) => { }), factory.PropertySignature.create({ name: "headers", - readOnly: true, + readOnly: false, optional: true, type: factory.TypeReferenceNode.create({ name: "Record", @@ -251,26 +251,26 @@ export const create = ( }), factory.PropertySignature.create({ name: `headers`, - readOnly: true, + readOnly: false, optional: false, type: objectLikeOrAnyType, }), factory.PropertySignature.create({ name: `requestBody`, - readOnly: true, + readOnly: false, optional: true, type: objectLikeOrAnyType, }), factory.PropertySignature.create({ name: `requestBodyEncoding`, - readOnly: true, + readOnly: false, optional: true, type: factory.TypeReferenceNode.create({ name: "Record" }), }), factory.PropertySignature.create({ name: `queryParameters`, optional: true, - readOnly: true, + readOnly: false, type: factory.UnionTypeNode.create({ typeNodes: [ factory.TypeReferenceNode.create({ diff --git a/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap b/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap index c96e7267..1c1e9ec8 100644 --- a/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap +++ b/test/__tests__/class/__snapshots__/argo-rollout-test.ts.snap @@ -3828,7 +3828,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -3836,10 +3836,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/format.domain.ts.snap b/test/__tests__/class/__snapshots__/format.domain.ts.snap index b7638c2e..833e5487 100644 --- a/test/__tests__/class/__snapshots__/format.domain.ts.snap +++ b/test/__tests__/class/__snapshots__/format.domain.ts.snap @@ -45,7 +45,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -53,10 +53,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap b/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap index c4954bc0..852902a0 100644 --- a/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap +++ b/test/__tests__/class/__snapshots__/kubernetes-test.ts.snap @@ -41027,7 +41027,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -41035,10 +41035,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap b/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap index bbc6bed6..1280b2ec 100644 --- a/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap +++ b/test/__tests__/class/__snapshots__/multi-type.test.domain.ts.snap @@ -44,7 +44,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -52,10 +52,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/spit-code-test.ts.snap b/test/__tests__/class/__snapshots__/spit-code-test.ts.snap index bee919c2..14afe8b6 100644 --- a/test/__tests__/class/__snapshots__/spit-code-test.ts.snap +++ b/test/__tests__/class/__snapshots__/spit-code-test.ts.snap @@ -125,7 +125,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -133,10 +133,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/template-only-test.ts.snap b/test/__tests__/class/__snapshots__/template-only-test.ts.snap index 7b5a6aa4..d310d5bc 100644 --- a/test/__tests__/class/__snapshots__/template-only-test.ts.snap +++ b/test/__tests__/class/__snapshots__/template-only-test.ts.snap @@ -62,7 +62,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -70,10 +70,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -252,7 +252,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -260,10 +260,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -406,7 +406,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -414,10 +414,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; diff --git a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap index 82f0a46f..b4d53b67 100644 --- a/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/class/__snapshots__/typedef-with-template-test.ts.snap @@ -411,7 +411,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -419,10 +419,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -600,7 +600,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -608,10 +608,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1062,7 +1062,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1070,10 +1070,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -1239,7 +1239,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1247,10 +1247,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1401,7 +1401,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1409,10 +1409,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1627,7 +1627,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1635,10 +1635,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap b/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap index 7af031d4..1563144d 100644 --- a/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap +++ b/test/__tests__/class/__snapshots__/unknown-schema-domain-test.ts.snap @@ -43,7 +43,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -51,10 +51,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap b/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap index 4be21120..e409a020 100644 --- a/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/argo-rollout-test.ts.snap @@ -3828,7 +3828,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -3836,10 +3836,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/format.domain.ts.snap b/test/__tests__/functional/__snapshots__/format.domain.ts.snap index c794699c..a90dd4cc 100644 --- a/test/__tests__/functional/__snapshots__/format.domain.ts.snap +++ b/test/__tests__/functional/__snapshots__/format.domain.ts.snap @@ -45,7 +45,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -53,10 +53,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap b/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap index dac1510f..2ec7f7bd 100644 --- a/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/kubernetes-test.ts.snap @@ -41027,7 +41027,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -41035,10 +41035,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap b/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap index 227ae658..d22eaa04 100644 --- a/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap +++ b/test/__tests__/functional/__snapshots__/multi-type.test.domain.ts.snap @@ -44,7 +44,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -52,10 +52,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap b/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap index 198b9949..4a9dcd39 100644 --- a/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/spit-code-test.ts.snap @@ -125,7 +125,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -133,10 +133,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/template-only-test.ts.snap b/test/__tests__/functional/__snapshots__/template-only-test.ts.snap index 29000390..8bc9d1ce 100644 --- a/test/__tests__/functional/__snapshots__/template-only-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/template-only-test.ts.snap @@ -62,7 +62,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -70,10 +70,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -255,7 +255,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -263,10 +263,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -412,7 +412,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -420,10 +420,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; diff --git a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap index 254950f8..bd95e7ed 100644 --- a/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/typedef-with-template-test.ts.snap @@ -411,7 +411,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -419,10 +419,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -603,7 +603,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -611,10 +611,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1068,7 +1068,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1076,10 +1076,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => T; @@ -1248,7 +1248,7 @@ export type SuccessResponses = void; export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1256,10 +1256,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1412,7 +1412,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1420,10 +1420,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; @@ -1641,7 +1641,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -1649,10 +1649,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise; diff --git a/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap b/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap index 790f591d..90738869 100644 --- a/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap +++ b/test/__tests__/functional/__snapshots__/unknown-schema-domain-test.ts.snap @@ -43,7 +43,7 @@ export namespace ErrorResponse { } export interface Encoding { readonly contentType?: string; - readonly headers?: Record; + headers?: Record; readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; readonly explode?: boolean; readonly allowReserved?: boolean; @@ -51,10 +51,10 @@ export interface Encoding { export interface RequestArgs { readonly httpMethod: HttpMethod; readonly url: string; - readonly headers: ObjectLike | any; - readonly requestBody?: ObjectLike | any; - readonly requestBodyEncoding?: Record; - readonly queryParameters?: QueryParameters | undefined; + headers: ObjectLike | any; + requestBody?: ObjectLike | any; + requestBodyEncoding?: Record; + queryParameters?: QueryParameters | undefined; } export interface ApiClient { request: (requestArgs: RequestArgs, options?: RequestOption) => Promise;