You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lib/src/validation/ValidationUnit.ts

24 lines
824 B

import { z } from 'zod'
import {Canonical, CanonicalDefinition} from '../service/Canonical'
import {InvalidCanonicalExportError} from '../service/CanonicalInstantiable'
import {Singleton} from '../di'
@Singleton()
export class ValidationUnit extends Canonical<z.ZodType<unknown>> {
protected appPath = ['types']
protected canonicalItem = 'type'
protected suffix = '.js'
public async initCanonicalItem(definition: CanonicalDefinition): Promise<z.Schema<unknown>> {
if ( !(definition.imported?.exZodifiedSchema) ) {
this.logging.debug('Type export is invalid: no exZodifiedSchema found')
this.logging.debug(definition.imported)
throw new InvalidCanonicalExportError(definition.originalName)
}
return definition.imported.exZodifiedSchema
}
}