source: node_modules/@reduxjs/toolkit/src/query/standardSchema.ts

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.0 KB
RevLine 
[a762898]1import type { StandardSchemaV1 } from '@standard-schema/spec'
2import { SchemaError } from '@standard-schema/utils'
3import type { SchemaType } from './endpointDefinitions'
4
5export class NamedSchemaError extends SchemaError {
6 constructor(
7 issues: readonly StandardSchemaV1.Issue[],
8 public readonly value: any,
9 public readonly schemaName: `${SchemaType}Schema`,
10 public readonly _bqMeta: any,
11 ) {
12 super(issues)
13 }
14}
15
16export const shouldSkip = (
17 skipSchemaValidation: boolean | SchemaType[] | undefined,
18 schemaName: SchemaType,
19) =>
20 Array.isArray(skipSchemaValidation)
21 ? skipSchemaValidation.includes(schemaName)
22 : !!skipSchemaValidation
23
24export async function parseWithSchema<Schema extends StandardSchemaV1>(
25 schema: Schema,
26 data: unknown,
27 schemaName: `${SchemaType}Schema`,
28 bqMeta: any,
29): Promise<StandardSchemaV1.InferOutput<Schema>> {
30 const result = await schema['~standard'].validate(data)
31 if (result.issues) {
32 throw new NamedSchemaError(result.issues, data, schemaName, bqMeta)
33 }
34 return result.value
35}
Note: See TracBrowser for help on using the repository browser.