@querc/squidex-client
Version:
NodeJS client for the [Squidex](https://squidex.io/) CMS
41 lines (29 loc) • 4.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ConfigurationManager = void 0;
var _squidexClientConfiguration = require("./squidex-client-configuration");
class ConfigurationManager {
static buildConfiguration(options, ...extraOptions) {
// Validate configuration options
if (options === undefined) {
throw new Error('[SquidexClient] Configuration options are required, at least `clientId` & `clientSecret`');
}
if (options.clientId === undefined) {
throw new Error('[SquidexClient] Configuration option `clientId` is required');
}
if (options.clientId.split(':').length < 2) {
throw new Error('[SquidexClient] Configuration option `clientId` must be in the format `APP_NAME:CLIENT_NAME`');
}
if (options.clientSecret === undefined) {
throw new Error('[SquidexClient] Configuration option `clientSecret` is required');
} // Infer the application name from the Client ID if not supplied
if (options.appName === undefined) {
options.appName = options.clientId.split(':')[0];
} // Merge configuration
return Object.assign({}, new _squidexClientConfiguration.SquidexClientConfiguration(), options, ...extraOptions);
}
}
exports.ConfigurationManager = ConfigurationManager;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24tbWFuYWdlci50cyJdLCJuYW1lcyI6WyJDb25maWd1cmF0aW9uTWFuYWdlciIsImJ1aWxkQ29uZmlndXJhdGlvbiIsIm9wdGlvbnMiLCJleHRyYU9wdGlvbnMiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNsaWVudElkIiwic3BsaXQiLCJsZW5ndGgiLCJjbGllbnRTZWNyZXQiLCJhcHBOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwiU3F1aWRleENsaWVudENvbmZpZ3VyYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFTyxNQUFNQSxvQkFBTixDQUEyQjtBQUM5QixTQUFjQyxrQkFBZCxDQUNJQyxPQURKLEVBRUksR0FBR0MsWUFGUCxFQUc4QjtBQUMxQjtBQUVBLFFBQUlELE9BQU8sS0FBS0UsU0FBaEIsRUFBMkI7QUFDdkIsWUFBTSxJQUFJQyxLQUFKLENBQVUsMEZBQVYsQ0FBTjtBQUNIOztBQUVELFFBQUlILE9BQU8sQ0FBQ0ksUUFBUixLQUFxQkYsU0FBekIsRUFBb0M7QUFDaEMsWUFBTSxJQUFJQyxLQUFKLENBQVUsNkRBQVYsQ0FBTjtBQUNIOztBQUVELFFBQUlILE9BQU8sQ0FBQ0ksUUFBUixDQUFpQkMsS0FBakIsQ0FBdUIsR0FBdkIsRUFBNEJDLE1BQTVCLEdBQXFDLENBQXpDLEVBQTRDO0FBQ3hDLFlBQU0sSUFBSUgsS0FBSixDQUNGLDhGQURFLENBQU47QUFHSDs7QUFFRCxRQUFJSCxPQUFPLENBQUNPLFlBQVIsS0FBeUJMLFNBQTdCLEVBQXdDO0FBQ3BDLFlBQU0sSUFBSUMsS0FBSixDQUFVLGlFQUFWLENBQU47QUFDSCxLQW5CeUIsQ0FxQjFCOzs7QUFDQSxRQUFJSCxPQUFPLENBQUNRLE9BQVIsS0FBb0JOLFNBQXhCLEVBQW1DO0FBQy9CRixNQUFBQSxPQUFPLENBQUNRLE9BQVIsR0FBa0JSLE9BQU8sQ0FBQ0ksUUFBUixDQUFpQkMsS0FBakIsQ0FBdUIsR0FBdkIsRUFBNEIsQ0FBNUIsQ0FBbEI7QUFDSCxLQXhCeUIsQ0EwQjFCOzs7QUFDQSxXQUFPSSxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLElBQUlDLHNEQUFKLEVBQWxCLEVBQW9EWCxPQUFwRCxFQUE2RCxHQUFHQyxZQUFoRSxDQUFQO0FBQ0g7O0FBaEM2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxdWlkZXhDbGllbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9zcXVpZGV4LWNsaWVudC1jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25NYW5hZ2VyIHtcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkQ29uZmlndXJhdGlvbihcbiAgICAgICAgb3B0aW9uczogUGFydGlhbDxTcXVpZGV4Q2xpZW50Q29uZmlndXJhdGlvbj4sXG4gICAgICAgIC4uLmV4dHJhT3B0aW9uczogUGFydGlhbDxTcXVpZGV4Q2xpZW50Q29uZmlndXJhdGlvbj5bXVxuICAgICk6IFNxdWlkZXhDbGllbnRDb25maWd1cmF0aW9uIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgY29uZmlndXJhdGlvbiBvcHRpb25zXG5cbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbU3F1aWRleENsaWVudF0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSByZXF1aXJlZCwgYXQgbGVhc3QgYGNsaWVudElkYCAmIGBjbGllbnRTZWNyZXRgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jbGllbnRJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTcXVpZGV4Q2xpZW50XSBDb25maWd1cmF0aW9uIG9wdGlvbiBgY2xpZW50SWRgIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jbGllbnRJZC5zcGxpdCgnOicpLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnW1NxdWlkZXhDbGllbnRdIENvbmZpZ3VyYXRpb24gb3B0aW9uIGBjbGllbnRJZGAgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBBUFBfTkFNRTpDTElFTlRfTkFNRWAnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNsaWVudFNlY3JldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTcXVpZGV4Q2xpZW50XSBDb25maWd1cmF0aW9uIG9wdGlvbiBgY2xpZW50U2VjcmV0YCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5mZXIgdGhlIGFwcGxpY2F0aW9uIG5hbWUgZnJvbSB0aGUgQ2xpZW50IElEIGlmIG5vdCBzdXBwbGllZFxuICAgICAgICBpZiAob3B0aW9ucy5hcHBOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuYXBwTmFtZSA9IG9wdGlvbnMuY2xpZW50SWQuc3BsaXQoJzonKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1lcmdlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG5ldyBTcXVpZGV4Q2xpZW50Q29uZmlndXJhdGlvbigpLCBvcHRpb25zLCAuLi5leHRyYU9wdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==