core: add definePlugin syntax support

pull/431/head
undefined 2 years ago
parent 9971967fd1
commit bb288cb960

@ -1,7 +1,7 @@
import assert from 'assert';
import crypto from 'crypto';
import {
Context, db, ForbiddenError, Handler, post, Types, yaml,
db, definePlugin, ForbiddenError, Handler, post, Types, yaml,
} from 'hydrooj';
function decrypt(encrypted: string) {
@ -67,6 +67,8 @@ class DataReportHandler extends Handler {
}
}
export function apply(ctx: Context) {
export default definePlugin({
apply(ctx) {
ctx.Route('data_report', '/center/report', DataReportHandler);
}
},
});

@ -5,6 +5,7 @@ import _ from 'lodash';
import moment from 'moment-timezone';
import Schema from 'schemastery';
import superagent from 'superagent';
import { Context } from './context';
import db from './service/db';
export { ObjectID, ObjectId, FilterQuery } from 'mongodb';
export * from './utils';
@ -55,3 +56,9 @@ export { EventMap } from './service/bus';
export {
db, Schema, yaml, fs, AdmZip, superagent, _, moment,
};
export const definePlugin = <T = never>(args: {
using?: keyof Context[];
apply: (ctx: Context, config: T) => Promise<void> | void;
schema?: Schema<T>;
name?: string;
}) => args;

Loading…
Cancel
Save