@baseplate-dev/core-generators
Version:
Core generators for Baseplate
23 lines • 1.38 kB
TypeScript
import type { BuilderAction, WriteFileOptions } from '@baseplate-dev/sync';
import type { InferTextTemplateVariablesFromTemplate, TextTemplateFile, TextTemplateGroup } from './types.js';
type HasVariables<T extends TextTemplateFile> = keyof InferTextTemplateVariablesFromTemplate<T> extends never ? false : true;
type InferTextTemplateVariablesFromTemplateGroup<T extends TextTemplateGroup> = {
[K in keyof T as HasVariables<T[K]> extends true ? K : never]: InferTextTemplateVariablesFromTemplate<T[K]>;
};
interface RenderTextTemplateGroupActionInputBase<T extends TextTemplateGroup> {
group: T;
paths: {
[K in keyof T]: string;
};
options?: {
[K in keyof T]?: Omit<WriteFileOptions, 'templateMetadata'>;
};
}
export type RenderTextTemplateGroupActionInput<T extends TextTemplateGroup = TextTemplateGroup> = RenderTextTemplateGroupActionInputBase<T> & (keyof InferTextTemplateVariablesFromTemplateGroup<T> extends never ? Partial<{
variables: InferTextTemplateVariablesFromTemplateGroup<T>;
}> : {
variables: InferTextTemplateVariablesFromTemplateGroup<T>;
});
export declare function renderTextTemplateGroupAction<T extends TextTemplateGroup = TextTemplateGroup>({ group, paths, variables, options, }: RenderTextTemplateGroupActionInput<T>): BuilderAction;
export {};
//# sourceMappingURL=render-text-template-group-action.d.ts.map