diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-07-07 02:55:52 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-07 02:55:52 +0900 |
| commit | d5bad25c63f1b1d095da8b523dc02be471d7071a (patch) | |
| tree | 381ce23594925e56ba09c16de076932193f35b47 /src/server/api/get-params.ts | |
| parent | Merge pull request #1846 from syuilo/l10n_master (diff) | |
| parent | w (diff) | |
| download | misskey-d5bad25c63f1b1d095da8b523dc02be471d7071a.tar.gz misskey-d5bad25c63f1b1d095da8b523dc02be471d7071a.tar.bz2 misskey-d5bad25c63f1b1d095da8b523dc02be471d7071a.zip | |
Merge pull request #1854 from syuilo/apis
:v:
Diffstat (limited to 'src/server/api/get-params.ts')
| -rw-r--r-- | src/server/api/get-params.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/api/get-params.ts b/src/server/api/get-params.ts new file mode 100644 index 0000000000..e495e3ef3e --- /dev/null +++ b/src/server/api/get-params.ts @@ -0,0 +1,27 @@ +import { Context } from 'cafy'; + +type Defs = { + params: { [key: string]: Context<any> } +}; + +export default function <T extends Defs>(defs: T, params: any): [{ + [P in keyof T['params']]: ReturnType<T['params'][P]['get']>[0]; +}, Error] { + const x: any = {}; + let err: Error = null; + Object.keys(defs.params).some(k => { + const [v, e] = defs.params[k].get(params[k]); + if (e) { + err = e; + return true; + } else { + if (v === undefined && defs.params[k].data.default) { + x[k] = defs.params[k].data.default; + } else { + x[k] = v; + } + return false; + } + }); + return [x, err]; +} |