dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
40 lines (39 loc) • 1.49 kB
JavaScript
import { jsonStringify } from '../../../../transformers/jsonStringify.js';
import { pipe } from '../../../../transformers/pipe.js';
import { prefix } from '../../../../transformers/prefix.js';
import { suffix } from '../../../../transformers/suffix.js';
export const fromTransformerDTO = (transformerDTO) => {
try {
switch (transformerDTO.transformerId) {
case 'custom':
return null;
case 'jsonStringify': {
const { space } = transformerDTO;
return jsonStringify({ space });
}
case 'prefix': {
const { prefix: _prefix, delimiter } = transformerDTO;
return prefix(_prefix, { delimiter });
}
case 'suffix': {
const { suffix: _suffix, delimiter } = transformerDTO;
return suffix(_suffix, { delimiter });
}
case 'pipe': {
const { transformers: transformerDTOs } = transformerDTO;
const transformers = [];
for (const transformerDTO of transformerDTOs) {
const transformer = fromTransformerDTO(transformerDTO);
if (transformer === null) {
return null;
}
transformers.push(transformer);
}
return pipe(...transformers);
}
}
}
catch {
return null;
}
};