Make all() post-stack again, and add each() for pre-stack (#1229)

* Rename `all` to `each`, re-instating old `all`
This commit is contained in:
Alex McLean 2024-12-29 10:29:52 +00:00 committed by GitHub
parent 26cc7e2920
commit 9bf0f624f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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)) {