1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-04 09:35:51 +02:00

Refactoring, Clean up and bug fixes

This commit is contained in:
syuilo
2018-11-02 03:32:24 +09:00
parent b4b9e76c8d
commit 931bdc6aac
108 changed files with 1722 additions and 1539 deletions

View File

@@ -1,27 +1,26 @@
import { Context } from 'cafy';
import { IEndpointMeta } from './endpoints';
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];
export default function <T extends IEndpointMeta>(defs: T, params: any): [{
[P in keyof T['params']]: T['params'][P]['transform'] extends Function
? ReturnType<T['params'][P]['transform']>
: ReturnType<T['params'][P]['validator']['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]);
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;
}
});