@expo/schemer
Version:
Centralized scheme validation library for Expo
47 lines (46 loc) • 1.52 kB
TypeScript
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>;
}