dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
35 lines (34 loc) • 1.04 kB
JavaScript
import { anyOf } from '../../../../schema/anyOf/index.js';
import { fromSchemaDTO } from './attribute.js';
/**
* @debt feature "handle defaults, links & validators"
*/
export const fromAnyOfSchemaDTO = ({ elements, ...props }) => {
/**
* @debt types "fix those casts"
*/
let $attr = anyOf(...elements.map(fromSchemaDTO));
const { required, hidden, key, savedAs, discriminator, keyDefault, putDefault, updateDefault, keyLink, putLink, updateLink } = props;
keyDefault;
putDefault;
updateDefault;
keyLink;
putLink;
updateLink;
if (required !== undefined && required !== 'atLeastOnce') {
$attr = $attr.required(required);
}
if (hidden !== undefined && hidden) {
$attr = $attr.hidden(hidden);
}
if (key !== undefined && key) {
$attr = $attr.key(key);
}
if (savedAs !== undefined) {
$attr = $attr.savedAs(savedAs);
}
if (discriminator !== undefined) {
$attr = $attr.discriminate(discriminator);
}
return $attr;
};