UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

20 lines (19 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mapZodParser = void 0; const zod_1 = require("zod"); const utils_js_1 = require("../utils.js"); const schema_js_1 = require("./schema.js"); const utils_js_2 = require("./utils.js"); const mapZodParser = (schema, options = {}) => { const { mode = 'put' } = options; const displayedAttrEntries = mode === 'key' ? Object.entries(schema.attributes).filter(([, { props }]) => props.key) : Object.entries(schema.attributes); const zodObject = zod_1.z.object(Object.fromEntries(displayedAttrEntries.map(([attributeName, attribute]) => [ attributeName, (0, schema_js_1.schemaZodParser)(attribute, { ...options, defined: false }) ]))); return (0, utils_js_2.withAttributeNameEncoding)(schema, options, (0, utils_js_2.withDefault)(schema, options, (0, utils_js_2.withOptional)(schema, options, (0, utils_js_1.withValidate)(schema, schema.props.strict ? zodObject.strict() : zodObject)))); }; exports.mapZodParser = mapZodParser;