From c63643d34965842119b3e14760c1d943726c4568 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 21 Aug 2020 20:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8export=20=3D=20=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2export=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/interface.ts | 22 +++++++++---------- packages/hydrooj/src/lib/download.ts | 4 +++- packages/hydrooj/src/lib/hash.hydro.ts | 4 +++- packages/hydrooj/src/lib/i18n.ts | 6 ++++- packages/hydrooj/src/lib/logger.ts | 2 +- packages/hydrooj/src/lib/md5.ts | 3 ++- packages/hydrooj/src/lib/nav.ts | 2 +- packages/hydrooj/src/lib/paginate.ts | 4 +++- packages/hydrooj/src/lib/rank.ts | 2 +- packages/hydrooj/src/lib/rating.ts | 4 +++- packages/hydrooj/src/lib/sha1.ts | 2 +- .../hydrooj/src/lib/testdata.convert.ini.ts | 3 ++- packages/hydrooj/src/options.ts | 2 +- packages/hydrooj/src/service/server.ts | 1 - 15 files changed, 38 insertions(+), 25 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 442ed3c8d..322b0f52b 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.12.20", + "version": "2.12.21", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index b28c58b01..d37ce127e 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -396,23 +396,23 @@ export interface Service { } export interface Lib { - download: typeof import('./lib/download').default, - 'hash.hydro': typeof import('./lib/hash.hydro').default, - i18n: typeof import('./lib/i18n').default, + download: typeof import('./lib/download'), + 'hash.hydro': typeof import('./lib/hash.hydro'), + i18n: typeof import('./lib/i18n'), 'import.syzoj': typeof import('./lib/import.syzoj').syzoj, jwt: typeof import('./lib/jwt'), - logger: typeof import('./lib/logger').default, + logger: typeof import('./lib/logger'), mail: typeof import('./lib/mail'), - md5: typeof import('./lib/md5').default, + md5: typeof import('./lib/md5'), misc: typeof import('./lib/misc'), - nav: typeof import('./lib/nav').default, - paginate: typeof import('./lib/paginate').default, - rank: typeof import('./lib/rank').default, - rating: typeof import('./lib/rating').default, + nav: typeof import('./lib/nav'), + paginate: typeof import('./lib/paginate'), + rank: typeof import('./lib/rank'), + rating: typeof import('./lib/rating'), testdataConfig: typeof import('./lib/testdataConfig'), - sha1: typeof import('./lib/sha1').default, + sha1: typeof import('./lib/sha1'), sysinfo: typeof import('./lib/sysinfo'), - 'testdata.convert.ini': typeof import('./lib/testdata.convert.ini').default, + 'testdata.convert.ini': typeof import('./lib/testdata.convert.ini'), useragent: typeof import('./lib/useragent'), validator: typeof import('./lib/validator'), [key: string]: any diff --git a/packages/hydrooj/src/lib/download.ts b/packages/hydrooj/src/lib/download.ts index b885ae827..48b9e5ac5 100644 --- a/packages/hydrooj/src/lib/download.ts +++ b/packages/hydrooj/src/lib/download.ts @@ -11,9 +11,11 @@ async function _download(url: string, path: string, retry: number) { return path; } -export default function download(url: string, path?: string, retry = 3) { +function download(url: string, path?: string, retry = 3) { if (path) return _download(url, path, retry); return superagent.get(url).retry(retry); } +export = download; + global.Hydro.lib.download = download; diff --git a/packages/hydrooj/src/lib/hash.hydro.ts b/packages/hydrooj/src/lib/hash.hydro.ts index ac610893a..8014cc6b7 100644 --- a/packages/hydrooj/src/lib/hash.hydro.ts +++ b/packages/hydrooj/src/lib/hash.hydro.ts @@ -1,7 +1,9 @@ import crypto from 'crypto'; -export default function hash(password: string, salt: string) { +function hash(password: string, salt: string) { return crypto.pbkdf2Sync(password, salt, 100000, 64, 'sha256').toString('hex').substr(0, 64); } +export = hash; + global.Hydro.lib['hash.hydro'] = hash; diff --git a/packages/hydrooj/src/lib/i18n.ts b/packages/hydrooj/src/lib/i18n.ts index 2c1fe0ef9..9a99f9c40 100644 --- a/packages/hydrooj/src/lib/i18n.ts +++ b/packages/hydrooj/src/lib/i18n.ts @@ -1,3 +1,5 @@ +import { Dictionary } from 'lodash'; + const locales = {}; declare global { @@ -45,12 +47,14 @@ String.prototype.translate = function translate(...languages: string[]) { return this; }; -export default function load(data) { +function load(data: Dictionary) { for (const i in data) { if (!locales[i]) locales[i] = data[i]; else locales[i] = Object.assign(locales[i], data[i]); } } +export = load; + global.Hydro.locales = locales; global.Hydro.lib.i18n = load; diff --git a/packages/hydrooj/src/lib/logger.ts b/packages/hydrooj/src/lib/logger.ts index 718644ebe..23879b3d9 100644 --- a/packages/hydrooj/src/lib/logger.ts +++ b/packages/hydrooj/src/lib/logger.ts @@ -38,4 +38,4 @@ const exp = new Logger(); global.Hydro.lib.logger = exp; -export default exp; +export = exp; diff --git a/packages/hydrooj/src/lib/md5.ts b/packages/hydrooj/src/lib/md5.ts index e03b8c8ab..4155b2455 100644 --- a/packages/hydrooj/src/lib/md5.ts +++ b/packages/hydrooj/src/lib/md5.ts @@ -130,8 +130,9 @@ function rstr2hex(input) { return output; } -export default function md5(s: string) { +function md5(s: string) { return rstr2hex(rstrMD5(unescape(encodeURIComponent(s)))); } +export = md5; global.Hydro.lib.md5 = md5; diff --git a/packages/hydrooj/src/lib/nav.ts b/packages/hydrooj/src/lib/nav.ts index e0a03a9b3..9175b4dd5 100644 --- a/packages/hydrooj/src/lib/nav.ts +++ b/packages/hydrooj/src/lib/nav.ts @@ -54,4 +54,4 @@ Item('domain_dashboard', null, 'domain', PERM.PERM_EDIT_DOMAIN); Item('manage_dashboard', null, 'manage', PRIV.PRIV_EDIT_SYSTEM); global.Hydro.lib.nav = Item; -export default Item; +export = Item; diff --git a/packages/hydrooj/src/lib/paginate.ts b/packages/hydrooj/src/lib/paginate.ts index 54a5a6397..a60ad8d4f 100644 --- a/packages/hydrooj/src/lib/paginate.ts +++ b/packages/hydrooj/src/lib/paginate.ts @@ -1,7 +1,7 @@ import { Cursor } from 'mongodb'; import { ValidationError } from '../error'; -export default async function paginate( +async function paginate( cursor: Cursor, page: number, pageSize: number, ): Promise<[any[]/* docs */, number/* numPages */, number/* count */]> { if (page <= 0) throw new ValidationError('page'); @@ -13,4 +13,6 @@ export default async function paginate( return [pageDocs, numPages, count]; } +export = paginate; + global.Hydro.lib.paginate = paginate; diff --git a/packages/hydrooj/src/lib/rank.ts b/packages/hydrooj/src/lib/rank.ts index d1903344d..bf82a4847 100644 --- a/packages/hydrooj/src/lib/rank.ts +++ b/packages/hydrooj/src/lib/rank.ts @@ -11,4 +11,4 @@ function* ranked(diter: T[], equ = (a: T, b: T) => a === b): Generator<[numbe } global.Hydro.lib.rank = ranked; -export default ranked; +export = ranked; diff --git a/packages/hydrooj/src/lib/rating.ts b/packages/hydrooj/src/lib/rating.ts index 40c389df8..354d0e4da 100644 --- a/packages/hydrooj/src/lib/rating.ts +++ b/packages/hydrooj/src/lib/rating.ts @@ -107,7 +107,7 @@ interface RatingOutputUser { uid: number, } -export default function calculate(users: RatingInputUser[]): RatingOutputUser[] { +function calculate(users: RatingInputUser[]): RatingOutputUser[] { let last_idx = 0; let last_rank = 1; for (let i = 1; i < users.length; i++) { @@ -124,4 +124,6 @@ export default function calculate(users: RatingInputUser[]): RatingOutputUser[] return calculator.calculate() as RatingOutputUser[]; } +export = calculate; + global.Hydro.lib.rating = calculate; diff --git a/packages/hydrooj/src/lib/sha1.ts b/packages/hydrooj/src/lib/sha1.ts index 268b9050d..1d4cf8b34 100644 --- a/packages/hydrooj/src/lib/sha1.ts +++ b/packages/hydrooj/src/lib/sha1.ts @@ -7,4 +7,4 @@ function sha1(content: string) { } global.Hydro.lib.sha1 = sha1; -export default sha1; +export = sha1; diff --git a/packages/hydrooj/src/lib/testdata.convert.ini.ts b/packages/hydrooj/src/lib/testdata.convert.ini.ts index c88c909e7..9b0a9f344 100644 --- a/packages/hydrooj/src/lib/testdata.convert.ini.ts +++ b/packages/hydrooj/src/lib/testdata.convert.ini.ts @@ -1,6 +1,6 @@ import yaml from 'js-yaml'; -export default function convert(ini: string) { +function convert(ini: string) { const f = ini.split('\n'); const count = parseInt(f[0], 10); const res = { cases: [] }; @@ -30,3 +30,4 @@ export default function convert(ini: string) { } global.Hydro.lib['testdata.convert.ini'] = convert; +export = convert; diff --git a/packages/hydrooj/src/options.ts b/packages/hydrooj/src/options.ts index 79d00673f..c0d27db05 100644 --- a/packages/hydrooj/src/options.ts +++ b/packages/hydrooj/src/options.ts @@ -2,7 +2,7 @@ import fs from 'fs'; import os from 'os'; import path from 'path'; -export default function load() { +export = function load() { let f = path.resolve(process.cwd(), 'config.json'); if (!fs.existsSync(f)) f = path.resolve(__dirname, 'config.json'); if (!fs.existsSync(f)) f = path.resolve(os.homedir(), '.config', 'hydro', 'config.json'); diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index e4edfd113..e2413fc93 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -478,7 +478,6 @@ export class Handler { async putResponse() { if (this.response.disposition) this.ctx.set('Content-Disposition', this.response.disposition); - console.log(this.response); if (!this.response.body) return; if (this.response.redirect && !this.request.json) { this.ctx.response.type = 'application/octet-stream';