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~
66 lines (63 loc) • 1.94 kB
JavaScript
import { W as WikiSaikouCore, a as WikiSaikouError, b as WikiSaikouErrorCode, r as resolveLegacyCtor } from './shared/wiki-saikou.C-xohPiI.mjs';
export { M as MediaWikiApiError, d as MwParamNormalizer, c as createFexiosSaikou } from './shared/wiki-saikou.C-xohPiI.mjs';
export * from 'fexios';
/**
* WikiSaikou
* @description Standalone MediaWiki API SDK with `mw.Api`-like API in any environments
* @author Dragon-Fish <dragon-fish@qq.com>
* @license MIT
*/
class MediaWikiApi extends WikiSaikouCore {
async clientLogin(username, password, params) {
params ||= {};
if (!params.logincontinue && !params.loginreturnurl) {
params.loginreturnurl = location?.origin;
}
const res = await this.postWithToken(
"login",
{
action: "clientlogin",
username,
password,
...params
},
{
tokenName: "logintoken"
}
);
if (res?.data?.clientlogin?.status === "PASS") {
return res.data.clientlogin;
} else {
throw new WikiSaikouError(
WikiSaikouErrorCode.LOGIN_FAILED,
res.data.clientlogin.message,
res
);
}
}
}
/**
* WikiSaikou for foreign wiki
* @description Standalone MediaWiki API SDK with `mw.Api`-like API in any environments
* @author Dragon-Fish <dragon-fish@qq.com>
* @license MIT
*/
class MediaWikiForeignApi extends MediaWikiApi {
constructor(configOrBaseURL, defaultOptions, defaultParams) {
const config = resolveLegacyCtor(
configOrBaseURL,
{
credentials: "include",
mode: "cors",
...defaultOptions
},
{
origin: location.origin,
...defaultParams
}
);
super(config);
}
}
export { MediaWikiForeignApi as ForeignApi, MediaWikiApi, MediaWikiForeignApi, MediaWikiApi as MwApi, WikiSaikouCore as MwApiBase, WikiSaikouCore, WikiSaikouError, WikiSaikouErrorCode };
//# sourceMappingURL=browser.mjs.map