From 32c67287206f6f0112b1d49cad88873e76343d69 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 23 Dec 2024 11:19:08 +0000 Subject: [PATCH] Implement together() for a post-stack all() --- packages/core/repl.mjs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index eff0a16cb..e2f4ba287 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -63,11 +63,13 @@ export function repl({ let pPatterns = {}; let anonymousIndex = 0; let allTransform; + let togetherTransform; const hush = function () { pPatterns = {}; anonymousIndex = 0; allTransform = undefined; + togetherTransform = undefined; return silence; }; @@ -88,6 +90,10 @@ export function repl({ allTransform = transform; return silence; }; + const together = function (transform) { + togetherTransform = transform; + return silence; + }; // set pattern methods that use this repl via closure const injectPatternMethods = () => { @@ -131,6 +137,7 @@ export function repl({ }); return evalScope({ all, + together, hush, cpm, setCps, @@ -160,6 +167,9 @@ export function repl({ } else if (allTransform) { pattern = allTransform(pattern); } + if (togetherTransform) { + pattern = togetherTransform(pattern) + } if (!isPattern(pattern)) { const message = `got "${typeof evaluated}" instead of pattern`; throw new Error(message + (typeof evaluated === 'function' ? ', did you forget to call a function?' : '.'));