wiki.js-wrapper
Version:
A wrapper for the Wiki.js API (GraphQL).
51 lines (50 loc) • 1.89 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var PageManager_1 = require("./PageManager");
var APIRequest_1 = require("./APIRequest");
var Queries_1 = require("./Queries");
var Client = /** @class */ (function () {
function Client(params) {
this._validateParameters(params);
this.ready = false;
this.pages = new PageManager_1.default(this);
this.APIRequest = new APIRequest_1.default(this);
}
Client.prototype._validateParameters = function (params) {
if (params === void 0) { params = { token: "", baseURL: "" }; }
if (!params.token || typeof params.token !== "string")
throw new Error("INVALID_TOKEN");
this.token = params.token;
if (!params.baseURL || typeof params.baseURL !== "string")
throw new Error("INVALID_BASEURL");
if (!params.baseURL.match(/^(http:\/\/|https:\/\/)/gi))
throw new Error("INVALID_BASEURL_PROTOCOL");
this.baseURL = params.baseURL;
};
Client.prototype.isReady = function () {
return this.ready;
};
Client.prototype.login = function () {
var _this = this;
return new Promise(function (resolve, reject) {
_this.APIRequest.req(Queries_1.default.LoginQuery())
.then(function (data) {
if (data.data.site.config.title) {
_this._ready();
resolve(data.data.site.config.title);
}
else {
reject(new Error("INVALID_RESPONSE"));
}
})
.catch(function (e) {
reject(e);
});
});
};
Client.prototype._ready = function () {
this.ready = true;
};
return Client;
}());
module.exports = Client;
;