Imported Debian patch 4.6.2-4~numeezy
This commit is contained in:
committed by
Mario Fetka
parent
8ff3be4216
commit
c86f4cfde4
63
debian/missing-sources/dojo/store/util/QueryResults.js
vendored
Normal file
63
debian/missing-sources/dojo/store/util/QueryResults.js
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
define(["../../_base/array", "../../_base/lang", "../../when"
|
||||
], function(array, lang, when){
|
||||
|
||||
// module:
|
||||
// dojo/store/util/QueryResults
|
||||
|
||||
var QueryResults = function(results){
|
||||
// summary:
|
||||
// A function that wraps the results of a store query with additional
|
||||
// methods.
|
||||
// description:
|
||||
// QueryResults is a basic wrapper that allows for array-like iteration
|
||||
// over any kind of returned data from a query. While the simplest store
|
||||
// will return a plain array of data, other stores may return deferreds or
|
||||
// promises; this wrapper makes sure that *all* results can be treated
|
||||
// the same.
|
||||
//
|
||||
// Additional methods include `forEach`, `filter` and `map`.
|
||||
// results: Array|dojo/promise/Promise
|
||||
// The result set as an array, or a promise for an array.
|
||||
// returns:
|
||||
// An array-like object that can be used for iterating over.
|
||||
// example:
|
||||
// Query a store and iterate over the results.
|
||||
//
|
||||
// | store.query({ prime: true }).forEach(function(item){
|
||||
// | // do something
|
||||
// | });
|
||||
|
||||
if(!results){
|
||||
return results;
|
||||
}
|
||||
// if it is a promise it may be frozen
|
||||
if(results.then){
|
||||
results = lang.delegate(results);
|
||||
}
|
||||
function addIterativeMethod(method){
|
||||
if(!results[method]){
|
||||
results[method] = function(){
|
||||
var args = arguments;
|
||||
return when(results, function(results){
|
||||
Array.prototype.unshift.call(args, results);
|
||||
return QueryResults(array[method].apply(array, args));
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
addIterativeMethod("forEach");
|
||||
addIterativeMethod("filter");
|
||||
addIterativeMethod("map");
|
||||
if(!results.total){
|
||||
results.total = when(results, function(results){
|
||||
return results.length;
|
||||
});
|
||||
}
|
||||
return results; // Object
|
||||
};
|
||||
|
||||
lang.setObject("dojo.store.util.QueryResults", QueryResults);
|
||||
|
||||
return QueryResults;
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user