dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
25 lines (24 loc) • 925 B
JavaScript
import { isSerializableTransformer } from '../../../../transformers/index.js';
import { getDefaultsDTO } from './utils.js';
/**
* @debt feature "handle defaults, links & validators DTOs"
*/
export const getAnySchemaDTO = (schema) => {
const defaultsDTO = getDefaultsDTO(schema);
const { required, hidden, key, savedAs, transform } = schema.props;
return {
type: 'any',
...(required !== undefined && required !== 'atLeastOnce' ? { required } : {}),
...(hidden !== undefined && hidden ? { hidden } : {}),
...(key !== undefined && key ? { key } : {}),
...(savedAs !== undefined ? { savedAs } : {}),
...(transform !== undefined
? {
transform: (isSerializableTransformer(transform)
? transform.toJSON()
: { transformerId: 'custom' })
}
: {}),
...defaultsDTO
};
};