@@ -32,69 +32,81 @@ export const ReservedModelNames: ReservedName[] = [
3232 { name : "as" , reservedFor : [ NameType . Parameter ] } ,
3333 { name : "assert" , reservedFor : [ NameType . Parameter ] } ,
3434 { name : "async" , reservedFor : [ NameType . Parameter ] } ,
35- { name : "await" , reservedFor : [ NameType . Parameter ] } ,
35+ { name : "await" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
3636 { name : "boolean" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
37- { name : "break" , reservedFor : [ NameType . Parameter ] } ,
38- { name : "case" , reservedFor : [ NameType . Parameter ] } ,
39- { name : "catch" , reservedFor : [ NameType . Parameter ] } ,
40- { name : "class" , reservedFor : [ NameType . Parameter ] } ,
37+ { name : "break" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
38+ { name : "case" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
39+ { name : "catch" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
40+ { name : "class" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
4141 { name : "const" , reservedFor : [ NameType . Parameter ] } ,
4242 { name : "constructor" , reservedFor : [ NameType . Parameter ] } ,
43- { name : "continue" , reservedFor : [ NameType . Parameter ] } ,
43+ { name : "continue" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
4444 { name : "date" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
45- { name : "debugger" , reservedFor : [ NameType . Parameter ] } ,
45+ { name : "debugger" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
4646 { name : "declare" , reservedFor : [ NameType . Parameter ] } ,
47- { name : "default" , reservedFor : [ NameType . Parameter ] } ,
48- { name : "delete" , reservedFor : [ NameType . Parameter , NameType . Operation ] } ,
49- { name : "do" , reservedFor : [ NameType . Parameter ] } ,
47+ { name : "default" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
48+ {
49+ name : "delete" ,
50+ reservedFor : [ NameType . Parameter , NameType . Operation , NameType . Method ]
51+ } ,
52+ { name : "do" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
5053 { name : "else" , reservedFor : [ NameType . Parameter ] } ,
5154 { name : "enum" , reservedFor : [ NameType . Parameter ] } ,
5255 { name : "error" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
53- { name : "export" , reservedFor : [ NameType . Parameter , NameType . Operation ] } ,
56+ {
57+ name : "export" ,
58+ reservedFor : [ NameType . Parameter , NameType . Operation , NameType . Method ]
59+ } ,
5460 { name : "extends" , reservedFor : [ NameType . Parameter ] } ,
5561 { name : "false" , reservedFor : [ NameType . Parameter ] } ,
56- { name : "finally" , reservedFor : [ NameType . Parameter ] } ,
57- { name : "for" , reservedFor : [ NameType . Parameter ] } ,
62+ { name : "finally" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
63+ { name : "for" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
5864 { name : "from" , reservedFor : [ NameType . Parameter ] } ,
59- { name : "function" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
65+ {
66+ name : "function" ,
67+ reservedFor : [ NameType . Parameter , ...Newable , NameType . Method ]
68+ } ,
6069 { name : "get" , reservedFor : [ NameType . Parameter ] } ,
6170 { name : "if" , reservedFor : [ NameType . Parameter ] } ,
6271 { name : "implements" , reservedFor : [ NameType . Parameter ] } ,
6372 { name : "import" , reservedFor : [ NameType . Parameter ] } ,
64- { name : "in" , reservedFor : [ NameType . Parameter ] } ,
65- { name : "instanceof" , reservedFor : [ NameType . Parameter ] } ,
73+ { name : "in" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
74+ { name : "instanceof" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
6675 { name : "interface" , reservedFor : [ NameType . Parameter ] } ,
67- { name : "let" , reservedFor : [ NameType . Parameter ] } ,
76+ { name : "let" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
6877 { name : "module" , reservedFor : [ NameType . Parameter ] } ,
69- { name : "new" , reservedFor : [ NameType . Parameter ] } ,
70- { name : "null" , reservedFor : [ NameType . Parameter ] } ,
78+ { name : "new" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
79+ { name : "null" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
7180 { name : "number" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
7281 { name : "of" , reservedFor : [ NameType . Parameter ] } ,
7382 { name : "package" , reservedFor : [ NameType . Parameter ] } ,
7483 { name : "private" , reservedFor : [ NameType . Parameter ] } ,
7584 { name : "protected" , reservedFor : [ NameType . Parameter ] } ,
76- { name : "public" , reservedFor : [ NameType . Parameter , NameType . Operation ] } ,
85+ {
86+ name : "public" ,
87+ reservedFor : [ NameType . Parameter , NameType . Operation , NameType . Method ]
88+ } ,
7789 { name : "requestoptions" , reservedFor : [ NameType . Parameter ] } ,
78- { name : "require" , reservedFor : [ NameType . Parameter ] } ,
90+ { name : "require" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
7991 { name : "return" , reservedFor : [ NameType . Parameter ] } ,
8092 { name : "set" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
81- { name : "static" , reservedFor : [ NameType . Parameter ] } ,
93+ { name : "static" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
8294 { name : "string" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
8395 { name : "super" , reservedFor : [ NameType . Parameter ] } ,
84- { name : "switch" , reservedFor : [ NameType . Parameter ] } ,
96+ { name : "switch" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
8597 { name : "symbol" , reservedFor : [ NameType . Parameter , ...Newable ] } ,
8698 { name : "this" , reservedFor : [ NameType . Parameter ] } ,
87- { name : "throw" , reservedFor : [ NameType . Parameter ] } ,
99+ { name : "throw" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
88100 { name : "true" , reservedFor : [ NameType . Parameter ] } ,
89101 { name : "try" , reservedFor : [ NameType . Parameter ] } ,
90102 { name : "type" , reservedFor : [ NameType . Parameter ] } ,
91103 { name : "typeof" , reservedFor : [ NameType . Parameter ] } ,
92- { name : "var" , reservedFor : [ NameType . Parameter ] } ,
104+ { name : "var" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
93105 { name : "void" , reservedFor : [ NameType . Parameter ] } ,
94- { name : "while" , reservedFor : [ NameType . Parameter ] } ,
106+ { name : "while" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
95107 { name : "with" , reservedFor : [ NameType . Parameter ] } ,
96- { name : "yield" , reservedFor : [ NameType . Parameter ] } ,
97- { name : "arguments" , reservedFor : [ NameType . Parameter ] } ,
108+ { name : "yield" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
109+ { name : "arguments" , reservedFor : [ NameType . Parameter , NameType . Method ] } ,
98110 { name : "global" , reservedFor : [ ...Newable ] } ,
99111 // reserve client for codegen
100112 { name : "client" , reservedFor : [ NameType . Parameter ] } ,
@@ -112,30 +124,31 @@ export function guardReservedNames(
112124 nameType : NameType ,
113125 customReservedNames : ReservedName [ ] = [ ]
114126) : string {
115- const suffix = getSuffix ( nameType ) ;
127+ const [ prefix , suffix ] = getAffix ( nameType ) ;
116128 return [ ...ReservedModelNames , ...customReservedNames ]
117129 . filter ( ( r ) => r . reservedFor . includes ( nameType ) )
118130 . find ( ( r ) => r . name === name . toLowerCase ( ) )
119- ? `${ name } ${ suffix } `
131+ ? `${ prefix } ${ name } ${ suffix } `
120132 : name ;
121133}
122134
123- function getSuffix ( nameType ?: NameType ) {
135+ function getAffix ( nameType ?: NameType ) : [ string , string ] {
124136 switch ( nameType ) {
125137 case NameType . File :
126138 case NameType . Operation :
127- return "" ;
139+ return [ "" , "" ] ;
128140 case NameType . Property :
129- return " Property";
141+ return [ "" , " Property"] ;
130142 case NameType . OperationGroup :
131- return " Operations";
143+ return [ "" , " Operations"] ;
132144 case NameType . Parameter :
133- return "Param" ;
145+ return [ "" , "Param" ] ;
146+ case NameType . Method :
147+ return [ "$" , "" ] ;
134148 case NameType . Class :
135149 case NameType . Interface :
136- case NameType . Method :
137150 default :
138- return " Model";
151+ return [ "" , " Model"] ;
139152 }
140153}
141154
0 commit comments