@datastax/astra-db-ts
Version:
Data API TypeScript client
59 lines (58 loc) • 2.91 kB
JavaScript
;
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.RootOptsHandler = void 0;
const opts_handlers_js_1 = require("../../lib/opts-handlers.js");
const index_js_1 = require("../../lib/index.js");
const decoders_1 = require("decoders");
const timeouts_js_1 = require("../../lib/api/timeouts/timeouts.js");
const internal_logger_js_1 = require("../../lib/logging/internal-logger.js");
const environment_cfg_handler_js_1 = require("../../client/opts-handlers/environment-cfg-handler.js");
const caller_cfg_handler_js_1 = require("../../client/opts-handlers/caller-cfg-handler.js");
const db_opts_handler_js_1 = require("../../client/opts-handlers/db-opts-handler.js");
const admin_opts_handler_js_1 = require("../../client/opts-handlers/admin-opts-handler.js");
const http_opts_handler_js_1 = require("../../client/opts-handlers/http-opts-handler.js");
const decoder = (0, decoders_1.exact)({
logging: internal_logger_js_1.InternalLogger.cfg.decoder,
environment: environment_cfg_handler_js_1.EnvironmentCfgHandler.decoder,
httpOptions: http_opts_handler_js_1.HttpOptsHandler.decoder,
dbOptions: db_opts_handler_js_1.DbOptsHandler.decoder,
adminOptions: admin_opts_handler_js_1.AdminOptsHandler.decoder,
caller: caller_cfg_handler_js_1.CallerCfgHandler.decoder,
timeoutDefaults: timeouts_js_1.Timeouts.cfg.decoder,
additionalHeaders: index_js_1.HeadersProvider.opts.fromObj.decoder,
});
const RootOptsHandler = (defaultToken, client) => {
const transformer = decoder.transform((input) => {
const dbAndAdminCommon = {
timeoutDefaults: input.timeoutDefaults,
logging: input.logging,
};
return {
additionalHeaders: input.additionalHeaders,
environment: input.environment,
fetchCtx: input.httpOptions,
caller: input.caller,
client: client,
dbOptions: db_opts_handler_js_1.DbOptsHandler.concat([input.dbOptions, {
...db_opts_handler_js_1.DbOptsHandler.empty,
token: index_js_1.TokenProvider.opts.concat([
defaultToken,
input.dbOptions.token,
]),
...dbAndAdminCommon,
}]),
adminOptions: admin_opts_handler_js_1.AdminOptsHandler.concat([input.adminOptions, {
...admin_opts_handler_js_1.AdminOptsHandler.empty,
adminToken: index_js_1.TokenProvider.opts.concat([
defaultToken,
input.adminOptions.adminToken,
]),
...dbAndAdminCommon,
}]),
};
});
return new opts_handlers_js_1.OptionsHandler(transformer);
};
exports.RootOptsHandler = RootOptsHandler;