v3: shared/ is documented like api/ — deno doc --lint over api/ and shared/ goes from 385 errors to none — every module of shared/ opens with a /** … @module */ block; every export and every field of an exported interface has JSDoc, each request body naming the endpoint that takes it and each response its endpoint; the // comments that described declarations (the mention pattern, the permission union and table, four socket messages, the error message's optimistic-action context) are /** */ now, and the socket protocol's heading comment, which sat on no declaration, is its module doc. The lint wanted explicit types on MENTION_RE and DUMP_MAX_FILE_SIZE_BYTES. Along the way: the chat edit is allowed to moderators too, which the new ChatEditMessage doc says; UpdateUserRequest says that PATCH /api/users/me takes only its description and email; playlist-service's reorderPlaylist @throws is rewrapped. mod.ts and the README no longer call shared/ undocumented. No behaviour changes; 205 backend tests pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,22 +1,48 @@
|
||||
/**
|
||||
* Comments under a dump, and the bodies that post and edit them.
|
||||
*
|
||||
* @module
|
||||
*/
|
||||
|
||||
/** A comment, with what the thread shows of its author. */
|
||||
export interface Comment {
|
||||
/** The comment's id. */
|
||||
id: string;
|
||||
/** The id of the dump it is posted under. */
|
||||
dumpId: string;
|
||||
/** The author's id. */
|
||||
userId: string;
|
||||
/** The id of the comment it replies to; undefined at the top level. */
|
||||
parentId?: string;
|
||||
/** The comment, in Markdown; empty once deleted. */
|
||||
body: string;
|
||||
/** When the comment was posted. */
|
||||
createdAt: Date;
|
||||
/** When the comment was last edited, if ever. */
|
||||
updatedAt?: Date;
|
||||
/**
|
||||
* Whether the comment was deleted: it stays in the thread, emptied, so its
|
||||
* replies keep their place.
|
||||
*/
|
||||
deleted: boolean;
|
||||
/** How many users like the comment. */
|
||||
likeCount: number;
|
||||
/** The author's name. */
|
||||
authorUsername: string;
|
||||
/** The author's avatar type, undefined without one. */
|
||||
authorAvatarMime?: string;
|
||||
}
|
||||
|
||||
/** The body of `POST /api/dumps/:dumpId/comments`. */
|
||||
export interface CreateCommentRequest {
|
||||
/** The comment, in Markdown. */
|
||||
body: string;
|
||||
/** The id of the comment it replies to, for a reply. */
|
||||
parentId?: string;
|
||||
}
|
||||
|
||||
/** The body of `PATCH /api/comments/:commentId`. */
|
||||
export interface UpdateCommentRequest {
|
||||
/** The new text, in Markdown. */
|
||||
body: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user