@maxio-com/advanced-billing-sdk
Version:
Ultimate billing and pricing flexibility for B2B SaaS. Maxio integrates directly into your product, so you can seamlessly manage your product catalog, bill customers, and collect payments.
121 lines • 6.2 kB
JavaScript
;
/**
* AdvancedBilling
*
* This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
var tslib_1 = require("tslib");
var authProvider_js_1 = require("./authProvider.js");
var configuration_js_1 = require("./configuration.js");
var defaultConfiguration_js_1 = require("./defaultConfiguration.js");
var core_js_1 = require("./core.js");
var core_js_2 = require("./core.js");
var core_js_3 = require("./core.js");
var core_js_4 = require("./core.js");
var core_js_5 = require("./core.js");
var clientAdapter_js_1 = require("./clientAdapter.js");
var Client = /** @class */ (function () {
function Client(config) {
var _this = this;
var _a, _b, _c, _d, _e;
this._config = tslib_1.__assign(tslib_1.__assign({}, defaultConfiguration_js_1.DEFAULT_CONFIGURATION), config);
this._retryConfig = tslib_1.__assign(tslib_1.__assign({}, defaultConfiguration_js_1.DEFAULT_RETRY_CONFIG), (_a = this._config.httpClientOptions) === null || _a === void 0 ? void 0 : _a.retryConfig);
this._timeout =
typeof ((_b = this._config.httpClientOptions) === null || _b === void 0 ? void 0 : _b.timeout) != 'undefined'
? this._config.httpClientOptions.timeout
: this._config.timeout;
this._userAgent = (0, core_js_4.updateUserAgent)('AB SDK TypeScript:7.0.1 on OS {os-info}');
this._requestBuilderFactory = createRequestHandlerFactory(function (server) { return getBaseUri(server, _this._config); }, (0, authProvider_js_1.createAuthProviderFromConfig)(this._config), new clientAdapter_js_1.HttpClient(core_js_5.AbortError, {
timeout: this._timeout,
clientConfigOverrides: this._config.unstable_httpClientOptions,
httpAgent: (_c = this._config.httpClientOptions) === null || _c === void 0 ? void 0 : _c.httpAgent,
httpsAgent: (_d = this._config.httpClientOptions) === null || _d === void 0 ? void 0 : _d.httpsAgent,
proxySettings: (_e = this._config.httpClientOptions) === null || _e === void 0 ? void 0 : _e.proxySettings,
}), [
withErrorHandlers,
withUserAgent(this._userAgent),
withAuthenticationByDefault,
], this._retryConfig);
}
Client.prototype.getRequestBuilderFactory = function () {
return this._requestBuilderFactory;
};
/**
* Clone this client and override given configuration options
*/
Client.prototype.withConfiguration = function (config) {
return new Client(tslib_1.__assign(tslib_1.__assign({}, this._config), config));
};
return Client;
}());
exports.Client = Client;
function createHttpClientAdapter(client) {
var _this = this;
return function (request, requestOptions) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, client.executeRequest(request, requestOptions)];
case 1: return [2 /*return*/, _a.sent()];
}
});
}); };
}
function getBaseUri(server, config) {
if (server === void 0) { server = 'production'; }
if (config.environment === configuration_js_1.Environment.US) {
if (server === 'production') {
return (0, core_js_2.pathTemplate)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["https://", ".chargify.com"], ["https://", ".chargify.com"])), new core_js_2.SkipEncode(config.site));
}
if (server === 'ebb') {
return (0, core_js_2.pathTemplate)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["https://events.chargify.com/", ""], ["https://events.chargify.com/", ""])), new core_js_2.SkipEncode(config.site));
}
}
if (config.environment === configuration_js_1.Environment.EU) {
if (server === 'production') {
return (0, core_js_2.pathTemplate)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["https://", ".ebilling.maxio.com"], ["https://", ".ebilling.maxio.com"])), new core_js_2.SkipEncode(config.site));
}
if (server === 'ebb') {
return (0, core_js_2.pathTemplate)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["https://events.chargify.com/", ""], ["https://events.chargify.com/", ""])), new core_js_2.SkipEncode(config.site));
}
}
throw new Error('Could not get Base URL. Invalid environment or server.');
}
function createRequestHandlerFactory(baseUrlProvider, authProvider, httpClient, addons, retryConfig) {
var requestBuilderFactory = (0, core_js_5.createRequestBuilderFactory)(createHttpClientAdapter(httpClient), baseUrlProvider, core_js_1.ApiError, authProvider, retryConfig);
return tap.apply(void 0, tslib_1.__spreadArray([requestBuilderFactory], addons, false));
}
function tap(requestBuilderFactory) {
var callback = [];
for (var _i = 1; _i < arguments.length; _i++) {
callback[_i - 1] = arguments[_i];
}
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var requestBuilder = requestBuilderFactory.apply(void 0, args);
callback.forEach(function (c) { return c(requestBuilder); });
return requestBuilder;
};
}
function withErrorHandlers(rb) {
rb.defaultToError(core_js_1.ApiError);
}
function withUserAgent(userAgent) {
return function (rb) {
rb.interceptRequest(function (request) {
var _a;
var headers = (_a = request.headers) !== null && _a !== void 0 ? _a : {};
(0, core_js_3.setHeader)(headers, 'user-agent', userAgent);
return tslib_1.__assign(tslib_1.__assign({}, request), { headers: headers });
});
};
}
function withAuthenticationByDefault(rb) {
rb.authenticate([{ basicAuth: true }]);
}
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
//# sourceMappingURL=client.js.map