You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							23 lines
						
					
					
						
							739 B
						
					
					
				
			
		
		
	
	
							23 lines
						
					
					
						
							739 B
						
					
					
				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)
 | 
						|
  )
 | 
						|
}
 |