Urara-Blog/node_modules/.pnpm-store/v3/files/df/2a1e1e3a74598cfa592f1befd655d16e51064a75149589e25c502b5ab57aeb470f589ecc8fc25c9feb7c0281a156b727c89ae64a0d9bb58c9ac5bece2529e3
2022-08-14 01:14:53 +08:00

22 lines
739 B
Text

import type {AnySchemaObject} from "../../types"
import type {SchemaObjCxt} from ".."
import type {JSONType, RuleGroup, Rule} from "../rules"
export function schemaHasRulesForType(
{schema, self}: SchemaObjCxt,
type: JSONType
): boolean | undefined {
const group = self.RULES.types[type]
return group && group !== true && shouldUseGroup(schema, group)
}
export function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {
return group.rules.some((rule) => shouldUseRule(schema, rule))
}
export function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {
return (
schema[rule.keyword] !== undefined ||
rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)
)
}