dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
19 lines (18 loc) • 980 B
JavaScript
;
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);
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, zod_1.z.object(Object.fromEntries(displayedAttrEntries.map(([attributeName, attribute]) => [
attributeName,
(0, schema_js_1.schemaZodParser)(attribute, { ...options, defined: false })
])))))));
};
exports.mapZodParser = mapZodParser;