UNPKG

akismet-api

Version:

Nodejs bindings to the Akismet (https://akismet.com) spam detection service

75 lines (61 loc) 1.96 kB
declare module "akismet-api" { // Main Akismet Client Class export class AkismetClient { constructor(options: AkismetClientOptions); verifyKey( callback?: (err: Error, isValid: boolean) => void ): Promise<boolean>; checkSpam( comment: Comment, callback?: (err: Error, isSpam: boolean) => void ): Promise<boolean>; submitSpam( comment: Comment, callback?: (err: Error) => void ): Promise<void>; submitHam( comment: Comment, callback?: (err: Error) => void ): Promise<void>; } // Legacy props export type Client = AkismetClient; export type client = (options: AkismetClientOptions) => AkismetClient; // Types interface AkismetClientOptions { blog: string; key: string; host?: string; protocol?: string; version?: string; userAgent?: string; blog_lang?: string; lang?: string; // Alias for prev prop blog_charset?: string; charset?: string; // Alias for prev prop } // Require only one of these two types type Comment = (CommentWithIP) | (CommentWithUserIP); // BaseComment with either `ip` or `user_up` type CommentWithIP = { ip: string; } & BaseComment; type CommentWithUserIP = { user_ip: string; } & BaseComment; // BaseComment is composed of Allowed Keys, all optional type BaseComment = Partial<Record<CommentKeys, string>> & Partial<Record<TestKeys, boolean | string>>; // Allowed Keys type TestKeys = 'is_test' | 'isTest'; type CommentKeys = 'user_ip' | 'ip' | 'user_agent' | 'useragent' | 'referrer' | 'referer' | 'comment_author' | 'name' | 'comment_author_email' | 'email' | 'comment_content' | 'content' | 'comment_type' | 'type' | 'comment_date_gmt' | 'date' | 'permalink' | 'comment_post_modified_gmt' | 'permalinkDate' | 'comment_author_url' | 'url' | 'user_role' | 'role' | 'honeypot' | 'honeypot_field_name'; }