Skip to content

Commit 5918f7a

Browse files
committed
💥 Specify whether to have metadata by the type parameter
JSDocなどもつけた
1 parent beb8de4 commit 5918f7a

File tree

1 file changed

+18
-22
lines changed

1 file changed

+18
-22
lines changed

api/response.ts

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -130,27 +130,23 @@ export interface SearchedTitle {
130130
/** ページ内のリンク */ links: string[];
131131
}
132132

133-
export interface ProjectBackup {
134-
name: string;
135-
displayName: string;
136-
exported: number;
137-
pages: {
138-
id: PageId;
139-
title: string;
140-
created: number;
141-
updated: number;
142-
lines: string[];
143-
};
133+
/** exportもしくはbackupをとったときのページデータ */
134+
export interface ExportPage<hasMetadata extends true | false = false> {
135+
/** page's title */ title: string;
136+
/** ページの最終更新日時 (UNIX時刻) */ updated: number;
137+
/** ページの最終作成日時 (UNIX時刻) */ created: number;
138+
/** page ID */ id: string;
139+
/** ページ本文
140+
*
141+
* `hasMetadata === true`のときは行のmetadataが入る
142+
* それ以外の場合は行のテキストが入る
143+
*/
144+
lines: hasMetadata extends true ? Omit<Line, "id" | "userId">[]
145+
: string[];
144146
}
145-
export interface ProjectBackupWithMetadata {
146-
name: string;
147-
displayName: string;
148-
exported: number;
149-
pages: {
150-
id: PageId;
151-
title: string;
152-
created: number;
153-
updated: number;
154-
lines: Omit<Line, "id" | "userId">[];
155-
};
147+
export interface ExportData<hasMetadata extends true | false = false> {
148+
/** project's name */ name: string;
149+
/** project's display name */ displayName: string;
150+
/** このデータを生成した日時 (UNIX時刻) */ exported: number;
151+
/** exported pages */ pages: ExportPage<hasMetadata>[];
156152
}

0 commit comments

Comments
 (0)