@compas/code-gen
Version:
Generate various boring parts of your server
69 lines (68 loc) • 2.27 kB
TypeScript
/**
* Run the API client generator.
*
* TODO: extend docs
*
* @param {import("../generate.js").GenerateContext} generateContext
*/
export function apiClientGenerator(generateContext: import("../generate.js").GenerateContext): void;
/**
* Distill the targets in to a short list of booleans.
*
* @param {import("../generate.js").GenerateContext} generateContext
* @returns {{
* isAxios: boolean,
* isFetch: boolean,
* isNode: boolean,
* isBrowser: boolean,
* isReactNative: boolean,
* useGlobalClients: boolean,
* skipResponseValidation: boolean,
* }}
*/
export function apiClientDistilledTargetInfo(generateContext: import("../generate.js").GenerateContext): {
isAxios: boolean;
isFetch: boolean;
isNode: boolean;
isBrowser: boolean;
isReactNative: boolean;
useGlobalClients: boolean;
skipResponseValidation: boolean;
};
/**
* Format the target to use.
*
* TODO: Apply this return type on other target format functions in other generators
*
* @param {import("../generate.js").GenerateContext} generateContext
* @returns {"jsAxios"|"tsAxios"|"jsFetch"|"tsFetch"}
*/
export function apiClientFormatTarget(generateContext: import("../generate.js").GenerateContext): "jsAxios" | "tsAxios" | "jsFetch" | "tsFetch";
/**
* Format the api client wrapper target.
*
* @param {import("../generate.js").GenerateContext} generateContext
* @returns {"reactQuery"|undefined}
*/
export function apiClientFormatWrapperTarget(generateContext: import("../generate.js").GenerateContext): "reactQuery" | undefined;
/**
* Check if we should run the router generator.
*
* @param {import("../generate.js").GenerateContext} generateContext
*/
export function apiClientIsEnabled(generateContext: import("../generate.js").GenerateContext): {
target: {
"library": "axios";
"targetRuntime": "node.js" | "browser" | "react-native";
"includeWrapper"?: "react-query" | undefined;
"globalClient": boolean;
} | {
"library": "fetch";
"targetRuntime": "node.js" | "browser" | "react-native";
"includeWrapper"?: "react-query" | undefined;
"globalClient": boolean;
};
responseValidation: {
"looseObjectValidation": boolean;
};
} | undefined;