@scaleway/sdk-client
Version:
Scaleway SDK Client
32 lines (31 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const index = require("../internal/logger/index.cjs");
const clientIniFactory = require("./client-ini-factory.cjs");
const clientSettings = require("./client-settings.cjs");
const constants = require("./constants.cjs");
const buildFetcher = require("./fetch/build-fetcher.cjs");
const DEFAULT_SETTINGS = {
apiURL: "https://api.scaleway.com",
httpClient: fetch,
interceptors: [],
userAgent: constants.userAgent
};
const createAdvancedClient = (...configs) => {
const settings = configs.concat([clientIniFactory.withLegacyInterceptors()]).reduce(
(currentSettings, config) => config(currentSettings),
DEFAULT_SETTINGS
);
clientSettings.assertValidSettings(settings);
index.getLogger().info(`init Scaleway SDK version ${constants.version}`);
return {
fetch: buildFetcher.buildFetcher(settings, settings.httpClient),
settings
};
};
const createClient = (settings = {}) => createAdvancedClient(
clientIniFactory.withProfile(settings),
clientIniFactory.withAdditionalInterceptors(settings.interceptors ?? [])
);
exports.createAdvancedClient = createAdvancedClient;
exports.createClient = createClient;