strictNullChecks (#4666)
* wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
This commit is contained in:
@@ -66,7 +66,7 @@ export default define(meta, async (ps, user) => {
|
||||
if (user) generateVisibilityQuery(query, user);
|
||||
if (user) generateMuteQuery(query, user);
|
||||
|
||||
const notes = await query.take(ps.limit).getMany();
|
||||
const notes = await query.take(ps.limit!).getMany();
|
||||
|
||||
return await Notes.packMany(notes, user);
|
||||
});
|
||||
|
@@ -64,12 +64,13 @@ export default define(meta, async (ps, user) => {
|
||||
async function get(id: any) {
|
||||
i++;
|
||||
const p = await Notes.findOne(id);
|
||||
if (p == null) return;
|
||||
|
||||
if (i > ps.offset) {
|
||||
if (i > ps.offset!) {
|
||||
conversation.push(p);
|
||||
}
|
||||
|
||||
if (conversation.length == ps.limit) {
|
||||
if (conversation.length == ps.limit!) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -225,23 +225,24 @@ export const meta = {
|
||||
export default define(meta, async (ps, user, app) => {
|
||||
let visibleUsers: User[] = [];
|
||||
if (ps.visibleUserIds) {
|
||||
visibleUsers = await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id)));
|
||||
visibleUsers = (await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id))))
|
||||
.filter(x => x != null) as User[];
|
||||
}
|
||||
|
||||
let files: DriveFile[] = [];
|
||||
const fileIds = ps.fileIds != null ? ps.fileIds : ps.mediaIds != null ? ps.mediaIds : null;
|
||||
if (fileIds != null) {
|
||||
files = await Promise.all(fileIds.map(fileId => {
|
||||
return DriveFiles.findOne({
|
||||
files = (await Promise.all(fileIds.map(fileId =>
|
||||
DriveFiles.findOne({
|
||||
id: fileId,
|
||||
userId: user.id
|
||||
});
|
||||
}));
|
||||
})
|
||||
))).filter(file => file != null) as DriveFile[];
|
||||
|
||||
files = files.filter(file => file != null);
|
||||
files = files;
|
||||
}
|
||||
|
||||
let renote: Note = null;
|
||||
let renote: Note | undefined;
|
||||
if (ps.renoteId != null) {
|
||||
// Fetch renote to note
|
||||
renote = await Notes.findOne(ps.renoteId);
|
||||
@@ -253,7 +254,7 @@ export default define(meta, async (ps, user, app) => {
|
||||
}
|
||||
}
|
||||
|
||||
let reply: Note = null;
|
||||
let reply: Note | undefined;
|
||||
if (ps.replyId != null) {
|
||||
// Fetch reply
|
||||
reply = await Notes.findOne(ps.replyId);
|
||||
@@ -290,8 +291,8 @@ export default define(meta, async (ps, user, app) => {
|
||||
choices: ps.poll.choices,
|
||||
multiple: ps.poll.multiple || false,
|
||||
expiresAt: ps.poll.expiresAt ? new Date(ps.poll.expiresAt) : null
|
||||
} : null,
|
||||
text: ps.text,
|
||||
} : undefined,
|
||||
text: ps.text || undefined,
|
||||
reply,
|
||||
renote,
|
||||
cw: ps.cw,
|
||||
@@ -300,9 +301,9 @@ export default define(meta, async (ps, user, app) => {
|
||||
localOnly: ps.localOnly,
|
||||
visibility: ps.visibility,
|
||||
visibleUsers,
|
||||
apMentions: ps.noExtractMentions ? [] : null,
|
||||
apHashtags: ps.noExtractHashtags ? [] : null,
|
||||
apEmojis: ps.noExtractEmojis ? [] : null,
|
||||
apMentions: ps.noExtractMentions ? [] : undefined,
|
||||
apHashtags: ps.noExtractHashtags ? [] : undefined,
|
||||
apEmojis: ps.noExtractEmojis ? [] : undefined,
|
||||
geo: ps.geo
|
||||
});
|
||||
|
||||
|
@@ -6,6 +6,7 @@ import * as ms from 'ms';
|
||||
import { getNote } from '../../common/getters';
|
||||
import { ApiError } from '../../error';
|
||||
import { Users } from '../../../../models';
|
||||
import { ensure } from '../../../../prelude/ensure';
|
||||
|
||||
export const meta = {
|
||||
stability: 'stable',
|
||||
@@ -63,5 +64,5 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
|
||||
// この操作を行うのが投稿者とは限らない(例えばモデレーター)ため
|
||||
await deleteNote(await Users.findOne(note.userId), note);
|
||||
await deleteNote(await Users.findOne(note.userId).then(ensure), note);
|
||||
});
|
||||
|
@@ -41,7 +41,7 @@ export default define(meta, async (ps, user) => {
|
||||
|
||||
if (user) generateMuteQuery(query, user);
|
||||
|
||||
const notes = await query.orderBy('note.score', 'DESC').take(ps.limit).getMany();
|
||||
const notes = await query.orderBy('note.score', 'DESC').take(ps.limit!).getMany();
|
||||
|
||||
return await Notes.packMany(notes, user);
|
||||
});
|
||||
|
@@ -84,7 +84,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
//#endregion
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
if (user) {
|
||||
activeUsersChart.update(user);
|
||||
|
@@ -185,7 +185,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
//#endregion
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
if (user) {
|
||||
activeUsersChart.update(user);
|
||||
|
@@ -100,11 +100,11 @@ export default define(meta, async (ps, user) => {
|
||||
query.andWhere('note.fileIds != \'{}\'');
|
||||
}
|
||||
|
||||
if (ps.fileType) {
|
||||
if (ps.fileType != null) {
|
||||
query.andWhere('note.fileIds != \'{}\'');
|
||||
query.andWhere(new Brackets(qb => {
|
||||
for (const type of ps.fileType) {
|
||||
const i = ps.fileType.indexOf(type);
|
||||
for (const type of ps.fileType!) {
|
||||
const i = ps.fileType!.indexOf(type);
|
||||
qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type });
|
||||
}
|
||||
}));
|
||||
@@ -120,7 +120,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
//#endregion
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
if (user) {
|
||||
activeUsersChart.update(user);
|
||||
|
@@ -74,7 +74,7 @@ export default define(meta, async (ps, user) => {
|
||||
query.setParameters(followingQuery.getParameters());
|
||||
}
|
||||
|
||||
const mentions = await query.take(ps.limit).getMany();
|
||||
const mentions = await query.take(ps.limit!).getMany();
|
||||
|
||||
for (const note of mentions) {
|
||||
read(user.id, note.id);
|
||||
|
@@ -58,7 +58,7 @@ export default define(meta, async (ps, user) => {
|
||||
query.setParameters(mutingQuery.getParameters());
|
||||
//#endregion
|
||||
|
||||
const polls = await query.take(ps.limit).skip(ps.offset).getMany();
|
||||
const polls = await query.take(ps.limit!).skip(ps.offset).getMany();
|
||||
|
||||
if (polls.length === 0) return [];
|
||||
|
||||
|
@@ -14,6 +14,7 @@ import { PollVotes, NoteWatchings, Users, Polls, UserProfiles } from '../../../.
|
||||
import { Not } from 'typeorm';
|
||||
import { IRemoteUser } from '../../../../../models/entities/user';
|
||||
import { genId } from '../../../../../misc/gen-id';
|
||||
import { ensure } from '../../../../../prelude/ensure';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
@@ -87,7 +88,7 @@ export default define(meta, async (ps, user) => {
|
||||
throw new ApiError(meta.errors.noPoll);
|
||||
}
|
||||
|
||||
const poll = await Polls.findOne({ noteId: note.id });
|
||||
const poll = await Polls.findOne({ noteId: note.id }).then(ensure);
|
||||
|
||||
if (poll.expiresAt && poll.expiresAt < createdAt) {
|
||||
throw new ApiError(meta.errors.alreadyExpired);
|
||||
@@ -149,7 +150,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
});
|
||||
|
||||
const profile = await UserProfiles.findOne({ userId: user.id });
|
||||
const profile = await UserProfiles.findOne({ userId: user.id }).then(ensure);
|
||||
|
||||
// この投稿をWatchする
|
||||
if (profile.autoWatch !== false) {
|
||||
@@ -158,7 +159,7 @@ export default define(meta, async (ps, user) => {
|
||||
|
||||
// リモート投票の場合リプライ送信
|
||||
if (note.userHost != null) {
|
||||
const pollOwner: IRemoteUser = await Users.findOne(note.userId);
|
||||
const pollOwner = await Users.findOne(note.userId).then(ensure) as IRemoteUser;
|
||||
|
||||
deliver(user, renderActivity(await renderVote(user, vote, note, poll, pollOwner)), pollOwner.inbox);
|
||||
}
|
||||
|
@@ -71,7 +71,7 @@ export default define(meta, async (ps, user) => {
|
||||
|
||||
const reactions = await NoteReactions.find({
|
||||
where: query,
|
||||
take: ps.limit,
|
||||
take: ps.limit!,
|
||||
skip: ps.offset,
|
||||
order: {
|
||||
id: -1
|
||||
|
@@ -70,7 +70,7 @@ export default define(meta, async (ps, user) => {
|
||||
if (user) generateVisibilityQuery(query, user);
|
||||
if (user) generateMuteQuery(query, user);
|
||||
|
||||
const renotes = await query.take(ps.limit).getMany();
|
||||
const renotes = await query.take(ps.limit!).getMany();
|
||||
|
||||
return await Notes.packMany(renotes, user);
|
||||
});
|
||||
|
@@ -61,7 +61,7 @@ export default define(meta, async (ps, user) => {
|
||||
if (user) generateVisibilityQuery(query, user);
|
||||
if (user) generateMuteQuery(query, user);
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
return await Notes.packMany(timeline, user);
|
||||
});
|
||||
|
@@ -100,7 +100,7 @@ export default define(meta, async (ps, me) => {
|
||||
} else {
|
||||
let i = 0;
|
||||
query.andWhere(new Brackets(qb => {
|
||||
for (const tags of ps.query) {
|
||||
for (const tags of ps.query!) {
|
||||
qb.orWhere(new Brackets(qb => {
|
||||
for (const tag of tags) {
|
||||
qb.andWhere(`:tag${i} = ANY(note.tags)`, { [`tag${i}`]: tag });
|
||||
@@ -140,7 +140,7 @@ export default define(meta, async (ps, me) => {
|
||||
}
|
||||
|
||||
// Search notes
|
||||
const notes = await query.take(ps.limit).getMany();
|
||||
const notes = await query.take(ps.limit!).getMany();
|
||||
|
||||
return await Notes.packMany(notes, me);
|
||||
});
|
||||
|
@@ -54,7 +54,7 @@ export default define(meta, async (ps, me) => {
|
||||
index: 'misskey',
|
||||
type: 'note',
|
||||
body: {
|
||||
size: ps.limit,
|
||||
size: ps.limit!,
|
||||
from: ps.offset,
|
||||
query: {
|
||||
simple_query_string: {
|
||||
|
@@ -171,7 +171,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
//#endregion
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
activeUsersChart.update(user);
|
||||
|
||||
|
@@ -189,7 +189,7 @@ export default define(meta, async (ps, user) => {
|
||||
}
|
||||
//#endregion
|
||||
|
||||
const timeline = await query.take(ps.limit).getMany();
|
||||
const timeline = await query.take(ps.limit!).getMany();
|
||||
|
||||
activeUsersChart.update(user);
|
||||
|
||||
|
Reference in New Issue
Block a user