fix(rules): remove redundant rule field from result
the value of the rule field is always this and it is unused by the visitor.
This commit is contained in:
parent
a2a0fb4423
commit
b5d4698e5a
|
@ -10,11 +10,7 @@ import { VisitorContext } from '../visitor/VisitorContext';
|
||||||
import { VisitorError } from '../visitor/VisitorError';
|
import { VisitorError } from '../visitor/VisitorError';
|
||||||
import { VisitorResult } from '../visitor/VisitorResult';
|
import { VisitorResult } from '../visitor/VisitorResult';
|
||||||
|
|
||||||
export interface RuleResult extends VisitorResult {
|
export class SchemaRule implements RuleData, Visitor {
|
||||||
rule: SchemaRule;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class SchemaRule implements RuleData, Visitor<RuleResult> {
|
|
||||||
public readonly check: ValidateFunction;
|
public readonly check: ValidateFunction;
|
||||||
public readonly desc: string;
|
public readonly desc: string;
|
||||||
public readonly filter?: ValidateFunction;
|
public readonly filter?: ValidateFunction;
|
||||||
|
@ -47,16 +43,15 @@ export class SchemaRule implements RuleData, Visitor<RuleResult> {
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async visit(ctx: VisitorContext, node: any): Promise<RuleResult> {
|
public async visit(ctx: VisitorContext, node: any): Promise<VisitorResult> {
|
||||||
ctx.logger.debug({ item: node, rule: this }, 'visiting node');
|
ctx.logger.debug({ item: node, rule: this }, 'visiting node');
|
||||||
|
|
||||||
const check = ctx.compile(this.check);
|
const check = ctx.compile(this.check);
|
||||||
const filter = this.compileFilter(ctx);
|
const filter = this.compileFilter(ctx);
|
||||||
const errors: Array<VisitorError> = [];
|
const errors: Array<VisitorError> = [];
|
||||||
const result: RuleResult = {
|
const result: VisitorResult = {
|
||||||
changes: [],
|
changes: [],
|
||||||
errors,
|
errors,
|
||||||
rule: this,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (filter(node)) {
|
if (filter(node)) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { VisitorContext } from './VisitorContext';
|
import { VisitorContext } from './VisitorContext';
|
||||||
import { VisitorResult } from './VisitorResult';
|
import { VisitorResult } from './VisitorResult';
|
||||||
|
|
||||||
export interface Visitor<TResult extends VisitorResult> {
|
export interface Visitor<TResult extends VisitorResult = VisitorResult> {
|
||||||
/**
|
/**
|
||||||
* Select nodes eligible to be visited.
|
* Select nodes eligible to be visited.
|
||||||
**/
|
**/
|
||||||
|
|
Loading…
Reference in New Issue