import { HasTag, SomeSpec, Spec, SpecSuccess, SpecTag, SpectypesError } from './types.js' import { error } from './error.js' /** * Spec that tells babel plugin to generate a wrapper for an external validator spec. * * @param spec An external validator spec */ export const validator: ( spec: HasTag extends true ? SpectypesError<'filter', 'validator'> : HasTag extends true ? SpectypesError<'optional', 'validator'> : ItemSpec extends Spec ? { readonly "spectypes error: transformer can't be wrapped with 'validator'": never } : ItemSpec ) => Spec, 'validator', SpecSuccess> = error