From 9bf0f624f5ec3d36f03a0fb18745bd3809ca3dab Mon Sep 17 00:00:00 2001 From: Alex McLean Date: Sun, 29 Dec 2024 10:29:52 +0000 Subject: [PATCH] Make `all()` post-stack again, and add `each()` for pre-stack (#1229) * Rename `all` to `each`, re-instating old `all` --- packages/core/repl.mjs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index eff0a16c..7d3215a9 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 eachTransform; const hush = function () { pPatterns = {}; anonymousIndex = 0; allTransform = undefined; + eachTransform = undefined; return silence; }; @@ -88,6 +90,10 @@ export function repl({ allTransform = transform; return silence; }; + const each = function (transform) { + eachTransform = transform; + return silence; + }; // set pattern methods that use this repl via closure const injectPatternMethods = () => { @@ -131,6 +137,7 @@ export function repl({ }); return evalScope({ all, + each, hush, cpm, setCps, @@ -153,11 +160,14 @@ export function repl({ let { pattern, meta } = await _evaluate(code, transpiler, transpilerOptions); if (Object.keys(pPatterns).length) { let patterns = Object.values(pPatterns); - if (allTransform) { - patterns = patterns.map(allTransform); + if (eachTransform) { + patterns = patterns.map(eachTransform); } pattern = stack(...patterns); - } else if (allTransform) { + } else if (eachTransform) { + pattern = eachTransform(pattern); + } + if (allTransform) { pattern = allTransform(pattern); } if (!isPattern(pattern)) {