From 931bdc6aace5e7aa71ffdfb470e208ead78a2a53 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 2 Nov 2018 03:32:24 +0900 Subject: Refactoring, Clean up and bug fixes --- src/server/api/get-params.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'src/server/api/get-params.ts') diff --git a/src/server/api/get-params.ts b/src/server/api/get-params.ts index 878f223cc3..60d038990e 100644 --- a/src/server/api/get-params.ts +++ b/src/server/api/get-params.ts @@ -1,27 +1,26 @@ -import { Context } from 'cafy'; +import { IEndpointMeta } from './endpoints'; -type Defs = { - params: { [key: string]: Context } -}; - -export default function (defs: T, params: any): [{ - [P in keyof T['params']]: ReturnType[0]; +export default function (defs: T, params: any): [{ + [P in keyof T['params']]: T['params'][P]['transform'] extends Function + ? ReturnType + : ReturnType[0]; }, Error] { const x: any = {}; let err: Error = null; - Object.keys(defs.params).some(k => { - const [v, e] = defs.params[k].get(params[k]); + Object.entries(defs.params).some(([k, def]) => { + const [v, e] = def.validator.get(params[k]); if (e) { err = new Error(e.message); err.name = 'INVALID_PARAM'; (err as any).param = k; return true; } else { - if (v === undefined && defs.params[k].data.default) { - x[k] = defs.params[k].data.default; + if (v === undefined && def.default) { + x[k] = def.default; } else { x[k] = v; } + if (def.transform) x[k] = def.transform(x[k]); return false; } }); -- cgit v1.2.3-freya