summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-05-28 09:34:42 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-05-28 09:34:42 +0900
commitdb3724cf33c402d66700f89b319b423887466757 (patch)
treed9038bb32da5a65a51a09cc8c6ee780fa59785f4 /src
parentカスタム絵文字をproxyに通すように (#7526) (diff)
downloadmisskey-db3724cf33c402d66700f89b319b423887466757.tar.gz
misskey-db3724cf33c402d66700f89b319b423887466757.tar.bz2
misskey-db3724cf33c402d66700f89b319b423887466757.zip
improve types
Diffstat (limited to 'src')
-rw-r--r--src/server/api/define.ts7
-rw-r--r--src/server/api/endpoints/gallery/posts/create.ts3
-rw-r--r--src/server/api/endpoints/gallery/posts/update.ts3
-rw-r--r--src/services/chart/core.ts21
4 files changed, 19 insertions, 15 deletions
diff --git a/src/server/api/define.ts b/src/server/api/define.ts
index 432d5017e8..cba69cfdc4 100644
--- a/src/server/api/define.ts
+++ b/src/server/api/define.ts
@@ -5,6 +5,8 @@ import { ApiError } from './error';
import { SchemaType } from '@/misc/schema';
import { AccessToken } from '../../models/entities/access-token';
+type NonOptional<T> = T extends undefined ? never : T;
+
type SimpleUserInfo = {
id: ILocalUser['id'];
host: ILocalUser['host'];
@@ -17,11 +19,12 @@ type SimpleUserInfo = {
isSilenced: ILocalUser['isSilenced'];
};
-// TODO: defaultが設定されている場合はその型も考慮する
type Params<T extends IEndpointMeta> = {
[P in keyof T['params']]: NonNullable<T['params']>[P]['transform'] extends Function
? ReturnType<NonNullable<T['params']>[P]['transform']>
- : ReturnType<NonNullable<T['params']>[P]['validator']['get']>[0];
+ : NonNullable<T['params']>[P]['default'] extends null | number | string
+ ? NonOptional<ReturnType<NonNullable<T['params']>[P]['validator']['get']>[0]>
+ : ReturnType<NonNullable<T['params']>[P]['validator']['get']>[0];
};
export type Response = Record<string, any> | void;
diff --git a/src/server/api/endpoints/gallery/posts/create.ts b/src/server/api/endpoints/gallery/posts/create.ts
index d1ae68b126..ed24a45f88 100644
--- a/src/server/api/endpoints/gallery/posts/create.ts
+++ b/src/server/api/endpoints/gallery/posts/create.ts
@@ -6,6 +6,7 @@ import { DriveFiles, GalleryPosts } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
import { GalleryPost } from '../../../../../models/entities/gallery-post';
import { ApiError } from '../../../error';
+import { DriveFile } from '@/models/entities/drive-file';
export const meta = {
tags: ['gallery'],
@@ -55,7 +56,7 @@ export default define(meta, async (ps, user) => {
id: fileId,
userId: user.id
})
- ))).filter(file => file != null);
+ ))).filter((file): file is DriveFile => file != null);
if (files.length === 0) {
throw new Error();
diff --git a/src/server/api/endpoints/gallery/posts/update.ts b/src/server/api/endpoints/gallery/posts/update.ts
index c8bb8d48c9..d9176ea407 100644
--- a/src/server/api/endpoints/gallery/posts/update.ts
+++ b/src/server/api/endpoints/gallery/posts/update.ts
@@ -5,6 +5,7 @@ import { ID } from '../../../../../misc/cafy-id';
import { DriveFiles, GalleryPosts } from '../../../../../models';
import { GalleryPost } from '../../../../../models/entities/gallery-post';
import { ApiError } from '../../../error';
+import { DriveFile } from '@/models/entities/drive-file';
export const meta = {
tags: ['gallery'],
@@ -58,7 +59,7 @@ export default define(meta, async (ps, user) => {
id: fileId,
userId: user.id
})
- ))).filter(file => file != null);
+ ))).filter((file): file is DriveFile => file != null);
if (files.length === 0) {
throw new Error();
diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts
index d956d33bd7..4a554daa78 100644
--- a/src/services/chart/core.ts
+++ b/src/services/chart/core.ts
@@ -93,7 +93,7 @@ export default abstract class Chart<T extends Record<string, any>> {
}
@autobind
- private static convertFlattenColumnsToObject(x: Record<string, number>) {
+ private static convertFlattenColumnsToObject(x: Record<string, any>): Record<string, any> {
const obj = {} as any;
for (const k of Object.keys(x).filter(k => k.startsWith(Chart.columnPrefix))) {
// now k is ___x_y_z
@@ -285,8 +285,7 @@ export default abstract class Chart<T extends Record<string, any>> {
const latest = await this.getLatestLog(group);
if (latest != null) {
- const obj = Chart.convertFlattenColumnsToObject(
- latest as Record<string, any>);
+ const obj = Chart.convertFlattenColumnsToObject(latest) as T;
// 空ログデータを作成
data = this.getNewLog(obj);
@@ -474,13 +473,13 @@ export default abstract class Chart<T extends Record<string, any>> {
const log = logs.find(l => isTimeSame(new Date(l.date * 1000), current));
if (log) {
- const data = Chart.convertFlattenColumnsToObject(log as Record<string, any>);
- chart.unshift(Chart.countUniqueFields(data));
+ const data = Chart.convertFlattenColumnsToObject(log);
+ chart.unshift(Chart.countUniqueFields(data) as T);
} else {
// 隙間埋め
const latest = logs.find(l => isTimeBefore(new Date(l.date * 1000), current));
- const data = latest ? Chart.convertFlattenColumnsToObject(latest as Record<string, any>) : null;
- chart.unshift(Chart.countUniqueFields(this.getNewLog(data)));
+ const data = latest ? Chart.convertFlattenColumnsToObject(latest) as T : null;
+ chart.unshift(Chart.countUniqueFields(this.getNewLog(data)) as T);
}
}
} else if (span === 'day') {
@@ -497,14 +496,14 @@ export default abstract class Chart<T extends Record<string, any>> {
if (log) {
if (logsForEachDays[currentDayIndex]) {
- logsForEachDays[currentDayIndex].unshift(Chart.convertFlattenColumnsToObject(log));
+ logsForEachDays[currentDayIndex].unshift(Chart.convertFlattenColumnsToObject(log) as T);
} else {
- logsForEachDays[currentDayIndex] = [Chart.convertFlattenColumnsToObject(log)];
+ logsForEachDays[currentDayIndex] = [Chart.convertFlattenColumnsToObject(log) as T];
}
} else {
// 隙間埋め
const latest = logs.find(l => isTimeBefore(new Date(l.date * 1000), current));
- const data = latest ? Chart.convertFlattenColumnsToObject(latest as Record<string, any>) : null;
+ const data = latest ? Chart.convertFlattenColumnsToObject(latest) as T : null;
const newLog = this.getNewLog(data);
if (logsForEachDays[currentDayIndex]) {
logsForEachDays[currentDayIndex].unshift(newLog);
@@ -516,7 +515,7 @@ export default abstract class Chart<T extends Record<string, any>> {
for (const logs of logsForEachDays) {
const log = this.aggregate(logs);
- chart.unshift(Chart.countUniqueFields(log));
+ chart.unshift(Chart.countUniqueFields(log) as T);
}
}