@datastax/astra-db-ts
Version:
Data API TypeScript client
18 lines (17 loc) • 745 B
JavaScript
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
import { boolean, exact, nullish, optional } from 'decoders';
import { serDesDecoders, serdesMonoidSchema, serDesTransform, } from '../../../lib/api/ser-des/cfg-handler.js';
import { MonoidalOptionsHandler, monoids } from '../../../lib/opts-handlers.js';
const monoid = monoids.object({
...serdesMonoidSchema,
sparseData: monoids.optional(),
});
const decoder = nullish(exact({
...serDesDecoders,
sparseData: optional(boolean),
}));
const transformer = decoder.transform((input) => (input)
? { ...serDesTransform(input), sparseData: input.sparseData }
: monoid.empty);
export const TableSerDesCfgHandler = new MonoidalOptionsHandler(transformer, monoid);