@datastax/astra-db-ts
Version:
Data API TypeScript client
51 lines (50 loc) • 2.31 kB
JavaScript
;
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectBasedHeadersProviderOptsHandler = exports.StringBasedHeadersProviderOptsHandler = void 0;
const index_js_1 = require("../../../lib/headers-providers/index.js");
const opts_handlers_js_1 = require("../../../lib/opts-handlers.js");
const decoders_1 = require("decoders");
const utils_js_1 = require("../../../lib/utils.js");
const monoid = opts_handlers_js_1.monoids.object({
providers: opts_handlers_js_1.monoids.array(),
});
const decoderFromStr = (0, decoders_1.nullish)((0, decoders_1.either)((0, utils_js_1.anyInstanceOf)(index_js_1.HeadersProvider), decoders_1.string));
const StringBasedHeadersProviderOptsHandler = (kleisli) => {
const transformer = decoderFromStr
.transform((input) => {
if (typeof input === 'string') {
return { providers: [new kleisli(input)] };
}
if ((0, utils_js_1.isNullish)(input)) {
return monoid.empty;
}
return { providers: [input] };
});
return new opts_handlers_js_1.MonoidalOptionsHandler(transformer, monoid);
};
exports.StringBasedHeadersProviderOptsHandler = StringBasedHeadersProviderOptsHandler;
const decoderFromObj = (0, decoders_1.nullish)((0, utils_js_1.oneOrMany)((0, decoders_1.either)((0, utils_js_1.anyInstanceOf)(index_js_1.HeadersProvider), (0, decoders_1.record)((0, decoders_1.optional)(decoders_1.string)))));
exports.ObjectBasedHeadersProviderOptsHandler = (() => {
const transformer = decoderFromObj.transform((input) => {
if (!input) {
return monoid.empty;
}
const asArray = (!Array.isArray(input)) ? [input] : input;
const providers = asArray.map((value) => {
if (value instanceof index_js_1.HeadersProvider) {
return value;
}
return new index_js_1.StaticHeadersProvider(value);
});
return { providers };
});
return new opts_handlers_js_1.MonoidalOptionsHandler(transformer, monoid);
})();
index_js_1.HeadersProvider.opts = {
fromStr: exports.StringBasedHeadersProviderOptsHandler,
fromObj: exports.ObjectBasedHeadersProviderOptsHandler,
monoid: monoid,
parsed: null,
};