From 15dc6cabb47ac7cb31bfe5d78975429b85af613b Mon Sep 17 00:00:00 2001 From: Dimas Lanjaka Date: Tue, 9 Jan 2024 19:38:57 +0700 Subject: [PATCH] chore(Hexo): add event emitter descriptor (#5302) Co-authored-by: uiolee <22849383+uiolee@users.noreply.github.com> --- lib/hexo/index.ts | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/lib/hexo/index.ts b/lib/hexo/index.ts index c248b7b675..abd2b05387 100644 --- a/lib/hexo/index.ts +++ b/lib/hexo/index.ts @@ -145,6 +145,88 @@ declare module 'module' { _cache: any; } +interface Hexo { + + /** + * Emitted before deployment begins. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#deployBefore + */ + on(event: 'deployBefore', listener: (...args: any[]) => any): this; + + /** + * Emitted after deployment begins. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#deployAfter + */ + on(event: 'deployAfter', listener: (...args: any[]) => any): this; + + /** + * Emitted before Hexo exits. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#exit + */ + on(event: 'exit', listener: (...args: any[]) => any): this; + + /** + * Emitted before generation begins. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#generateBefore + */ + on(event: 'generateBefore', listener: (...args: any[]) => any): this; + + /** + * Emitted after generation finishes. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#generateAfter + */ + on(event: 'generateAfter', listener: (...args: any[]) => any): this; + + /** + * Emitted after a new post has been created. This event returns the post data: + * @param event + * @param listener + * @link https://hexo.io/api/events.html#new + */ + on(event: 'new', listener: (post: { path: string; content: string; }) => any): this; + + /** + * Emitted before processing begins. This event returns a path representing the root directory of the box. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#processBefore + */ + on(event: 'processBefore', listener: (...args: any[]) => any): this; + + /** + * Emitted after processing finishes. This event returns a path representing the root directory of the box. + * @param event + * @param listener + * @link https://hexo.io/api/events.html#processAfter + */ + on(event: 'processAfter', listener: (...args: any[]) => any): this; + + /** + * Emitted after initialization finishes. + * @param event + * @param listener + */ + on(event: 'ready', listener: (...args: any[]) => any): this; + + /** + * undescripted on emit + * @param event + * @param listener + */ + on(event: string, listener: (...args: any[]) => any): any; + emit(event: string, ...args: any[]): any; +} + class Hexo extends EventEmitter { public base_dir: string; public public_dir: string;