summaryrefslogtreecommitdiff
path: root/src/services/chart/notes.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-24 09:45:27 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-24 09:45:27 +0900
commitb679163d01b0152b38db658fe49d8a57c6aad930 (patch)
tree9919cc598ed825c6841f47813010dac2d704614d /src/services/chart/notes.ts
parentUpdate schemas.ts (diff)
downloadsharkey-b679163d01b0152b38db658fe49d8a57c6aad930.tar.gz
sharkey-b679163d01b0152b38db658fe49d8a57c6aad930.tar.bz2
sharkey-b679163d01b0152b38db658fe49d8a57c6aad930.zip
Improve type definitions
Diffstat (limited to 'src/services/chart/notes.ts')
-rw-r--r--src/services/chart/notes.ts79
1 files changed, 46 insertions, 33 deletions
diff --git a/src/services/chart/notes.ts b/src/services/chart/notes.ts
index 8f95f63638..d3704fed9a 100644
--- a/src/services/chart/notes.ts
+++ b/src/services/chart/notes.ts
@@ -2,48 +2,61 @@ import autobind from 'autobind-decorator';
import Chart, { Obj } from '.';
import Note, { INote } from '../../models/note';
import { isLocalUser } from '../../models/user';
+import { SchemaType } from '../../prelude/schema';
-/**
- * 投稿に関するチャート
- */
-type NotesLog = {
- local: {
- /**
- * 集計期間時点での、全投稿数
- */
- total: number;
+const logSchema = {
+ total: {
+ type: 'number' as 'number',
+ description: '集計期間時点での、全投稿数'
+ },
- /**
- * 増加した投稿数
- */
- inc: number;
+ inc: {
+ type: 'number' as 'number',
+ description: '増加した投稿数'
+ },
- /**
- * 減少した投稿数
- */
- dec: number;
+ dec: {
+ type: 'number' as 'number',
+ description: '減少した投稿数'
+ },
- diffs: {
- /**
- * 通常の投稿数の差分
- */
- normal: number;
+ diffs: {
+ type: 'object' as 'object',
+ properties: {
+ normal: {
+ type: 'number' as 'number',
+ description: '通常の投稿数の差分'
+ },
- /**
- * リプライの投稿数の差分
- */
- reply: number;
+ reply: {
+ type: 'number' as 'number',
+ description: 'リプライの投稿数の差分'
+ },
- /**
- * Renoteの投稿数の差分
- */
- renote: number;
- };
- };
+ renote: {
+ type: 'number' as 'number',
+ description: 'Renoteの投稿数の差分'
+ },
+ }
+ },
+};
- remote: NotesLog['local'];
+export const notesLogSchema = {
+ type: 'object' as 'object',
+ properties: {
+ local: {
+ type: 'object' as 'object',
+ properties: logSchema
+ },
+ remote: {
+ type: 'object' as 'object',
+ properties: logSchema
+ },
+ }
};
+type NotesLog = SchemaType<typeof notesLogSchema>;
+
class NotesChart extends Chart<NotesLog> {
constructor() {
super('notes');