+ queryValue middleware for working with query string

This commit is contained in:
tmshv committed 2016-03-24 23:49:30 +03:00
1 parent aea2b8ff25
commit aa18f77ea7
1 file changed
+35
+35
View File
@@ -0,0 +1,35 @@
let contains = (list, i) => list.indexOf(i) > -1;
export function queryValue(params) {
let keys = Object.keys(params);
return async (ctx, next) => {
let query = ctx.request.query;
ctx.request.query = Object.keys(query)
.reduce((q, i) => {
if(contains(keys, i)){
let fn = params[i];
q[i] = fn(q[i]);
}
return q;
}, query);
await next();
};
}
export function booleanify(){
return function(value){
if(value == 'true') return true;
if(value == '1') return true;
if(value == 'false') return false;
if(value == '0') return false;
return Boolean(value);
}
}
export function arrayify(sep){
return function(value){
return value.split(sep);
}
}