eslint: add github/array-foreach rule

This commit is contained in:
undefined committed 2023-10-20 20:59:48 +08:00
1 parent 9901ffa62d
commit 335a272db4
21 files changed
+59 -51

No files matched your search

+3 -3
View File
@@ -637,9 +637,9 @@ export class ContestUserHandler extends ContestManagementBaseHandler {
const tsdocs = await contest.getMultiStatus(domainId, { docId: tid }).project({
uid: 1, attend: 1, startAt: 1, unrank: 1,
}).toArray();
tsdocs.forEach((i) => {
i.endAt = (this.tdoc.duration && i.startAt) ? moment(i.startAt).add(this.tdoc.duration, 'hours').toDate() : null;
});
for (const tsdoc of tsdocs) {
tsdoc.endAt = (this.tdoc.duration && tsdoc.startAt) ? moment(tsdoc.startAt).add(this.tdoc.duration, 'hours').toDate() : null;
}
const udict = await user.getListForRender(domainId, [this.tdoc.owner, ...tsdocs.map((i) => i.uid)]);
this.response.body = { tdoc: this.tdoc, tsdocs, udict };
this.response.pjax = 'partials/contest_user.html';
+1 -1
View File
@@ -36,7 +36,7 @@ export class HomeHandler extends Handler {
uids = new Set<number>();
collectUser(uids: number[]) {
uids.forEach((uid) => this.uids.add(uid));
for (const uid of uids) this.uids.add(uid);
}
async getHomework(domainId: string, limit = 5) {
+1 -1
View File
@@ -142,7 +142,7 @@ class DomainModel {
const affected = await UserModel.getMulti({ _id: { $in: uid } })
.project<{ _id: number, mail: string, uname: string }>({ mail: 1, uname: 1 })
.toArray();
affected.forEach((udoc) => deleteUserCache(udoc));
for (const udoc of affected) deleteUserCache(udoc);
return await collUser.updateMany({ domainId, uid: { $in: uid } }, { $set: { role } }, { upsert: true });
}
+1 -1
View File
@@ -19,7 +19,7 @@ export async function add(data: Partial<OplogDoc> & { type: string }): Promise<O
function safeKeys(data: any) {
if (['string', 'number', 'boolean'].includes(typeof data)) return data;
if (data instanceof Array) data.forEach(safeKeys);
if (data instanceof Array) for (const d of data) safeKeys(d);
else if (data instanceof ObjectId) return data;
else if (data instanceof Object) {
for (const key in data) {
+5 -3
View File
@@ -398,7 +398,7 @@ export function Connection(
closed = true;
bus.emit('connection/close', h);
if (interval) clearInterval(interval);
disposables.forEach((d) => d());
for (const d of disposables) d();
h.cleanup?.(args);
};
interval = setInterval(() => {
@@ -555,8 +555,10 @@ ${ctx.response.status} ${endTime - startTime}ms ${ctx.response.length}`);
const layers = [baseLayer, rendererLayer(router, logger), responseLayer(logger), userLayer];
app.use(async (ctx, next) => await next().catch(console.error)).use(domainLayer);
app.use(router.routes()).use(router.allowedMethods());
layers.forEach((layer) => router.use(layer as any));
layers.forEach((layer) => app.use(layer as any));
for (const layer of layers) {
router.use(layer as any);
app.use(layer);
}
app.use((ctx) => handle(ctx, NotFoundHandler, () => true));
wsServer.on('connection', async (socket, request) => {
socket.on('error', (err) => {
+5 -4
View File
@@ -1,3 +1,4 @@
// This file was adapted from @koishijs, MIT licensed.
/* eslint-disable consistent-return */
/* eslint-disable import/no-dynamic-require */
/* eslint-disable @typescript-eslint/no-shadow */
@@ -13,7 +14,7 @@ function loadDependencies(filename: string, ignored: Set<string>) {
function traverse({ filename, children }: NodeJS.Module) {
if (ignored.has(filename) || dependencies.has(filename) || filename.includes('/node_modules/')) return;
dependencies.add(filename);
children.forEach(traverse);
for (const c of children) traverse(c);
}
traverse(require.cache[filename]);
return dependencies;
@@ -87,13 +88,13 @@ export default class Watcher extends Service {
this.accepted = new Set(this.stashed);
this.declined = new Set(this.externals);
this.stashed.forEach((filename) => {
for (const filename of this.stashed) {
const { children } = require.cache[filename];
for (const { filename } of children) {
if (this.accepted.has(filename) || this.declined.has(filename) || filename.includes('/node_modules/')) continue;
pending.push(filename);
}
});
}
while (pending.length) {
let index = 0;
@@ -168,7 +169,7 @@ export default class Watcher extends Service {
// we only detect reloads at plugin level
// a plugin will be reloaded if any of its dependencies are accepted
if (!dependencies.some((dep) => this.accepted.has(dep))) continue;
dependencies.forEach((dep) => this.accepted.add(dep));
for (const dep of dependencies) this.accepted.add(dep);
// prepare for reload
let isMarked = false;
+2 -2
View File
@@ -434,10 +434,10 @@ const scripts: UpgradeScript[] = [
null,
async function _65_66() {
return await iterateAllDomain(async (ddoc) => {
Object.keys(ddoc.roles).forEach((role) => {
for (const role of Object.keys(ddoc.roles)) {
if (['guest', 'root'].includes(role)) return;
ddoc.roles[role] = (BigInt(ddoc.roles[role]) | PERM.PREM_VIEW_DISPLAYNAME).toString();
});
}
await domain.setRoles(ddoc._id, ddoc.roles);
});
},