improve return types of createTemplateFilter() and createTemplateGlobalFunction();

accommodate in ScaffolderTemplatingExtensionPoint

Signed-off-by: Matt Benson <gudnabrsam@gmail.com>
This commit is contained in:
Matt Benson
2025-03-12 00:21:17 -05:00
parent 403bb43d3d
commit 7f56c442aa
4 changed files with 14 additions and 10 deletions
+7 -5
View File
@@ -91,12 +91,12 @@ export type CreatedTemplateGlobalValue<T extends JsonValue = JsonValue> = {
// @alpha
export const createTemplateFilter: <
TSchema extends TemplateFilterSchema<any, any> | undefined,
TFunctionSchema extends TSchema extends TemplateFilterSchema<any, any>
TFilterSchema extends TSchema extends TemplateFilterSchema<any, any>
? z.infer<ReturnType<TSchema>>
: (arg: JsonValue, ...rest: JsonValue[]) => JsonValue | undefined,
>(
filter: CreatedTemplateFilter<TSchema, TFunctionSchema>,
) => CreatedTemplateFilter<unknown, unknown>;
filter: CreatedTemplateFilter<TSchema, TFilterSchema>,
) => CreatedTemplateFilter<TSchema, TFilterSchema>;
// @alpha
export const createTemplateGlobalFunction: <
@@ -106,7 +106,7 @@ export const createTemplateGlobalFunction: <
: (...args: JsonValue[]) => JsonValue | undefined,
>(
fn: CreatedTemplateGlobalFunction<TSchema, TFilterSchema>,
) => CreatedTemplateGlobalFunction<any, any>;
) => CreatedTemplateGlobalFunction<TSchema, TFilterSchema>;
// @alpha
export const createTemplateGlobalValue: (
@@ -156,7 +156,9 @@ export const scaffolderTaskBrokerExtensionPoint: ExtensionPoint<ScaffolderTaskBr
export interface ScaffolderTemplatingExtensionPoint {
// (undocumented)
addTemplateFilters(
filters: Record<string, TemplateFilter_2> | CreatedTemplateFilter[],
filters:
| Record<string, TemplateFilter_2>
| CreatedTemplateFilter<unknown, unknown>[],
): void;
// (undocumented)
addTemplateGlobals(
@@ -24,9 +24,9 @@ import { z } from 'zod';
*/
export const createTemplateFilter = <
TSchema extends TemplateFilterSchema<any, any> | undefined,
TFunctionSchema extends TSchema extends TemplateFilterSchema<any, any>
TFilterSchema extends TSchema extends TemplateFilterSchema<any, any>
? z.infer<ReturnType<TSchema>>
: (arg: JsonValue, ...rest: JsonValue[]) => JsonValue | undefined,
>(
filter: CreatedTemplateFilter<TSchema, TFunctionSchema>,
): CreatedTemplateFilter<unknown, unknown> => filter;
filter: CreatedTemplateFilter<TSchema, TFilterSchema>,
): CreatedTemplateFilter<TSchema, TFilterSchema> => filter;
@@ -45,4 +45,4 @@ export const createTemplateGlobalFunction = <
: (...args: JsonValue[]) => JsonValue | undefined,
>(
fn: CreatedTemplateGlobalFunction<TSchema, TFilterSchema>,
): CreatedTemplateGlobalFunction<any, any> => fn;
): CreatedTemplateGlobalFunction<TSchema, TFilterSchema> => fn;
+3 -1
View File
@@ -73,7 +73,9 @@ export const scaffolderTaskBrokerExtensionPoint =
*/
export interface ScaffolderTemplatingExtensionPoint {
addTemplateFilters(
filters: Record<string, TemplateFilter> | CreatedTemplateFilter[],
filters:
| Record<string, TemplateFilter>
| CreatedTemplateFilter<unknown, unknown>[],
): void;
addTemplateGlobals(