diff --git a/packages/easy/src/types/Parser.ts b/packages/easy/src/types/Parser.ts index 70cd18e3a..7235887f2 100644 --- a/packages/easy/src/types/Parser.ts +++ b/packages/easy/src/types/Parser.ts @@ -6,26 +6,26 @@ import { toArray } from './Array'; export class Parser { if = { - equals: (pred?: Predicate): this => this.evaluate(isTrue, pred), - empty: (pred?: Get): this => this.evaluate(isEmpty, pred), - defined: (pred?: Get): this => this.evaluate(isDefined, pred), - valid: (pred?: Get): this => this.evaluate(isValid, pred), - in: (...items: T[]): this => this.evaluate(() => isIn(this.value, toArray(...items))), + equals: (pred?: Predicate): Parser => this.evaluate(isTrue, pred), + empty: (pred?: Get): Parser => this.evaluate(isEmpty, pred), + defined: (pred?: Get): Parser => this.evaluate(isDefined, pred), + valid: (pred?: Get): Parser => this.evaluate(isValid, pred), + in: (...items: T[]): Parser => this.evaluate(() => isIn(this.value, toArray(...items))), is: { - object: (pred?: Get): this => this.evaluate(isObject, pred), - string: (pred?: Get): this => this.evaluate(isString, pred), - instance: (c: Constructor, pred?: Get): this => this.evaluate(() => this.value instanceof c, pred), + object: (pred?: Get): Parser => this.evaluate(isObject, pred), + string: (pred?: Get): Parser => this.evaluate(isString, pred), + instance: (c: Constructor, pred?: Get): Parser => this.evaluate(() => this.value instanceof c, pred), }, not: { - empty: (pred?: Get): this => this.evaluateNot(isEmpty, pred), - defined: (pred?: Get): this => this.evaluateNot(isDefined, pred), - valid: (pred?: Get): this => this.evaluateNot(isValid, pred), - isObject: (pred?: Get): this => this.evaluateNot(isObject, pred), - in: (...items: T[]): this => this.evaluate(() => !isIn(this.value, toArray(...items))), + empty: (pred?: Get): Parser => this.evaluateNot(isEmpty, pred), + defined: (pred?: Get): Parser => this.evaluateNot(isDefined, pred), + valid: (pred?: Get): Parser => this.evaluateNot(isValid, pred), + isObject: (pred?: Get): Parser => this.evaluateNot(isObject, pred), + in: (...items: T[]): Parser => this.evaluate(() => !isIn(this.value, toArray(...items))), is: { - object: (pred?: Get): this => this.evaluateNot(isObject, pred), - string: (pred?: Get): this => this.evaluateNot(isString, pred), - instance: (c: Constructor, pred?: Get): this => this.evaluate(() => !(this.value instanceof c), pred), + object: (pred?: Get): Parser => this.evaluateNot(isObject, pred), + string: (pred?: Get): Parser => this.evaluateNot(isString, pred), + instance: (c: Constructor, pred?: Get): Parser => this.evaluate(() => !(this.value instanceof c), pred), }, }, }; @@ -35,11 +35,11 @@ export class Parser { protected valid = true ) {} - protected evaluate(meta: Get, pred?: Get): this { + protected evaluate(meta: Get, pred?: Get): Parser { return on(this, t => (t.valid = ofGet(meta, pred ? ofGet(pred, this.value) : this.value))); } - protected evaluateNot(meta: Get, pred?: Get): this { + protected evaluateNot(meta: Get, pred?: Get): Parser { return on(this, t => (t.valid = !ofGet(meta, pred ? ofGet(pred, this.value) : this.value))); } }