diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-24 09:45:27 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-24 09:45:27 +0900 |
| commit | b679163d01b0152b38db658fe49d8a57c6aad930 (patch) | |
| tree | 9919cc598ed825c6841f47813010dac2d704614d /src/services/chart/notes.ts | |
| parent | Update schemas.ts (diff) | |
| download | sharkey-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.ts | 79 |
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'); |