UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

64 lines (63 loc) 2.49 kB
import { DynamoDBToolboxError } from '../../../../errors/index.js'; import { transformBeginsWithCondition } from './conditions/beginsWith.js'; import { transformBetweenCondition } from './conditions/between.js'; import { transformContainsCondition } from './conditions/contains.js'; import { transformEqCondition, transformNeCondition } from './conditions/eq.js'; import { transformExistsCondition } from './conditions/exists.js'; import { transformInCondition } from './conditions/in.js'; import { transformAndCondition, transformNotCondition, transformOrCondition } from './conditions/logical.js'; import { transformGtCondition, transformGteCondition, transformLtCondition, transformLteCondition } from './conditions/range.js'; import { transformTypeCondition } from './conditions/type.js'; export const transformCondition = (schema, condition) => { if ('value' in condition) { return condition; } if ('or' in condition) { return transformOrCondition(schema, condition); } if ('and' in condition) { return transformAndCondition(schema, condition); } if ('not' in condition) { return transformNotCondition(schema, condition); } if ('eq' in condition) { return transformEqCondition(schema, condition); } if ('ne' in condition) { return transformNeCondition(schema, condition); } if ('gte' in condition) { return transformGteCondition(schema, condition); } if ('gt' in condition) { return transformGtCondition(schema, condition); } if ('lte' in condition) { return transformLteCondition(schema, condition); } if ('lt' in condition) { return transformLtCondition(schema, condition); } if ('between' in condition) { return transformBetweenCondition(schema, condition); } if ('beginsWith' in condition) { return transformBeginsWithCondition(schema, condition); } if ('in' in condition) { return transformInCondition(schema, condition); } if ('contains' in condition) { return transformContainsCondition(schema, condition); } if ('exists' in condition) { return transformExistsCondition(schema, condition); } if ('type' in condition) { return transformTypeCondition(schema, condition); } throw new DynamoDBToolboxError('actions.invalidCondition', { message: 'Invalid condition: Unable to detect valid condition type.' }); };