-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
Description
readOnly/writeOnly fields for Schema Object properties is not reflected in the output type information.
Specification of readOnly/writeOnly is here.
Example input:
openapi: 3.0.3
info:
title: example
version: 0.1.0
servers:
- url: https://example.com/v1
paths:
/path:
put:
summary: Put Example
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ExampleObject"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/ExampleObject"
components:
schemas:
ExampleObject:
type: object
required:
- id
- name
- value
properties:
id:
type: integer
readOnly: true
name:
type: string
value:
type: integer
writeOnly: trueI got
api/@types/index.ts:
/* eslint-disable */
export type ExampleObject = {
id: number
name: string
value: number
}api/path/index.ts:
/* eslint-disable */
import type * as Types from '../@types'
export type Methods = {
put: {
status: 200
/** Success */
resBody: Types.ExampleObject
reqBody: Types.ExampleObject
}
}The id is readOnly: true and therefore not needed in the request, while the value is writeOnly: true and therefore not needed in the response.
Describe the solution you'd like
Expected output is like below:
/* eslint-disable */
import type * as Types from '../@types'
export type Methods = {
put: {
status: 200
/** Success */
resBody: Omit<Types.ExampleObject, "value">
reqBody: Omit<Types.ExampleObject, "id">
}
}Omit the writeOnly properties for the resBody type, and conversely, omit the readOnly properties for the reqBody type.
Describe alternatives you've considered
Additional context
Environment
- Package version: v0.21.0
aku11i, ebiyu, nabe1653, nobukatsu and zomysan
Metadata
Metadata
Assignees
Labels
No labels