UNPKG

@baseplate-dev/sync

Version:

Library for syncing Baseplate descriptions

39 lines 1.69 kB
import { GeneratorTaskOutputBuilder } from '#src/output/generator-task-output.js'; export function createTaskTestRunner(task, { taskId = 'test-task#main', generatorId = '@baseplate-dev/test-runner:test-generator', generatorInfo = { name: 'test-generator', baseDirectory: '/', }, templateMetadataOptions, } = {}) { return { async run(dependencies, executeOnProviders) { // run init step const initResult = task.run(dependencies, { taskId, }); const providers = initResult && 'providers' in initResult ? initResult.providers : {}; await Promise.resolve(executeOnProviders?.(providers)); const builder = new GeneratorTaskOutputBuilder({ generatorInfo, generatorId, templateMetadataOptions, }); const buildResult = await Promise.resolve(initResult?.build?.(builder)); return { exports: providers, outputs: buildResult, builderOutputs: builder.output, getFileOutputContents(path) { const contents = builder.output.files.get(path)?.contents; if (!contents) return contents; return typeof contents === 'string' ? contents : contents.toString('utf8'); }, getPostWriteCommand(command) { return builder.output.postWriteCommands.find((cmd) => cmd.command === command); }, }; }, }; } //# sourceMappingURL=test-runner.js.map