@@ -121,20 +121,42 @@ export async function generateApi(
121
121
) ,
122
122
] ) ;
123
123
124
+ const isUsingFetchBaseQuery = baseQuery === 'fetchBaseQuery' ;
125
+
126
+ function getBasePackageImportsFromOptions ( ) {
127
+ return hooks
128
+ ? {
129
+ ...( isUsingFetchBaseQuery ? { fetchBaseQuery : 'fetchBaseQuery' } : { } ) ,
130
+ }
131
+ : {
132
+ createApi : 'createApi' ,
133
+ ...( isUsingFetchBaseQuery ? { fetchBaseQuery : 'fetchBaseQuery' } : { } ) ,
134
+ } ;
135
+ }
136
+
137
+ const hasBasePackageImports = Object . keys ( getBasePackageImportsFromOptions ( ) ) . length > 0 ;
138
+
124
139
const sourceCode = printer . printNode (
125
140
ts . EmitHint . Unspecified ,
126
141
factory . createSourceFile (
127
142
[
128
- generateImportNode ( '@rtk-incubator/rtk-query' , {
129
- createApi : 'createApi' ,
130
- ...( baseQuery === 'fetchBaseQuery' ? { fetchBaseQuery : 'fetchBaseQuery' } : { } ) ,
131
- } ) ,
143
+ // If hooks are specified, we need to import them from the react entry point in RTKQ >= 0.3
144
+ ...( hooks
145
+ ? [
146
+ generateImportNode ( '@rtk-incubator/rtk-query/react' , {
147
+ createApi : 'createApi' ,
148
+ } ) ,
149
+ ]
150
+ : [ ] ) ,
151
+ ...( hasBasePackageImports
152
+ ? [ generateImportNode ( '@rtk-incubator/rtk-query' , getBasePackageImportsFromOptions ( ) ) ]
153
+ : [ ] ) ,
132
154
...( customBaseQueryNode ? [ customBaseQueryNode ] : [ ] ) ,
133
155
generateCreateApiCall ( {
134
156
exportName,
135
157
reducerPath,
136
158
createApiFn : factory . createIdentifier ( 'createApi' ) ,
137
- baseQuery : baseQuery === 'fetchBaseQuery' ? fetchBaseQueryCall : factory . createIdentifier ( baseQuery ) ,
159
+ baseQuery : isUsingFetchBaseQuery ? fetchBaseQueryCall : factory . createIdentifier ( baseQuery ) ,
138
160
entityTypes : generateEntityTypes ( { v3Doc, operationDefinitions } ) ,
139
161
endpointDefinitions : factory . createObjectLiteralExpression (
140
162
operationDefinitions . map ( ( operationDefinition ) =>
0 commit comments