UNPKG

1.27 kBJavaScriptView Raw
1var validations = require('./index')
2
3exports.types = {
4 ReturnConsumedCapacity: {
5 type: 'String',
6 enum: ['INDEXES', 'TOTAL', 'NONE'],
7 },
8 AttributesToGet: {
9 type: 'List',
10 lengthGreaterThanOrEqual: 1,
11 lengthLessThanOrEqual: 255,
12 children: 'String',
13 },
14 TableName: {
15 type: 'String',
16 notNull: true,
17 regex: '[a-zA-Z0-9_.-]+',
18 lengthGreaterThanOrEqual: 3,
19 lengthLessThanOrEqual: 255,
20 },
21 Key: {
22 type: 'Map<AttributeValue>',
23 notNull: true,
24 children: 'AttrStruct<ValueStruct>',
25 },
26 ConsistentRead: 'Boolean',
27 ProjectionExpression: {
28 type: 'String',
29 },
30 ExpressionAttributeNames: {
31 type: 'Map<java.lang.String>',
32 children: 'String',
33 },
34}
35
36exports.custom = function(data) {
37
38 var msg = validations.validateExpressionParams(data, ['ProjectionExpression'], ['AttributesToGet'])
39 if (msg) return msg
40
41 for (var key in data.Key) {
42 msg = validations.validateAttributeValue(data.Key[key])
43 if (msg) return msg
44 }
45 if (data.AttributesToGet) {
46 msg = validations.findDuplicate(data.AttributesToGet)
47 if (msg) return 'One or more parameter values were invalid: Duplicate value in attribute name: ' + msg
48 }
49 msg = validations.validateExpressions(data)
50 if (msg) return msg
51}