strictNullChecks (#4666)

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip
This commit is contained in:
syuilo
2019-04-13 01:43:22 +09:00
committed by GitHub
parent 4ee40c3345
commit 987168b863
214 changed files with 939 additions and 785 deletions

View File

@@ -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);
});

View File

@@ -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;
}

View File

@@ -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
});

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 [];

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -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: {

View File

@@ -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);

View File

@@ -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);