@querc/squidex-client
Version:
NodeJS client for the [Squidex](https://squidex.io/) CMS
74 lines (51 loc) • 6.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SquidexClient = void 0;
var _configuration = require("./configuration");
var _nodeFetch = require("./http/node-fetch.client");
var _authenticationManager = require("./authentication/authentication-manager");
var _content = require("./schemas/content");
var _helpers = require("./helpers");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
class SquidexClient {
/** Configuration options in use by the client */
/** Helper methods */
/**
* NodeJS client for the Squidex CMS
*
* @example
* const client = new SquidexClient({
* appName: 'my-app',
* clientId: 'my-app:default',
* clientSecret: 'SEKRIT'
* })
* const posts = await client.query<BlogPostDTO>('Posts')
*/
constructor(options, httpClient) {
this.httpClient = httpClient;
_defineProperty(this, "config", void 0);
_defineProperty(this, "helpers", void 0);
_defineProperty(this, "authenticationManager", void 0);
_defineProperty(this, "contentSchema", void 0);
this.config = _configuration.ConfigurationManager.buildConfiguration(options);
if (this.httpClient === undefined) {
this.httpClient = new _nodeFetch.NodeFetchClient(this.config);
}
this.authenticationManager = new _authenticationManager.AuthenticationManager(this.config, this.httpClient);
this.contentSchema = new _content.ContentSchema(this.config, this.httpClient, this.authenticationManager);
this.helpers = new _helpers.Helpers(this.config);
}
/** Exposes methods for querying Squidex content for a particular schema */
content(schema) {
if (schema === undefined) {
throw new Error('[SquidexClient] Schema is required');
}
this.contentSchema.schema = schema;
return this.contentSchema;
} // TODO:
// * Expose query methods for other admin type API endpoints - https://cloud.squidex.io/api/docs
}
exports.SquidexClient = SquidexClient;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zcXVpZGV4LWNsaWVudC50cyJdLCJuYW1lcyI6WyJTcXVpZGV4Q2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiaHR0cENsaWVudCIsImNvbmZpZyIsIkNvbmZpZ3VyYXRpb25NYW5hZ2VyIiwiYnVpbGRDb25maWd1cmF0aW9uIiwidW5kZWZpbmVkIiwiTm9kZUZldGNoQ2xpZW50IiwiYXV0aGVudGljYXRpb25NYW5hZ2VyIiwiQXV0aGVudGljYXRpb25NYW5hZ2VyIiwiY29udGVudFNjaGVtYSIsIkNvbnRlbnRTY2hlbWEiLCJoZWxwZXJzIiwiSGVscGVycyIsImNvbnRlbnQiLCJzY2hlbWEiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sTUFBTUEsYUFBTixDQUFvQjtBQUN2Qjs7QUFHQTs7QUFNQTs7Ozs7Ozs7Ozs7QUFXQUMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQXVEQyxVQUF2RCxFQUFnRjtBQUFBLFNBQXpCQSxVQUF5QixHQUF6QkEsVUFBeUI7O0FBQUE7O0FBQUE7O0FBQUE7O0FBQUE7O0FBQ3ZGLFNBQUtDLE1BQUwsR0FBY0Msb0NBQXFCQyxrQkFBckIsQ0FBd0NKLE9BQXhDLENBQWQ7O0FBRUEsUUFBSSxLQUFLQyxVQUFMLEtBQW9CSSxTQUF4QixFQUFtQztBQUMvQixXQUFLSixVQUFMLEdBQWtCLElBQUlLLDBCQUFKLENBQW9CLEtBQUtKLE1BQXpCLENBQWxCO0FBQ0g7O0FBRUQsU0FBS0sscUJBQUwsR0FBNkIsSUFBSUMsNENBQUosQ0FBMEIsS0FBS04sTUFBL0IsRUFBdUMsS0FBS0QsVUFBNUMsQ0FBN0I7QUFFQSxTQUFLUSxhQUFMLEdBQXFCLElBQUlDLHNCQUFKLENBQWtCLEtBQUtSLE1BQXZCLEVBQStCLEtBQUtELFVBQXBDLEVBQWdELEtBQUtNLHFCQUFyRCxDQUFyQjtBQUVBLFNBQUtJLE9BQUwsR0FBZSxJQUFJQyxnQkFBSixDQUFZLEtBQUtWLE1BQWpCLENBQWY7QUFDSDtBQUVEOzs7QUFDT1csRUFBQUEsT0FBUCxDQUFlQyxNQUFmLEVBQThDO0FBQzFDLFFBQUlBLE1BQU0sS0FBS1QsU0FBZixFQUEwQjtBQUN0QixZQUFNLElBQUlVLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBRUQsU0FBS04sYUFBTCxDQUFtQkssTUFBbkIsR0FBNEJBLE1BQTVCO0FBRUEsV0FBTyxLQUFLTCxhQUFaO0FBQ0gsR0E1Q3NCLENBOEN2QjtBQUNBOzs7QUEvQ3VCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3F1aWRleENsaWVudENvbmZpZ3VyYXRpb24sIENvbmZpZ3VyYXRpb25NYW5hZ2VyIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICcuL2h0dHAnO1xuaW1wb3J0IHsgTm9kZUZldGNoQ2xpZW50IH0gZnJvbSAnLi9odHRwL25vZGUtZmV0Y2guY2xpZW50JztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uTWFuYWdlciB9IGZyb20gJy4vYXV0aGVudGljYXRpb24vYXV0aGVudGljYXRpb24tbWFuYWdlcic7XG5pbXBvcnQgeyBDb250ZW50U2NoZW1hIH0gZnJvbSAnLi9zY2hlbWFzL2NvbnRlbnQnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBjbGFzcyBTcXVpZGV4Q2xpZW50IHtcbiAgICAvKiogQ29uZmlndXJhdGlvbiBvcHRpb25zIGluIHVzZSBieSB0aGUgY2xpZW50ICovXG4gICAgcHVibGljIGNvbmZpZzogU3F1aWRleENsaWVudENvbmZpZ3VyYXRpb247XG5cbiAgICAvKiogSGVscGVyIG1ldGhvZHMgKi9cbiAgICBwdWJsaWMgaGVscGVyczogSGVscGVycztcblxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25NYW5hZ2VyOiBBdXRoZW50aWNhdGlvbk1hbmFnZXI7XG4gICAgcHJpdmF0ZSBjb250ZW50U2NoZW1hOiBDb250ZW50U2NoZW1hO1xuXG4gICAgLyoqXG4gICAgICogTm9kZUpTIGNsaWVudCBmb3IgdGhlIFNxdWlkZXggQ01TXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGNsaWVudCA9IG5ldyBTcXVpZGV4Q2xpZW50KHtcbiAgICAgKiAgYXBwTmFtZTogJ215LWFwcCcsXG4gICAgICogIGNsaWVudElkOiAnbXktYXBwOmRlZmF1bHQnLFxuICAgICAqICBjbGllbnRTZWNyZXQ6ICdTRUtSSVQnXG4gICAgICogfSlcbiAgICAgKiBjb25zdCBwb3N0cyA9IGF3YWl0IGNsaWVudC5xdWVyeTxCbG9nUG9zdERUTz4oJ1Bvc3RzJylcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFNxdWlkZXhDbGllbnRDb25maWd1cmF0aW9uPiwgcHJpdmF0ZSBodHRwQ2xpZW50PzogSHR0cENsaWVudCkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IENvbmZpZ3VyYXRpb25NYW5hZ2VyLmJ1aWxkQ29uZmlndXJhdGlvbihvcHRpb25zKTtcblxuICAgICAgICBpZiAodGhpcy5odHRwQ2xpZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBOb2RlRmV0Y2hDbGllbnQodGhpcy5jb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbk1hbmFnZXIgPSBuZXcgQXV0aGVudGljYXRpb25NYW5hZ2VyKHRoaXMuY29uZmlnLCB0aGlzLmh0dHBDbGllbnQpO1xuXG4gICAgICAgIHRoaXMuY29udGVudFNjaGVtYSA9IG5ldyBDb250ZW50U2NoZW1hKHRoaXMuY29uZmlnLCB0aGlzLmh0dHBDbGllbnQsIHRoaXMuYXV0aGVudGljYXRpb25NYW5hZ2VyKTtcblxuICAgICAgICB0aGlzLmhlbHBlcnMgPSBuZXcgSGVscGVycyh0aGlzLmNvbmZpZyk7XG4gICAgfVxuXG4gICAgLyoqIEV4cG9zZXMgbWV0aG9kcyBmb3IgcXVlcnlpbmcgU3F1aWRleCBjb250ZW50IGZvciBhIHBhcnRpY3VsYXIgc2NoZW1hICovXG4gICAgcHVibGljIGNvbnRlbnQoc2NoZW1hOiBzdHJpbmcpOiBDb250ZW50U2NoZW1hIHtcbiAgICAgICAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTcXVpZGV4Q2xpZW50XSBTY2hlbWEgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGVudFNjaGVtYS5zY2hlbWEgPSBzY2hlbWE7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudFNjaGVtYTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOlxuICAgIC8vICogRXhwb3NlIHF1ZXJ5IG1ldGhvZHMgZm9yIG90aGVyIGFkbWluIHR5cGUgQVBJIGVuZHBvaW50cyAtIGh0dHBzOi8vY2xvdWQuc3F1aWRleC5pby9hcGkvZG9jc1xufVxuIl19