Commit f4c422c6 authored by nanahira's avatar nanahira

bump an add http things

parent 6ed2bf93
This diff is collapsed.
import { defaultRegistrarS } from './registrar';
import { defaultRegistrarS } from '../registrar';
export const {
OnAnywhere,
......
import { defaultRegistrarS } from '../registrar';
import {
DefaultContext,
DefaultState,
ParameterizedContext,
Next as KoaNext,
} from 'koa';
import { RouterParamContext } from '@koa/router';
export type KoaContext = ParameterizedContext<
DefaultState,
DefaultContext & RouterParamContext<DefaultState, DefaultContext>,
any
>;
const RouterMethod = defaultRegistrarS.decorateMethod(
'route',
(
ctx,
fun: (ctx: KoaContext, Next: KoaNext) => Promise<any>,
method:
| 'get'
| 'post'
| 'put'
| 'delete'
| 'patch'
| 'options'
| 'head'
| 'all',
path: string,
) => {
const _path = path.startsWith('/') ? path : `/${path}`;
return ctx.router[method](_path, (koaCtx, next) => fun(koaCtx, next));
},
);
export const Get = (path: string) => RouterMethod('get', path);
export const Post = (path: string) => RouterMethod('post', path);
export const Put = (path: string) => RouterMethod('put', path);
export const Delete = (path: string) => RouterMethod('delete', path);
export const Patch = (path: string) => RouterMethod('patch', path);
export const Options = (path: string) => RouterMethod('options', path);
export const Head = (path: string) => RouterMethod('head', path);
export const All = (path: string) => RouterMethod('all', path);
export * from './common';
export * from './http';
......@@ -3,24 +3,37 @@ import { Registrar } from 'cordis-decorators';
import { selectContext, Selection } from './utility/select-context';
export class SatoriRegistrar<Ctx extends Context> extends Registrar<Ctx> {
methodDecorators() {
return {
...super.methodDecorators(),
};
}
selectorDecorators() {
return {
OnAnywhere: () => this.decorateTransformer((ctx, r) => ctx.any()),
OnNowhere: () => this.decorateTransformer((ctx, r) => ctx.never()),
OnUser: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.user(...r(values))),
OnSelf: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.self(...r(values))),
OnGuild: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.guild(...r(values))),
OnChannel: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.channel(...r(values))),
OnPlatform: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.platform(...r(values))),
OnPrivate: (...values: string[]) =>
this.decorateTransformer((ctx, r) => ctx.private(...r(values))),
OnSelection: (selection: Selection) =>
this.decorateTransformer((ctx, r) => selectContext(ctx, r(selection))),
OnAnywhere: this.decorateTransformer((ctx) => ctx.any()),
OnNowhere: this.decorateTransformer((ctx) => ctx.never()),
OnUser: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.user(...values),
),
OnSelf: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.self(...values),
),
OnGuild: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.guild(...values),
),
OnChannel: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.channel(...values),
),
OnPlatform: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.platform(...values),
),
OnPrivate: this.decorateTransformer((ctx, ...values: string[]) =>
ctx.private(...values),
),
OnSelection: this.decorateTransformer((ctx, selection: Selection) =>
selectContext(ctx, selection),
),
};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment