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~

93 lines (88 loc) 2.71 kB
'use strict'; 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