UNPKG

fireball-db

Version:
75 lines (66 loc) 1.75 kB
var curried_prefix, curryRight, ensure_prefix, expression_names, expression_values, isFunction, map_parameters, mapping, ref; ref = require('lodash'), curryRight = ref.curryRight, isFunction = ref.isFunction; ensure_prefix = function(params, prefix) { var key, results, value; results = {}; for (key in params) { value = params[key]; if (!key.startsWith(prefix)) { key = "" + prefix + key; } results[key] = value; } return results; }; curried_prefix = curryRight(ensure_prefix); expression_names = curried_prefix('#'); expression_values = curried_prefix(':'); mapping = { names: function(key, value) { return { key: 'ExpressionAttributeNames', value: expression_names(value) }; }, values: function(key, value) { return { key: 'ExpressionAttributeValues', value: expression_values(value) }; }, condition: 'ConditionExpression', update: 'UpdateExpression', projection: 'ProjectionExpression', filter: 'FilterExpression', key_condition: 'KeyConditionExpression', index: 'IndexName', limit: 'Limit', forward: 'ScanIndexForward' }; map_parameters = function(params) { var key, mapped, mapper, result, value; result = {}; for (key in params) { value = params[key]; mapper = mapping[key]; if (mapper != null) { mapped = { key: mapper, value: value }; if (isFunction(mapper)) { mapped = mapper(key, value); } result[mapped.key] = mapped.value; } else { result[key] = value; } } return result; }; module.exports = { ensure_prefix: ensure_prefix, expression_names: expression_names, expression_values: expression_values, map_parameters: map_parameters };