import { BadRequestError } from '@squiz/dx-common-lib'; import { MANIFEST_MODELS } from '@squiz/dx-json-schema-lib'; import { JobSchemaValidationServiceFactory } from './ComponentSchemaValidationService'; type JobFunction = MANIFEST_MODELS.JobV1.JobFunction; export class JobFunctionService { private schemaValidationService = JobSchemaValidationServiceFactory.create(); /** * Asserts the provided input matches the input schema of the job function * @param input * @param jobFunctionDefinition */ public assertInputValidForJobFunction(input: unknown, jobFunctionDefinition: JobFunction) { if (input === undefined) { throw new BadRequestError(`input value for ${jobFunctionDefinition.name} cannot be undefined`); } this.schemaValidationService.validateInput(input, jobFunctionDefinition.input); } }