UNPKG

@datastax/astra-db-ts

Version:
52 lines (51 loc) 2.46 kB
"use strict"; // Copyright Datastax, Inc // SPDX-License-Identifier: Apache-2.0 Object.defineProperty(exports, "__esModule", { value: true }); exports.DbOptsHandler = 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 ser_des_js_1 = require("../../documents/tables/ser-des/ser-des.js"); const ser_des_js_2 = require("../../documents/collections/ser-des/ser-des.js"); const monoid = opts_handlers_js_1.monoids.object({ logging: internal_logger_js_1.InternalLogger.cfg, keyspace: opts_handlers_js_1.monoids.optional(), dataApiPath: opts_handlers_js_1.monoids.optional(), collSerdes: ser_des_js_2.CollSerDes.cfg, tableSerdes: ser_des_js_1.TableSerDes.cfg, timeoutDefaults: timeouts_js_1.Timeouts.cfg, token: index_js_1.TokenProvider.opts, }); const decoder = (0, decoders_1.nullish)((0, decoders_1.exact)({ logging: internal_logger_js_1.InternalLogger.cfg.decoder, token: index_js_1.TokenProvider.opts.decoder, dataApiPath: (0, decoders_1.optional)(decoders_1.string), keyspace: (0, decoders_1.optional)((0, decoders_1.regex)(/^\w{1,48}$/, 'Expected a string of 1-48 alphanumeric characters')), timeoutDefaults: timeouts_js_1.Timeouts.cfg.decoder, serdes: (0, decoders_1.optional)((0, decoders_1.exact)({ collection: ser_des_js_2.CollSerDes.cfg.decoder, table: ser_des_js_1.TableSerDes.cfg.decoder, mutateInPlace: (0, decoders_1.optional)((0, decoders_1.oneOf)([true, false])), })), })); const transformer = decoder.transform((input) => { var _a, _b; if (!input) { return monoid.empty; } if (input.serdes) { (_a = input.serdes.collection).mutateInPlace ?? (_a.mutateInPlace = input.serdes.mutateInPlace); (_b = input.serdes.table).mutateInPlace ?? (_b.mutateInPlace = input.serdes.mutateInPlace); } return { ...input, keyspace: input.keyspace, dataApiPath: input.dataApiPath, collSerdes: input.serdes?.collection ?? ser_des_js_2.CollSerDes.cfg.empty, tableSerdes: input.serdes?.table ?? ser_des_js_1.TableSerDes.cfg.empty, }; }); exports.DbOptsHandler = new opts_handlers_js_1.MonoidalOptionsHandler(transformer, monoid);