UNPKG

@expo/schemer

Version:

Centralized scheme validation library for Expo

47 lines (46 loc) • 1.52 kB
import { JSONSchema } from '@expo/schema-utils'; import { ValidationError } from './Error'; interface Meta { asset?: boolean; dimensions?: { width: number; height: number; }; square?: boolean; contentTypePattern?: string; contentTypeHuman?: string; } interface SchemerOptions { rootDir?: string; } interface AssetField { fieldPath: string; data: string; meta: Meta; } interface SchemaUtilsError { message: string; path: string; keyword: string; value: unknown; } export { SchemerError, ValidationError, ErrorCodes, type ErrorCode } from './Error'; export default class Schemer { options: SchemerOptions; schema: JSONSchema; rootDir: string; manualValidationErrors: ValidationError[]; schemaValidationErrors: ValidationError[]; constructor(schema: JSONSchema, options?: SchemerOptions); _formatValidationError({ keyword, path, value, message }: SchemaUtilsError): ValidationError; getErrors(): ValidationError[]; _throwOnErrors(): void; validateAll(data: any): Promise<void>; validateAssetsAsync(data: any): Promise<void>; validateSchemaAsync(data: any): Promise<void>; _validateSchema(data: any): void; _validateAssetsAsync(data: any): Promise<void>; _validateImageAsync({ fieldPath, data, meta }: AssetField): Promise<void>; _validateDirectoryAsync({ fieldPath, data, meta }: AssetField): Promise<void>; _validateAssetAsync({ fieldPath, data, meta }: AssetField): Promise<void>; }