diff options
| author | Akshay Nair <phenax5@gmail.com> | 2022-01-14 18:36:34 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2022-01-14 18:36:34 +0530 |
| commit | de5d3de99afae3cb7f1dc56fe8781394f8614a50 (patch) | |
| tree | c60099423b221cede73e38aad4dae89ca407bb5a /src/eval | |
| parent | 70578d77d284b93f49b2918318c8a972521efb46 (diff) | |
| download | elxr-de5d3de99afae3cb7f1dc56fe8781394f8614a50.tar.gz elxr-de5d3de99afae3cb7f1dc56fe8781394f8614a50.zip | |
refactor: removes filter function
Diffstat (limited to 'src/eval')
| -rw-r--r-- | src/eval/index.ts | 37 |
1 files changed, 4 insertions, 33 deletions
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 = <T>( } 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 = <T>( groups: check(0, list, expr), } } - -export const find = <T>([startO, expr, endO]: ListExpr, list: T[]): any => { - const check = - (expr: Expr) => - <T>(x: T, i: number, ls: T[]): boolean => { - return pipe( - expr, - match<boolean, Expr>({ - 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)) -} |
