From 776485d3e576ebc63b410a6828d985200e393903 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Wed, 24 Feb 2016 18:30:46 +0300 Subject: [PATCH] + queryObject to index router --- src/routes/index.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/routes/index.js b/src/routes/index.js index 91eb04b7..bb017a5c 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -2,6 +2,32 @@ import path from 'path'; import fs from 'mz/fs'; import config from '../config'; +export function queryObject(){ + let assign = (dict, key, value) => { + dict[key] = value; + return dict; + }; + let map = (v, fn) => + value => fn(value) ? v : value; + + let toTrue = map(true, i => i === 'true'); + let toFalse = map(false, i => i === 'false'); + const processors = [toTrue, toFalse]; + + return function *(next) { + let query = this.query; + this.query = Object.keys(query) + .reduce((query, key) => assign( + query, + key, + processors + .reduce((value, fn) => fn(value), query[key]) + ), query); + + yield next; + } +} + export function accepts(routes, def) { return function *() { let req = this.request;