From ba94e799aa352c2fd472b694c745388e3e9feee8 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 13 Jan 2022 21:20:35 +0530 Subject: feat(eval): implements or --- src/eval/index.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/eval') diff --git a/src/eval/index.ts b/src/eval/index.ts index 4c47adf..d0d7363 100644 --- a/src/eval/index.ts +++ b/src/eval/index.ts @@ -82,6 +82,14 @@ const checkExpr = ( ) }, + Or: ({ exprs }) => { + const match = exprs.find(expr => checkExpr(expr, item, list, index).length > 0) + return pipe( + match ? [group(item, index)] : [], + skip(1), + ) + }, + PropertyMatch: ({ name, expr }) => pipe( Object.prototype.hasOwnProperty.call(item ?? {}, name) @@ -103,13 +111,6 @@ const checkExpr = ( ) }, - // Or: ({ left, right }) => { - // return pipe( - // [], - // skip(1), - // ) - // }, - _: _ => { throw new Error(`TODO: ${expr.tag} not implemented for match`) }, }), ) -- cgit v1.3.1