UNPKG

wiki-saikou

Version:

The library provides the out of box accessing to MediaWiki API in both browsers & Node.js, and the syntax is very similar to vanilla `new mw.Api()`. TypeScript definition included~

53 lines (52 loc) 2.28 kB
import { FexiosFinalContext } from 'fexios'; import { MwApiResponseError } from '../types.js'; /** * Error codes for WikiSaikouError */ export declare enum WikiSaikouErrorCode { HTTP_ERROR = "HTTP_ERROR", LOGIN_FAILED = "LOGIN_FAILED", LOGIN_RETRY_LIMIT_EXCEEDED = "LOGIN_RETRY_LIMIT_EXCEEDED", TOKEN_RETRY_LIMIT_EXCEEDED = "TOKEN_RETRY_LIMIT_EXCEEDED" } /** * WikiSaikou Error: * - Transport/network failures (e.g., fetch failure, HTTP layer issues) * - SDK behavioral errors such as exhausted internal retries or misconfigurations * Note: When MediaWiki API responds with JSON containing error/errors, a MediaWikiApiError should be thrown instead */ export declare class WikiSaikouError extends Error { readonly code: WikiSaikouErrorCode; readonly message: string; readonly cause?: FexiosFinalContext | undefined; readonly name = "WikiSaikouError"; constructor(code: WikiSaikouErrorCode, message?: string, cause?: FexiosFinalContext | undefined); static is(data?: any, code?: WikiSaikouErrorCode): data is WikiSaikouError; } /** * Server-side (MediaWiki API) business error: * - fetch succeeded but JSON includes `error` or `errors.length > 0` * - Special states (e.g., login NeedToken/WrongToken) are also considered API-side errors * Note: network/retry issues belong to WikiSaikouError, not this class */ export declare class MediaWikiApiError extends Error { readonly errors: MwApiResponseError[]; readonly cause?: FexiosFinalContext | undefined; readonly name = "MediaWikiApiError"; readonly code: string; constructor(errors: MwApiResponseError[], cause?: FexiosFinalContext | undefined); get firstError(): MwApiResponseError; isBadTokenError(): boolean; toString(): string; static is(data?: any): data is MediaWikiApiError; static normalizeErrors(errors: MwApiResponseError[]): MwApiResponseError[]; } /** * Helper functions for WikiSaikouError and MediaWikiApiError */ export declare namespace WikiSaikouError { function includesMediaWikiApiError(data?: any): boolean; const normalizeMwApiErrors: typeof MediaWikiApiError.normalizeErrors; function extractMediaWikiApiErrors(data?: any): MwApiResponseError[]; function isBadTokenError(data?: any): boolean; }