import { typescriptFileProvider } from '@baseplate-dev/core-generators';
import { createGeneratorTask, createProviderType } from '@baseplate-dev/sync';
import { QUEUE_CORE_QUEUES_PATHS } from './template-paths.js';
import { QUEUE_CORE_QUEUES_TEMPLATES } from './typed-templates.js';
const queueCoreQueuesRenderers = createProviderType('queue-core-queues-renderers');
const queueCoreQueuesRenderersTask = createGeneratorTask({
    dependencies: {
        paths: QUEUE_CORE_QUEUES_PATHS.provider,
        typescriptFile: typescriptFileProvider,
    },
    exports: { queueCoreQueuesRenderers: queueCoreQueuesRenderers.export() },
    run({ paths, typescriptFile }) {
        return {
            providers: {
                queueCoreQueuesRenderers: {
                    queueRegistry: {
                        render: (options) => typescriptFile.renderTemplateFile({
                            template: QUEUE_CORE_QUEUES_TEMPLATES.queueRegistry,
                            destination: paths.queueRegistry,
                            generatorPaths: paths,
                            ...options,
                        }),
                    },
                    queueTypes: {
                        render: (options) => typescriptFile.renderTemplateFile({
                            template: QUEUE_CORE_QUEUES_TEMPLATES.queueTypes,
                            destination: paths.queueTypes,
                            ...options,
                        }),
                    },
                },
            },
        };
    },
});
export const QUEUE_CORE_QUEUES_RENDERERS = {
    provider: queueCoreQueuesRenderers,
    task: queueCoreQueuesRenderersTask,
};
//# sourceMappingURL=template-renderers.js.map