@kubb/plugin-react-query
Version:
React Query hooks generator plugin for Kubb, creating type-safe API client hooks from OpenAPI specifications for React applications.
388 lines (387 loc) • 11.2 kB
TypeScript
import { Infinite, Operation, OperationSchemas, PluginReactQuery, Transformer } from "./types-CaU9WTtM.js";
import { ReactNode } from "react";
//#region ../react/src/utils/getFunctionParams.d.ts
type Param = {
/**
* `object` will return the pathParams as an object.
*
* `inline` will return the pathParams as comma separated params.
* @default `'inline'`
* @private
*/
mode?: 'object' | 'inline' | 'inlineSpread';
type?: 'string' | 'number' | (string & {});
optional?: boolean;
/**
* @example test = "default"
*/
default?: string;
/**
* Used for no TypeScript(with mode object)
* @example test: "default"
*/
value?: string;
children?: Params;
};
type Params = Record<string, Param | undefined>;
type Options = {
type: 'constructor' | 'call' | 'object' | 'objectValue';
transformName?: (name: string) => string;
transformType?: (type: string) => string;
};
declare class FunctionParams {
#private;
static factory(params: Params): FunctionParams;
constructor(params: Params);
get params(): Params;
get flatParams(): Params;
toCall({
transformName,
transformType
}?: Pick<Options, 'transformName' | 'transformType'>): string;
toObject(): string;
toObjectValue(): string;
toConstructor(): string;
}
//#endregion
//#region src/components/InfiniteQuery.d.ts
type Props$8 = {
/**
* Name of the function
*/
name: string;
queryOptionsName: string;
queryKeyName: string;
queryKeyTypeName: string;
typeSchemas: OperationSchemas;
operation: Operation;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
queryParam?: Infinite['queryParam'];
};
type GetParamsProps$7 = {
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
typeSchemas: OperationSchemas;
pageParamGeneric: string;
};
declare function InfiniteQuery({
name,
queryKeyTypeName,
queryOptionsName,
queryKeyName,
paramsType,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas,
operation,
queryParam
}: Props$8): ReactNode;
declare namespace InfiniteQuery {
var getParams: ({
paramsType,
paramsCasing,
pathParamsType,
typeSchemas,
pageParamGeneric
}: GetParamsProps$7) => FunctionParams;
}
//#endregion
//#region src/components/InfiniteQueryOptions.d.ts
type Props$7 = {
name: string;
clientName: string;
queryKeyName: string;
typeSchemas: OperationSchemas;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
initialPageParam: Infinite['initialPageParam'];
cursorParam: Infinite['cursorParam'];
queryParam: Infinite['queryParam'];
};
type GetParamsProps$6 = {
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
typeSchemas: OperationSchemas;
};
declare function InfiniteQueryOptions({
name,
clientName,
initialPageParam,
cursorParam,
typeSchemas,
paramsCasing,
paramsType,
dataReturnType,
pathParamsType,
queryParam,
queryKeyName
}: Props$7): ReactNode;
declare namespace InfiniteQueryOptions {
var getParams: ({
paramsType,
paramsCasing,
pathParamsType,
typeSchemas
}: GetParamsProps$6) => FunctionParams;
}
//#endregion
//#region src/components/Mutation.d.ts
type Props$6 = {
/**
* Name of the function
*/
name: string;
typeName: string;
mutationOptionsName: string;
mutationKeyName: string;
typeSchemas: OperationSchemas;
operation: Operation;
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
};
declare function Mutation({
name,
mutationOptionsName,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas,
operation,
mutationKeyName
}: Props$6): ReactNode;
//#endregion
//#region src/components/MutationKey.d.ts
type Props$5 = {
name: string;
typeName: string;
typeSchemas: OperationSchemas;
operation: Operation;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
transformer: Transformer | undefined;
};
type GetParamsProps$5 = {
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
typeSchemas: OperationSchemas;
};
declare function MutationKey({
name,
typeSchemas,
pathParamsType,
paramsCasing,
operation,
typeName,
transformer
}: Props$5): ReactNode;
declare namespace MutationKey {
var getParams: ({}: GetParamsProps$5) => FunctionParams;
var getTransformer: Transformer;
}
//#endregion
//#region src/components/MutationOptions.d.ts
type Props$4 = {
name: string;
clientName: string;
mutationKeyName: string;
typeSchemas: OperationSchemas;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
};
type GetParamsProps$4 = {
typeSchemas: OperationSchemas;
};
declare function MutationOptions({
name,
clientName,
dataReturnType,
typeSchemas,
paramsCasing,
paramsType,
pathParamsType,
mutationKeyName
}: Props$4): any;
declare namespace MutationOptions {
var getParams: ({
typeSchemas
}: GetParamsProps$4) => FunctionParams;
}
//#endregion
//#region src/components/Query.d.ts
type Props$3 = {
/**
* Name of the function
*/
name: string;
queryOptionsName: string;
queryKeyName: string;
queryKeyTypeName: string;
typeSchemas: OperationSchemas;
operation: Operation;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
};
type GetParamsProps$3 = {
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
typeSchemas: OperationSchemas;
};
declare function Query({
name,
queryKeyTypeName,
queryOptionsName,
queryKeyName,
paramsType,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas,
operation
}: Props$3): ReactNode;
declare namespace Query {
var getParams: ({
paramsType,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas
}: GetParamsProps$3) => FunctionParams;
}
//#endregion
//#region src/components/QueryKey.d.ts
type Props$2 = {
name: string;
typeName: string;
typeSchemas: OperationSchemas;
operation: Operation;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
transformer: Transformer | undefined;
};
type GetParamsProps$2 = {
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
typeSchemas: OperationSchemas;
};
declare function QueryKey({
name,
typeSchemas,
paramsCasing,
pathParamsType,
operation,
typeName,
transformer
}: Props$2): ReactNode;
declare namespace QueryKey {
var getParams: ({
pathParamsType,
paramsCasing,
typeSchemas
}: GetParamsProps$2) => FunctionParams;
var getTransformer: Transformer;
}
//#endregion
//#region src/components/QueryOptions.d.ts
type Props$1 = {
name: string;
clientName: string;
queryKeyName: string;
typeSchemas: OperationSchemas;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
};
type GetParamsProps$1 = {
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
typeSchemas: OperationSchemas;
};
declare function QueryOptions({
name,
clientName,
dataReturnType,
typeSchemas,
paramsCasing,
paramsType,
pathParamsType,
queryKeyName
}: Props$1): any;
declare namespace QueryOptions {
var getParams: ({
paramsType,
paramsCasing,
pathParamsType,
typeSchemas
}: GetParamsProps$1) => FunctionParams;
}
//#endregion
//#region src/components/SuspenseQuery.d.ts
type Props = {
/**
* Name of the function
*/
name: string;
queryOptionsName: string;
queryKeyName: string;
queryKeyTypeName: string;
typeSchemas: OperationSchemas;
operation: Operation;
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
};
type GetParamsProps = {
paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing'];
paramsType: PluginReactQuery['resolvedOptions']['paramsType'];
pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType'];
dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType'];
typeSchemas: OperationSchemas;
};
/**
* Generates a strongly-typed React Query Suspense hook function for an OpenAPI operation.
*
* The generated function wraps `useSuspenseQuery`, providing type-safe parameters and return types based on the supplied OpenAPI schemas and configuration.
*
* @returns A React component source node containing the generated query function.
*/
declare function SuspenseQuery({
name,
queryKeyTypeName,
queryOptionsName,
queryKeyName,
paramsType,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas,
operation
}: Props): ReactNode;
declare namespace SuspenseQuery {
var getParams: ({
paramsType,
paramsCasing,
pathParamsType,
dataReturnType,
typeSchemas
}: GetParamsProps) => FunctionParams;
}
//#endregion
export { InfiniteQuery, InfiniteQueryOptions, Mutation, MutationKey, MutationOptions, Query, QueryKey, QueryOptions, SuspenseQuery };
//# sourceMappingURL=components.d.ts.map