@compas/code-gen
Version:
Generate various boring parts of your server
26 lines (25 loc) • 1.23 kB
TypeScript
/**
* Execute a function based on the target language defined in the context.
*
* @template {(...args: any) => any} F
*
* @param {import("../generate.js").GenerateContext} generateContext
* @param {Record<import("../generated/common/types.js").StructureGenerateOptions["targetLanguage"], F|(() =>
* void)>} functions
* @param {[...Parameters<F>]} args
* @returns {ReturnType<F>|undefined}
*/
export function targetLanguageSwitch<F extends (...args: any) => any>(generateContext: import("../generate.js").GenerateContext, functions: Record<import("../generated/common/types.js").StructureGenerateOptions["targetLanguage"], 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;