@compas/code-gen
Version:
Generate various boring parts of your server
38 lines (37 loc) • 1.22 kB
TypeScript
/**
* Execute a function based on the target language defined in the context.
*
* @template {(...args: any) => any} F
*
* @param {import("../generate").GenerateContext} generateContext
* @param {Record<import("../generated/common/types").ExperimentalGenerateOptions["targetLanguage"], F|(() =>
* void)>} functions
* @param {[...Parameters<F>]} args
* @returns {ReturnType<F>|undefined}
*/
export function targetLanguageSwitch<F extends (...args: any) => any>(
generateContext: import("../generate").GenerateContext,
functions: Record<"js" | "ts", F | (() => void)>,
args: [...Parameters<F>],
): ReturnType<F> | undefined;
/**
* Execute a function based on the provided target.
*
* @template {(...args: any) => any} F
* @template {string} Targets
*
* @param {Record<Targets, F|(() =>
* void)>} functions
* @param {Targets|undefined} target
* @param {[...Parameters<F>]} args
* @returns {ReturnType<F>|undefined}
*/
export function targetCustomSwitch<
F extends (...args: any) => any,
Targets extends string,
>(
functions: Record<Targets, F | (() => void)>,
target: Targets | undefined,
args: [...Parameters<F>],
): ReturnType<F> | undefined;
//# sourceMappingURL=switcher.d.ts.map