From 402a58cd47d0e072d8c5a6329f661ab6437c4a56 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 13 Sep 2021 16:37:55 +0800 Subject: [PATCH] core: fix eslint version --- package.json | 2 +- packages/hydrojudge/src/daemon.ts | 1 + packages/hydrooj/src/entry/cli.ts | 1 + packages/hydrooj/src/entry/worker.ts | 1 + packages/hydrooj/src/handler/discussion.ts | 4 ++-- packages/hydrooj/src/handler/home.ts | 10 +++++----- packages/hydrooj/src/handler/homework.ts | 14 +++++++------- packages/hydrooj/src/handler/import.ts | 4 ++-- packages/hydrooj/src/handler/judge.ts | 2 +- packages/hydrooj/src/handler/manage.ts | 7 ++++--- packages/hydrooj/src/handler/misc.ts | 4 ++-- packages/hydrooj/src/handler/notfound.ts | 2 +- packages/hydrooj/src/handler/problem.ts | 14 +++++++------- packages/hydrooj/src/handler/training.ts | 4 ++-- packages/hydrooj/src/handler/user.ts | 4 +++- packages/hydrooj/src/model/contest.ts | 10 +++++----- packages/hydrooj/src/model/discussion.ts | 1 + packages/hydrooj/src/model/problem.ts | 9 +++++---- packages/hydrooj/src/model/setting.ts | 1 + packages/hydrooj/src/service/bus.ts | 8 ++++---- packages/hydrooj/src/service/db.ts | 17 ++++++++++------- packages/hydrooj/src/service/storage.ts | 10 ++++++++-- packages/hydrooj/src/upgrade.ts | 2 +- packages/migrate-vijos/script.ts | 2 +- packages/sonic/service.ts | 5 +++-- 25 files changed, 79 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 4e1ed386a..03821f244 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "cross-spawn": "^7.0.3", "esbuild": "^0.12.26", "eslint": "^7.32.0", - "eslint-config-airbnb-typescript": "^14.0.0", + "eslint-config-airbnb-typescript": "12.3.1", "eslint-import-resolver-typescript": "^2.4.0", "eslint-plugin-import": "^2.24.2", "eslint-plugin-simple-import-sort": "^7.0.0", diff --git a/packages/hydrojudge/src/daemon.ts b/packages/hydrojudge/src/daemon.ts index ab9610789..d347ec872 100644 --- a/packages/hydrojudge/src/daemon.ts +++ b/packages/hydrojudge/src/daemon.ts @@ -1,3 +1,4 @@ +/* eslint-disable import/no-duplicates */ /* eslint-disable no-constant-condition */ /* eslint-disable no-await-in-loop */ /* .. diff --git a/packages/hydrooj/src/entry/cli.ts b/packages/hydrooj/src/entry/cli.ts index 668065140..67720e3ac 100644 --- a/packages/hydrooj/src/entry/cli.ts +++ b/packages/hydrooj/src/entry/cli.ts @@ -1,3 +1,4 @@ +/* eslint-disable import/no-dynamic-require */ /* eslint-disable no-await-in-loop */ import cac from 'cac'; import { ObjectID } from 'mongodb'; diff --git a/packages/hydrooj/src/entry/worker.ts b/packages/hydrooj/src/entry/worker.ts index 66c338533..c4cf7d542 100644 --- a/packages/hydrooj/src/entry/worker.ts +++ b/packages/hydrooj/src/entry/worker.ts @@ -1,3 +1,4 @@ +/* eslint-disable import/no-dynamic-require */ /* eslint-disable no-await-in-loop */ import os from 'os'; import path from 'path'; diff --git a/packages/hydrooj/src/handler/discussion.ts b/packages/hydrooj/src/handler/discussion.ts index b73b8d773..9d94fc652 100644 --- a/packages/hydrooj/src/handler/discussion.ts +++ b/packages/hydrooj/src/handler/discussion.ts @@ -10,8 +10,8 @@ import * as oplog from '../model/oplog'; import * as system from '../model/system'; import user from '../model/user'; import { - Handler, param, - Route, Types } from '../service/server'; + Handler, param, Route, Types, +} from '../service/server'; export const typeMapper = { problem: document.TYPE_PROBLEM, diff --git a/packages/hydrooj/src/handler/home.ts b/packages/hydrooj/src/handler/home.ts index 8d53e56d1..e553ad472 100644 --- a/packages/hydrooj/src/handler/home.ts +++ b/packages/hydrooj/src/handler/home.ts @@ -37,7 +37,7 @@ class HomeHandler extends Handler { uids.forEach((uid) => this.uids.add(uid)); } - async getHomework(domainId: string, limit: number = 5) { + async getHomework(domainId: string, limit = 5) { if (this.user.hasPerm(PERM.PERM_VIEW_HOMEWORK)) { const tdocs = await contest.getMulti(domainId, {}, document.TYPE_HOMEWORK) .limit(limit).toArray(); @@ -50,7 +50,7 @@ class HomeHandler extends Handler { return ['homework', [], {}]; } - async getContest(domainId: string, limit: number = 10) { + async getContest(domainId: string, limit = 10) { if (this.user.hasPerm(PERM.PERM_VIEW_CONTEST)) { const tdocs = await contest.getMulti(domainId) .limit(limit).toArray(); @@ -62,7 +62,7 @@ class HomeHandler extends Handler { return ['contest', [], {}]; } - async getTraining(domainId: string, limit: number = 10) { + async getTraining(domainId: string, limit = 10) { if (this.user.hasPerm(PERM.PERM_VIEW_TRAINING)) { const tdocs = await training.getMulti(domainId) .sort('_id', 1).limit(limit).toArray(); @@ -74,7 +74,7 @@ class HomeHandler extends Handler { return ['training', [], {}]; } - async getDiscussion(domainId: string, limit: number = 20) { + async getDiscussion(domainId: string, limit = 20) { if (this.user.hasPerm(PERM.PERM_VIEW_DISCUSSION)) { const ddocs = await discussion.getMulti(domainId).limit(limit).toArray(); const vndict = await discussion.getListVnodes( @@ -86,7 +86,7 @@ class HomeHandler extends Handler { return ['discussion', [], {}]; } - async getRanking(domainId: string, limit: number = 50) { + async getRanking(domainId: string, limit = 50) { if (this.user.hasPerm(PERM.PERM_VIEW_RANKING)) { const dudocs = await domain.getMultiUserInDomain(domainId, { uid: { $gt: 1 } }) .sort({ rp: -1 }).project({ uid: 1 }).limit(limit).toArray(); diff --git a/packages/hydrooj/src/handler/homework.ts b/packages/hydrooj/src/handler/homework.ts index a886e8375..ff079a15f 100644 --- a/packages/hydrooj/src/handler/homework.ts +++ b/packages/hydrooj/src/handler/homework.ts @@ -6,12 +6,12 @@ import moment from 'moment-timezone'; import { ObjectID } from 'mongodb'; import { Time } from '@hydrooj/utils/lib/utils'; import { - BadRequestError, - HomeworkNotAttendedError, HomeworkNotLiveError, ProblemNotFoundError, - ValidationError } from '../error'; + BadRequestError, HomeworkNotAttendedError, HomeworkNotLiveError, + ProblemNotFoundError, ValidationError, +} from '../error'; import { - DomainDoc, - PenaltyRules, ProblemDoc, Tdoc, User } from '../interface'; + DomainDoc, PenaltyRules, ProblemDoc, Tdoc, User, +} from '../interface'; import paginate from '../lib/paginate'; import { PERM, PRIV, STATUS } from '../model/builtin'; import * as contest from '../model/contest'; @@ -25,8 +25,8 @@ import * as system from '../model/system'; import user from '../model/user'; import * as bus from '../service/bus'; import { - Handler, param, - Route, Types } from '../service/server'; + Handler, param, Route, Types, +} from '../service/server'; const validatePenaltyRules = (input: string) => yaml.load(input); const convertPenaltyRules = validatePenaltyRules; diff --git a/packages/hydrooj/src/handler/import.ts b/packages/hydrooj/src/handler/import.ts index 98b152886..230052ffa 100644 --- a/packages/hydrooj/src/handler/import.ts +++ b/packages/hydrooj/src/handler/import.ts @@ -20,8 +20,8 @@ import { PERM, PRIV } from '../model/builtin'; import problem, { ProblemDoc } from '../model/problem'; import TaskModel from '../model/task'; import { - Handler, post, - Route, Types } from '../service/server'; + Handler, post, Route, Types, +} from '../service/server'; const RE_SYZOJ = /(https?):\/\/([^/]+)\/(problem|p)\/([0-9]+)\/?/i; const logger = new Logger('import.syzoj'); diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index 6690d1d4f..95f2ed386 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -14,7 +14,7 @@ import task from '../model/task'; import * as bus from '../service/bus'; import { updateJudge } from '../service/monitor'; import { - Connection, ConnectionHandler, Handler, post, Route, Types, + Connection, ConnectionHandler, Handler, post, Route, Types, } from '../service/server'; import { sleep } from '../utils'; diff --git a/packages/hydrooj/src/handler/manage.ts b/packages/hydrooj/src/handler/manage.ts index 5a4084988..a63425b3a 100644 --- a/packages/hydrooj/src/handler/manage.ts +++ b/packages/hydrooj/src/handler/manage.ts @@ -3,8 +3,8 @@ import * as yaml from 'js-yaml'; import * as check from '../check'; import { ValidationError } from '../error'; import { - isEmail, isPassword, - isUname, validate } from '../lib/validator'; + isEmail, isPassword, isUname, validate, +} from '../lib/validator'; import { Logger } from '../logger'; import { PRIV, STATUS } from '../model/builtin'; import domain from '../model/domain'; @@ -14,7 +14,8 @@ import * as system from '../model/system'; import user from '../model/user'; import * as bus from '../service/bus'; import { - Connection, ConnectionHandler, Handler, param, Route, Types, + Connection, ConnectionHandler, Handler, + param, Route, Types, } from '../service/server'; import * as judge from './judge'; diff --git a/packages/hydrooj/src/handler/misc.ts b/packages/hydrooj/src/handler/misc.ts index 7408bc98c..7d38362d1 100644 --- a/packages/hydrooj/src/handler/misc.ts +++ b/packages/hydrooj/src/handler/misc.ts @@ -9,8 +9,8 @@ import storage from '../model/storage'; import * as system from '../model/system'; import user from '../model/user'; import { - Handler, param, post, - Route, Types } from '../service/server'; + Handler, param, post, Route, Types, +} from '../service/server'; import { sortFiles } from '../utils'; class CheckInHandler extends Handler { diff --git a/packages/hydrooj/src/handler/notfound.ts b/packages/hydrooj/src/handler/notfound.ts index daf6ec750..2cc9c326c 100644 --- a/packages/hydrooj/src/handler/notfound.ts +++ b/packages/hydrooj/src/handler/notfound.ts @@ -2,7 +2,7 @@ /* eslint-disable class-methods-use-this */ import { NotFoundError } from '../error'; import { - Handler, param, Route, Types, + Handler, param, Route, Types, } from '../service/server'; class NotFoundHandler extends Handler { diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index a2254804f..fd847aa90 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -4,13 +4,13 @@ import { lookup } from 'mime-types'; import { FilterQuery, ObjectID } from 'mongodb'; import { sortFiles } from '@hydrooj/utils/lib/utils'; import { - BadRequestError, - ForbiddenError, - NoProblemError, PermissionError, ProblemNotFoundError, SolutionNotFoundError, ValidationError, + BadRequestError, ForbiddenError, NoProblemError, + PermissionError, ProblemNotFoundError, SolutionNotFoundError, + ValidationError, } from '../error'; import { - ProblemDoc, ProblemStatusDoc, - User } from '../interface'; + ProblemDoc, ProblemStatusDoc, User, +} from '../interface'; import difficultyAlgorithm from '../lib/difficulty'; import paginate from '../lib/paginate'; import { isPid, parsePid as convertPid } from '../lib/validator'; @@ -26,8 +26,8 @@ import * as system from '../model/system'; import user from '../model/user'; import * as bus from '../service/bus'; import { - Handler, param, post, query, - Route, route, Types } from '../service/server'; + Handler, param, post, query, Route, route, Types, +} from '../service/server'; import { registerResolver, registerValue } from './api'; export const parseCategory = (value: string) => flatten(value.replace(/,/g, ',').split(',')).map((e) => e.trim()); diff --git a/packages/hydrooj/src/handler/training.ts b/packages/hydrooj/src/handler/training.ts index 5ef2ae80c..e1ea7ac48 100644 --- a/packages/hydrooj/src/handler/training.ts +++ b/packages/hydrooj/src/handler/training.ts @@ -12,8 +12,8 @@ import * as training from '../model/training'; import user from '../model/user'; import * as bus from '../service/bus'; import { - Handler, param, - Route, Types } from '../service/server'; + Handler, param, Route, Types, +} from '../service/server'; async function _parseDagJson(domainId: string, _dag: string): Promise { const parsed = []; diff --git a/packages/hydrooj/src/handler/user.ts b/packages/hydrooj/src/handler/user.ts index 836655c5f..9982aba64 100644 --- a/packages/hydrooj/src/handler/user.ts +++ b/packages/hydrooj/src/handler/user.ts @@ -18,7 +18,9 @@ import * as system from '../model/system'; import task from '../model/task'; import token from '../model/token'; import user from '../model/user'; -import { Handler, param, post, Route, Types } from '../service/server'; +import { + Handler, param, post, Route, Types, +} from '../service/server'; import { registerResolver, registerValue } from './api'; registerValue('User', [ diff --git a/packages/hydrooj/src/model/contest.ts b/packages/hydrooj/src/model/contest.ts index c7c3b3a49..2bc159ada 100644 --- a/packages/hydrooj/src/model/contest.ts +++ b/packages/hydrooj/src/model/contest.ts @@ -1,12 +1,12 @@ import { FilterQuery, ObjectID } from 'mongodb'; import { - ContestAlreadyAttendedError, - ContestNotAttendedError, ContestNotFoundError, ContestScoreboardHiddenError, - ValidationError } from '../error'; + ContestAlreadyAttendedError, ContestNotAttendedError, ContestNotFoundError, + ContestScoreboardHiddenError, ValidationError, +} from '../error'; import { ContestRule, ContestRules, ProblemDict, - ProblemId, ScoreboardNode, ScoreboardRow, Tdoc, - Udict, + ProblemId, ScoreboardNode, ScoreboardRow, + Tdoc, Udict, } from '../interface'; import * as misc from '../lib/misc'; import ranked from '../lib/rank'; diff --git a/packages/hydrooj/src/model/discussion.ts b/packages/hydrooj/src/model/discussion.ts index a9c1c0eaf..f6f3db9f4 100644 --- a/packages/hydrooj/src/model/discussion.ts +++ b/packages/hydrooj/src/model/discussion.ts @@ -306,6 +306,7 @@ const t = Math.exp(-0.15); async function updateSort() { const cursor = document.coll.find({ docType: document.TYPE_DISCUSSION }); + // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-await-in-loop const data = await cursor.next(); diff --git a/packages/hydrooj/src/model/problem.ts b/packages/hydrooj/src/model/problem.ts index 87e0bccd0..719d426ef 100644 --- a/packages/hydrooj/src/model/problem.ts +++ b/packages/hydrooj/src/model/problem.ts @@ -1,13 +1,14 @@ import { - Dictionary, escapeRegExp, flatten, groupBy, pick, + escapeRegExp, flatten, groupBy, pick, } from 'lodash'; import { FilterQuery, ObjectID } from 'mongodb'; import type { Readable } from 'stream'; import { streamToBuffer } from '@hydrooj/utils/lib/utils'; import { ProblemNotFoundError, ValidationError } from '../error'; import type { - Document, DomainDoc, - ProblemDict, ProblemId, ProblemStatusDoc } from '../interface'; + Document, DomainDoc, ProblemDict, + ProblemId, ProblemStatusDoc, +} from '../interface'; import { parseConfig } from '../lib/testdataConfig'; import * as bus from '../service/bus'; import { @@ -309,7 +310,7 @@ export class ProblemModel { const psdocs = await ProblemModel.getMultiStatus( domainId, { uid, docId: { $in: Array.from(new Set(pids)) } }, ).toArray(); - const r: Dictionary = {}; + const r: Record = {}; for (const psdoc of psdocs) r[psdoc.docId] = psdoc; return r; } diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 728e1b1aa..419f40cb0 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -209,6 +209,7 @@ SystemSetting( Setting('setting_storage', 'installid', String.random(64), 'text', 'installid', 'Installation ID', FLAG_HIDDEN | FLAG_DISABLED), ); +// eslint-disable-next-line import/no-mutable-exports export let langs = {}; bus.once('app/started', async () => { diff --git a/packages/hydrooj/src/service/bus.ts b/packages/hydrooj/src/service/bus.ts index 1584a9686..ab480f4c0 100644 --- a/packages/hydrooj/src/service/bus.ts +++ b/packages/hydrooj/src/service/bus.ts @@ -6,10 +6,10 @@ import type { import type { ProblemSolutionHandler } from '../handler/problem'; import type { UserRegisterHandler } from '../handler/user'; import type { - DiscussionDoc, - DomainDoc, FileInfo, MessageDoc, ProblemDoc, RecordDoc, - Tdoc, - TrainingDoc, User } from '../interface'; + DiscussionDoc, DomainDoc, FileInfo, + MessageDoc, ProblemDoc, RecordDoc, + Tdoc, TrainingDoc, User, +} from '../interface'; import { Logger } from '../logger'; import type { DocType } from '../model/document'; import type { Handler } from './server'; diff --git a/packages/hydrooj/src/service/db.ts b/packages/hydrooj/src/service/db.ts index fea0a4acc..68526fcef 100644 --- a/packages/hydrooj/src/service/db.ts +++ b/packages/hydrooj/src/service/db.ts @@ -1,4 +1,7 @@ -import { Collection, Db, IndexSpecification, MongoClient } from 'mongodb'; +/* eslint-disable no-await-in-loop */ +import { + Collection, Db, IndexSpecification, MongoClient, +} from 'mongodb'; import { BaseService, Collections } from '../interface'; import { Logger } from '../logger'; import * as bus from './bus'; @@ -57,9 +60,9 @@ class MongoService implements BaseService { existed = []; } for (const index of args) { - let i = existed.find(t => t.name == index.name || JSON.stringify(t.key) == JSON.stringify(index.key)); - if (!i && Object.keys(index.key).map(k => index.key[k]).includes('text')) { - i = existed.find(t => t.textIndexVersion); + let i = existed.find((t) => t.name === index.name || JSON.stringify(t.key) === JSON.stringify(index.key)); + if (!i && Object.keys(index.key).map((k) => index.key[k]).includes('text')) { + i = existed.find((t) => t.textIndexVersion); } index.background = true; if (!i) { @@ -67,9 +70,9 @@ class MongoService implements BaseService { await coll.createIndexes([index]); } else if (i.v < 2 || i.name !== index.name || JSON.stringify(i.key) !== JSON.stringify(index.key)) { if (i.textIndexVersion) { - const cur = Object.keys(i.key).filter(t => !t.startsWith('_')).map(k => k + ':' + i.key[k]); - for (const key of Object.keys(i.weights)) cur.push(key + ':text'); - const wanted = Object.keys(index.key).map(key => key + ':' + index.key[key]); + const cur = Object.keys(i.key).filter((t) => !t.startsWith('_')).map((k) => `${k}:${i.key[k]}`); + for (const key of Object.keys(i.weights)) cur.push(`${key}:text`); + const wanted = Object.keys(index.key).map((key) => `${key}:${index.key[key]}`); if (cur.sort().join(' ') === wanted.sort().join(' ') && i.name === index.name) continue; } logger.info('Re-Index %s.%s with key %o', coll.collectionName, index.name, index.key); diff --git a/packages/hydrooj/src/service/storage.ts b/packages/hydrooj/src/service/storage.ts index fb8984679..1eacf4df0 100644 --- a/packages/hydrooj/src/service/storage.ts +++ b/packages/hydrooj/src/service/storage.ts @@ -90,8 +90,14 @@ class StorageService { 'file.pathStyle', 'file.endPointForUser', 'file.endPointForJudge', ]); this.opts = { - endPoint, accessKey, secretKey, bucket, region, - pathStyle, endPointForUser, endPointForJudge, + endPoint, + accessKey, + secretKey, + bucket, + region, + pathStyle, + endPointForUser, + endPointForJudge, }; this.client = new Client({ ...parseMainEndpointUrl(this.opts.endPoint), diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index 28a9126b4..8dec487e9 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -421,7 +421,7 @@ const scripts: UpgradeScript[] = [ await iterateAllProblem(['docId', 'domainId', 'config'], async (pdoc) => { logger.info('%s/%s', pdoc.domainId, pdoc.docId); if (typeof pdoc.config !== 'string') return; - if (!pdoc.config?.includes('type: subjective')) return; + if (!pdoc.config.includes('type: subjective')) return; await problem.addTestdata( pdoc.domainId, pdoc.docId, 'config.yaml', Buffer.from(pdoc.config.replace('type: subjective', 'type: objective')), diff --git a/packages/migrate-vijos/script.ts b/packages/migrate-vijos/script.ts index 7c7de88b9..f8fc4bf9c 100644 --- a/packages/migrate-vijos/script.ts +++ b/packages/migrate-vijos/script.ts @@ -1,7 +1,7 @@ /* eslint-disable no-await-in-loop */ import mongodb, { Cursor, Db } from 'mongodb'; import { - DiscussionTailReplyDoc, MessageDoc, RecordDoc, TestCase, TrainingNode, + DiscussionTailReplyDoc, MessageDoc, RecordDoc, TestCase, TrainingNode, } from 'hydrooj'; const dst = global.Hydro.service.db; diff --git a/packages/sonic/service.ts b/packages/sonic/service.ts index c0f8ad56f..8ba1225ec 100644 --- a/packages/sonic/service.ts +++ b/packages/sonic/service.ts @@ -1,6 +1,7 @@ import { - Ingest, PushOptions, - QueryOptions, Search, SuggestOptions } from 'sonic-channel'; + Ingest, PushOptions, QueryOptions, + Search, SuggestOptions, +} from 'sonic-channel'; import { BaseService } from 'hydrooj'; import { Logger } from 'hydrooj/src/logger'; import * as system from 'hydrooj/src/model/system';