Add :reduce filter run prefix (#5196)

optimising-macrocalls
Saq Imtiaz 2020-12-04 19:23:50 +01:00 zatwierdzone przez GitHub
rodzic 8ffe138942
commit 046746ba20
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 49 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,49 @@
/*\
title: $:/core/modules/filterrunprefixes/reduce.js
type: application/javascript
module-type: filterrunprefix
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter prefix function
*/
exports.reduce = function(operationSubFunction) {
return function(results,source,widget) {
if(results.length > 0) {
var accumulator = "";
for(var index=0; index<results.length; index++) {
var title = results[index],
list = operationSubFunction($tw.wiki.makeTiddlerIterator([title]),{
getVariable: function(name) {
switch(name) {
case "currentTiddler":
return "" + title;
case "accumulator":
return "" + accumulator;
case "index":
return "" + index;
case "revIndex":
return "" + (results.length - 1 - index);
case "length":
return "" + results.length;
default:
return widget.getVariable(name);
}
}
});
if(list.length > 0) {
accumulator = "" + list[0];
}
}
results.splice(0,results.length);
results.push(accumulator);
}
}
};
})();