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)
 | |
|   )
 | |
| }
 |