dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
16 lines (15 loc) • 707 B
JavaScript
import { getFormattedValueJSONSchema } from './schema.js';
export const getFormattedMapJSONSchema = (schema) => {
const displayedAttrEntries = Object.entries(schema.attributes).filter(([, attr]) => !attr.props.hidden);
const requiredProperties = displayedAttrEntries
.filter(([, { props }]) => props.required !== 'never')
.map(([attributeName]) => attributeName);
return {
type: 'object',
properties: Object.fromEntries(displayedAttrEntries.map(([attributeName, attribute]) => [
attributeName,
getFormattedValueJSONSchema(attribute)
])),
...(requiredProperties.length > 0 ? { required: requiredProperties } : {})
};
};