UNPKG

@expo/schemer

Version:

Centralized scheme validation library for Expo

45 lines (44 loc) 1.58 kB
import Ajv, { ErrorObject, Options } from 'ajv'; import { ValidationError } from './Error'; type Meta = { asset?: boolean; dimensions?: { width: number; height: number; }; square?: boolean; contentTypePattern?: string; contentTypeHuman?: string; }; type SchemerOptions = Options & { rootDir?: string; }; type AssetField = { fieldPath: string; data: string; meta: Meta; }; export { SchemerError, ValidationError, ErrorCodes, ErrorCode } from './Error'; export default class Schemer { options: SchemerOptions; ajv: Ajv; schema: object; rootDir: string; manualValidationErrors: ValidationError[]; constructor(schema: object, options?: SchemerOptions); _formatAjvErrorMessage({ keyword, instancePath, params, parentSchema, data, message, }: ErrorObject): ValidationError; getErrors(): ValidationError[]; _throwOnErrors(): void; validateAll(data: any): Promise<void>; validateAssetsAsync(data: any): Promise<void>; validateSchemaAsync(data: any): Promise<void>; _validateSchemaAsync(data: any): void; _validateAssetsAsync(data: any): Promise<void>; _validateImageAsync({ fieldPath, data, meta }: AssetField): Promise<void>; _validateAssetAsync({ fieldPath, data, meta }: AssetField): Promise<void>; validateProperty(fieldPath: string, data: any): Promise<void>; validateName(name: string): Promise<void>; validateSlug(slug: string): Promise<void>; validateSdkVersion(version: string): Promise<void>; validateIcon(iconPath: string): Promise<void>; }