11import type { GlobalContext , ParameterObject , ReferenceObject } from "../types.js" ;
2- import { comment , tsReadonly } from "../utils.js" ;
2+ import { comment , getEntries , tsReadonly } from "../utils.js" ;
33import { transformSchemaObj } from "./schema.js" ;
44
55interface TransformParametersOptions extends GlobalContext {
@@ -19,11 +19,16 @@ export function transformParametersArray(
1919
2020 // sort into map
2121 const mappedParams : Record < string , Record < string , ParameterObject > > = { } ;
22- for ( const paramObj of parameters as any [ ] ) {
23- if ( paramObj . $ref && globalParameters ) {
24- const paramName = paramObj . $ref . split ( '["' ) . pop ( ) . replace ( PARAM_END_RE , "" ) ; // take last segment
22+ for ( const paramObj of parameters ) {
23+ if ( "$ref" in paramObj && paramObj . $ref && globalParameters ) {
24+ // take last segment
25+ let paramName = paramObj . $ref . split ( '["' ) . pop ( ) ;
26+ paramName = String ( paramName ) . replace ( PARAM_END_RE , "" ) ;
27+
2528 if ( globalParameters [ paramName ] ) {
26- const reference = globalParameters [ paramName ] as any ;
29+ const reference = globalParameters [ paramName ] ;
30+ if ( ! reference . in ) continue ;
31+
2732 if ( ! mappedParams [ reference . in ] ) mappedParams [ reference . in ] = { } ;
2833 switch ( ctx . version ) {
2934 case 3 : {
@@ -36,7 +41,7 @@ export function transformParametersArray(
3641 case 2 : {
3742 mappedParams [ reference . in ] [ reference . name || paramName ] = {
3843 ...reference ,
39- $ref : paramObj . $ref ,
44+ ... ( " $ref" in paramObj ? { $ref : paramObj . $ref } : null ) ,
4045 } ;
4146 break ;
4247 }
@@ -45,15 +50,16 @@ export function transformParametersArray(
4550 continue ;
4651 }
4752
53+ if ( ! ( "in" in paramObj ) ) continue ;
4854 if ( ! paramObj . in || ! paramObj . name ) continue ;
4955 if ( ! mappedParams [ paramObj . in ] ) mappedParams [ paramObj . in ] = { } ;
5056 mappedParams [ paramObj . in ] [ paramObj . name ] = paramObj ;
5157 }
5258
5359 // transform output
54- for ( const [ paramIn , paramGroup ] of Object . entries ( mappedParams ) ) {
60+ for ( const [ paramIn , paramGroup ] of getEntries ( mappedParams , ctx ) ) {
5561 output += ` ${ readonly } ${ paramIn } : {\n` ; // open in
56- for ( const [ paramName , paramObj ] of Object . entries ( paramGroup ) ) {
62+ for ( const [ paramName , paramObj ] of getEntries ( paramGroup , ctx ) ) {
5763 let paramComment = "" ;
5864 if ( paramObj . deprecated ) paramComment += `@deprecated ` ;
5965 if ( paramObj . description ) paramComment += paramObj . description ;
0 commit comments