From de5d3de99afae3cb7f1dc56fe8781394f8614a50 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Fri, 14 Jan 2022 18:36:34 +0530 Subject: refactor: removes filter function --- src/eval/index.ts | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) (limited to 'src/eval') diff --git a/src/eval/index.ts b/src/eval/index.ts index 26a3ec5..3bf0290 100644 --- a/src/eval/index.ts +++ b/src/eval/index.ts @@ -137,7 +137,10 @@ const checkExpr = ( } const groups = getGroups() - const skips = Math.max(1, getSkips().reduce((a, b) => a + b, -1)) + const skips = Math.max( + 1, + getSkips().reduce((a, b) => a + b, -1), + ) return pipe(groups, skip(skips)) }, @@ -169,35 +172,3 @@ export const matchAll = ( groups: check(0, list, expr), } } - -export const find = ([startO, expr, endO]: ListExpr, list: T[]): any => { - const check = - (expr: Expr) => - (x: T, i: number, ls: T[]): boolean => { - return pipe( - expr, - match({ - AnyItem: _ => true, - AnyNumber: _ => typeof x === 'number', - AnyString: _ => typeof x === 'string', - AnyBool: _ => typeof x === 'boolean', - Truthy: _ => !!x, - Falsey: _ => !x, - Group: ({ exprs }) => exprs.every(e => check(e)(x, i, ls)), - PropertyMatch: ({ name, expr }) => - name in x && check(expr)(x[name], i, ls), - OneOrMore: ({ expr }) => { - // TODO: Nested quantified expression - const x = pipe( - list.slice(i), - takeLeftWhile(x => check(expr)(x, i, list)), - ) - return true - }, - _: _ => false, - }), - ) - } - - return list.filter((x, i, ls) => check(expr)(x, i, ls)) -} -- cgit v1.3.1