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~
93 lines (88 loc) • 2.71 kB
JavaScript
;
const WikiSaikou = require('./shared/wiki-saikou.1DPaxo4l.cjs');
const fexios = require('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 WikiSaikou.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 WikiSaikou.WikiSaikouError(
WikiSaikou.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 = WikiSaikou.resolveLegacyCtor(
configOrBaseURL,
{
credentials: "include",
mode: "cors",
...defaultOptions
},
{
origin: location.origin,
...defaultParams
}
);
super(config);
}
}
exports.MediaWikiApiError = WikiSaikou.MediaWikiApiError;
exports.MwApiBase = WikiSaikou.WikiSaikouCore;
Object.defineProperty(exports, "MwParamNormalizer", {
enumerable: true,
get: function () { return WikiSaikou.MwParamNormalizer; }
});
exports.WikiSaikouCore = WikiSaikou.WikiSaikouCore;
Object.defineProperty(exports, "WikiSaikouError", {
enumerable: true,
get: function () { return WikiSaikou.WikiSaikouError; }
});
exports.WikiSaikouErrorCode = WikiSaikou.WikiSaikouErrorCode;
exports.createFexiosSaikou = WikiSaikou.createFexiosSaikou;
exports.ForeignApi = MediaWikiForeignApi;
exports.MediaWikiApi = MediaWikiApi;
exports.MediaWikiForeignApi = MediaWikiForeignApi;
exports.MwApi = MediaWikiApi;
Object.prototype.hasOwnProperty.call(fexios, '__proto__') &&
!Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
Object.defineProperty(exports, '__proto__', {
enumerable: true,
value: fexios['__proto__']
});
Object.keys(fexios).forEach(function (k) {
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = fexios[k];
});
//# sourceMappingURL=browser.cjs.map