@@ -116,13 +116,13 @@ export function addJSDocComment(schemaObject: AnnotatedSchemaObject, node: ts.Pr
116
116
}
117
117
118
118
/** Convert OpenAPI ref into TS indexed access node (ex: `components["schemas"]["Foo"]`) */
119
- export function oapiRef ( path : string , deepRequired = false ) : ts . TypeNode {
119
+ export function oapiRef ( path : string , deep = false ) : ts . TypeNode {
120
120
const { pointer } = parseRef ( path ) ;
121
121
if ( pointer . length === 0 ) {
122
122
throw new Error ( `Error parsing $ref: ${ path } . Is this a valid $ref?` ) ;
123
123
}
124
124
let t : ts . TypeReferenceNode | ts . IndexedAccessTypeNode = ts . factory . createTypeReferenceNode (
125
- ts . factory . createIdentifier ( deepRequired ? `DeepRequired <${ String ( pointer [ 0 ] ) } >` : String ( pointer [ 0 ] ) ) ,
125
+ ts . factory . createIdentifier ( deep ? `FlattenedDeepRequired <${ String ( pointer [ 0 ] ) } >` : String ( pointer [ 0 ] ) ) ,
126
126
) ;
127
127
if ( pointer . length > 1 ) {
128
128
for ( let i = 1 ; i < pointer . length ; i ++ ) {
@@ -253,10 +253,10 @@ export function tsArrayLiteralExpression(
253
253
254
254
if (
255
255
options ?. injectFooter &&
256
- ! options . injectFooter . some ( ( node ) => ts . isTypeAliasDeclaration ( node ) && node ?. name ?. escapedText === "DeepRequired " )
256
+ ! options . injectFooter . some ( ( node ) => ts . isTypeAliasDeclaration ( node ) && node ?. name ?. escapedText === "FlattenedDeepRequired " )
257
257
) {
258
258
const helper = stringToAST (
259
- "type DeepRequired <T> = { [K in keyof T]: Required<DeepRequired <T[K]>> };" ,
259
+ "type FlattenedDeepRequired <T> = { [K in keyof T]: Required<FlattenedDeepRequired <T[K] extends unknown[] ? T[K][number] : T[K]>>; };" ,
260
260
) [ 0 ] as any ;
261
261
options . injectFooter . push ( helper ) ;
262
262
}
0 commit comments