From 0f1ea4aa2005e6ee991a052211455da60fc9ca92 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 21 May 2021 16:01:04 +0200 Subject: [PATCH] Further simplification --- .../schema/src/compiler/genunconverter.ts | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/implementations/javascript/packages/schema/src/compiler/genunconverter.ts b/implementations/javascript/packages/schema/src/compiler/genunconverter.ts index 9a9065d..e891910 100644 --- a/implementations/javascript/packages/schema/src/compiler/genunconverter.ts +++ b/implementations/javascript/packages/schema/src/compiler/genunconverter.ts @@ -17,19 +17,16 @@ export function unconverterForDefinition( return [seq(`return `, unconverterFor( ctx, p.pattern, hasValueField ? `${src}.value` : src))]; })))))]; - case 'and': { - const ps = [def.pattern0, def.pattern1, ... def.patternN]; - const cs = ps.flatMap(p => { - if (p._variant === 'anonymous' && p.value._variant === 'SimplePattern') { - return []; - } else { - return [unconverterForNamed(ctx, p, src)]; - } - }); - return [seq(`return `, (cs.length === 1) - ? cs[0] - : seq(`_.merge`, parens(`(a, b) => (a === b) ? a : void 0`, ... cs)))]; - } + case 'and': + return [seq(`return _.merge`, parens( + `(a, b) => (a === b) ? a : void 0`, + ... [def.pattern0, def.pattern1, ... def.patternN].flatMap(p => { + if (p._variant === 'anonymous' && p.value._variant === 'SimplePattern') { + return []; + } else { + return [unconverterForNamed(ctx, p, src)]; + } + })))]; case 'Pattern': return [seq(`return `, unconverterFor(ctx, def.value, `${src}`))]; }