lemon-core 4.1.14 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/test-helper.d.ts +2 -2
- package/dist/common/test-helper.js +24 -26
- package/dist/common/test-helper.js.map +1 -1
- package/dist/controllers/dummy-controller.js +39 -46
- package/dist/controllers/dummy-controller.js.map +1 -1
- package/dist/controllers/general-api-controller.js +95 -100
- package/dist/controllers/general-api-controller.js.map +1 -1
- package/dist/controllers/general-controller.js +81 -82
- package/dist/controllers/general-controller.js.map +1 -1
- package/dist/cores/api/api-service.d.ts +1 -1
- package/dist/cores/api/api-service.js +228 -269
- package/dist/cores/api/api-service.js.map +1 -1
- package/dist/cores/aws/aws-kms-service.d.ts +1 -2
- package/dist/cores/aws/aws-kms-service.js +143 -153
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.d.ts +2 -4
- package/dist/cores/aws/aws-s3-service.js +306 -330
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.js +147 -153
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.js +149 -170
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/aws/index.js +10 -20
- package/dist/cores/aws/index.js.map +1 -1
- package/dist/cores/cache/cache-service.d.ts +2 -2
- package/dist/cores/cache/cache-service.js +435 -499
- package/dist/cores/cache/cache-service.js.map +1 -1
- package/dist/cores/config/config-service.d.ts +1 -1
- package/dist/cores/config/config-service.js +56 -63
- package/dist/cores/config/config-service.js.map +1 -1
- package/dist/cores/config/index.js +14 -24
- package/dist/cores/config/index.js.map +1 -1
- package/dist/cores/core-services.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-query-service.js +37 -51
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.d.ts +2 -2
- package/dist/cores/dynamo/dynamo-scan-service.js +29 -40
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +2 -2
- package/dist/cores/dynamo/dynamo-service.js +528 -601
- package/dist/cores/dynamo/dynamo-service.js.map +1 -1
- package/dist/cores/dynamo/tools/expressions.js +17 -7
- package/dist/cores/dynamo/tools/expressions.js.map +1 -1
- package/dist/cores/dynamo/tools/query.js +142 -127
- package/dist/cores/dynamo/tools/query.js.map +1 -1
- package/dist/cores/dynamo/tools/scan.js +111 -97
- package/dist/cores/dynamo/tools/scan.js.map +1 -1
- package/dist/cores/dynamo/tools/serializer.js +17 -7
- package/dist/cores/dynamo/tools/serializer.js.map +1 -1
- package/dist/cores/dynamo/tools/utils.d.ts +0 -2
- package/dist/cores/dynamo/tools/utils.js.map +1 -1
- package/dist/cores/elastic/elastic6-query-service.js +307 -324
- package/dist/cores/elastic/elastic6-query-service.js.map +1 -1
- package/dist/cores/elastic/elastic6-service.d.ts +3 -3
- package/dist/cores/elastic/elastic6-service.js +568 -647
- package/dist/cores/elastic/elastic6-service.js.map +1 -1
- package/dist/cores/elastic/hangul-service.js +52 -54
- package/dist/cores/elastic/hangul-service.js.map +1 -1
- package/dist/cores/lambda/index.js +42 -36
- package/dist/cores/lambda/index.js.map +1 -1
- package/dist/cores/lambda/lambda-alb-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-alb-handler.js +59 -72
- package/dist/cores/lambda/lambda-alb-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-cognito-handler.js +10 -19
- package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-cron-handler.js +14 -23
- package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js +57 -67
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.d.ts +22 -22
- package/dist/cores/lambda/lambda-handler.js +93 -106
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-notification-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-notification-handler.js +39 -50
- package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sns-handler.js +79 -88
- package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sqs-handler.js +79 -88
- package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +21 -43
- package/dist/cores/lambda/lambda-web-handler.js +392 -482
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-wss-handler.js +23 -32
- package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
- package/dist/cores/protocol/index.js +10 -20
- package/dist/cores/protocol/index.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +3 -3
- package/dist/cores/protocol/protocol-service.js +235 -227
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/cores/storage/http-storage-service.js +65 -85
- package/dist/cores/storage/http-storage-service.js.map +1 -1
- package/dist/cores/storage/model-manager.js +66 -85
- package/dist/cores/storage/model-manager.js.map +1 -1
- package/dist/cores/storage/proxy-storage-service.d.ts +2 -2
- package/dist/cores/storage/proxy-storage-service.js +562 -599
- package/dist/cores/storage/proxy-storage-service.js.map +1 -1
- package/dist/cores/storage/redis-storage-service.js +163 -177
- package/dist/cores/storage/redis-storage-service.js.map +1 -1
- package/dist/cores/storage/storage-service.js +281 -322
- package/dist/cores/storage/storage-service.js.map +1 -1
- package/dist/engine/builder.d.ts +1 -1
- package/dist/engine/builder.js +59 -63
- package/dist/engine/builder.js.map +1 -1
- package/dist/engine/engine.d.ts +4 -4
- package/dist/engine/engine.js +9 -18
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/types.d.ts +1 -1
- package/dist/engine/utilities.d.ts +14 -10
- package/dist/engine/utilities.js +301 -280
- package/dist/engine/utilities.js.map +1 -1
- package/dist/environ.js +4 -6
- package/dist/environ.js.map +1 -1
- package/dist/extended/abstract-service.js +595 -645
- package/dist/extended/abstract-service.js.map +1 -1
- package/dist/extended/libs/sig-v4.js.map +1 -1
- package/dist/generated/field-registry.d.ts +10 -0
- package/dist/generated/field-registry.js +17 -0
- package/dist/generated/field-registry.js.map +1 -0
- package/dist/helpers/helpers.d.ts +17 -9
- package/dist/helpers/helpers.js +88 -78
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/dynamodb-value.js +2 -3
- package/dist/lib/dynamodb-value.js.map +1 -1
- package/dist/tools/express.js +4 -5
- package/dist/tools/express.js.map +1 -1
- package/dist/tools/tools.d.ts +3 -1
- package/dist/tools/tools.js +14 -21
- package/dist/tools/tools.js.map +1 -1
- package/package.json +19 -18
- package/dist/exec-cli.d.ts +0 -2
- package/dist/exec-cli.js +0 -211
- package/dist/exec-cli.js.map +0 -1
- package/dist/lib/dynamo/expressions.d.ts +0 -14
- package/dist/lib/dynamo/expressions.js +0 -212
- package/dist/lib/dynamo/expressions.js.map +0 -1
- package/dist/lib/dynamo/query.d.ts +0 -43
- package/dist/lib/dynamo/query.js +0 -246
- package/dist/lib/dynamo/query.js.map +0 -1
- package/dist/lib/dynamo/scan.d.ts +0 -33
- package/dist/lib/dynamo/scan.js +0 -172
- package/dist/lib/dynamo/scan.js.map +0 -1
- package/dist/lib/dynamo/serializer.d.ts +0 -12
- package/dist/lib/dynamo/serializer.js +0 -243
- package/dist/lib/dynamo/serializer.js.map +0 -1
- package/dist/lib/dynamo/utils.d.ts +0 -15
- package/dist/lib/dynamo/utils.js +0 -129
- package/dist/lib/dynamo/utils.js.map +0 -1
- package/dist/tools/shared.d.ts +0 -37
- package/dist/tools/shared.js +0 -130
- package/dist/tools/shared.js.map +0 -1
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// origin from: https://github.com/baseprime/dynamodb @20191106
|
|
3
|
-
// Copyright (c) 2016 Ryan Fitzgerald
|
|
4
|
-
/**
|
|
5
|
-
* `expressions.ts`
|
|
6
|
-
* - expressions
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @author Steve Jung <steve@lemoncloud.io>
|
|
10
|
-
* @date 2019-11-20 refactoring to ts via origin
|
|
11
|
-
*
|
|
12
|
-
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
13
|
-
*/
|
|
14
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
-
}
|
|
20
|
-
Object.defineProperty(o, k2, desc);
|
|
21
|
-
}) : (function(o, m, k, k2) {
|
|
22
|
-
if (k2 === undefined) k2 = k;
|
|
23
|
-
o[k2] = m[k];
|
|
24
|
-
}));
|
|
25
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
-
}) : function(o, v) {
|
|
28
|
-
o["default"] = v;
|
|
29
|
-
});
|
|
30
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
38
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.buildFilterExpression = exports.stringify = exports.serializeUpdateExpression = exports.parse = void 0;
|
|
42
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
43
|
-
const utils = __importStar(require("./utils"));
|
|
44
|
-
const serializer_1 = __importDefault(require("./serializer"));
|
|
45
|
-
const internals = {};
|
|
46
|
-
internals.actionWords = ['SET', 'ADD', 'REMOVE', 'DELETE'];
|
|
47
|
-
internals.regexMap = lodash_1.default.reduce(internals.actionWords, function (result, key) {
|
|
48
|
-
result[key] = new RegExp(key + '\\s*(.+?)\\s*(SET|ADD|REMOVE|DELETE|$)');
|
|
49
|
-
return result;
|
|
50
|
-
}, {});
|
|
51
|
-
// explanation http://stackoverflow.com/questions/3428618/regex-to-find-commas-that-arent-inside-and
|
|
52
|
-
internals.splitOperandsRegex = new RegExp(/\s*(?![^(]*\)),\s*/);
|
|
53
|
-
internals.match = function (actionWord, str) {
|
|
54
|
-
const match = internals.regexMap[actionWord].exec(str);
|
|
55
|
-
if (match && match.length >= 2) {
|
|
56
|
-
return match[1].split(internals.splitOperandsRegex);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const parse = function (str) {
|
|
63
|
-
return lodash_1.default.reduce(internals.actionWords, function (result, actionWord) {
|
|
64
|
-
result[actionWord] = internals.match(actionWord, str);
|
|
65
|
-
return result;
|
|
66
|
-
}, {});
|
|
67
|
-
};
|
|
68
|
-
exports.parse = parse;
|
|
69
|
-
const serializeUpdateExpression = function (schema, item) {
|
|
70
|
-
const datatypes = schema._modelDatatypes;
|
|
71
|
-
const data = utils.omitPrimaryKeys(schema, item);
|
|
72
|
-
const memo = {
|
|
73
|
-
expressions: {},
|
|
74
|
-
attributeNames: {},
|
|
75
|
-
values: {},
|
|
76
|
-
};
|
|
77
|
-
memo.expressions = lodash_1.default.reduce(internals.actionWords, function (result, key) {
|
|
78
|
-
result[key] = [];
|
|
79
|
-
return result;
|
|
80
|
-
}, {});
|
|
81
|
-
const result = lodash_1.default.reduce(data, function (result, value, key) {
|
|
82
|
-
const valueKey = ':' + key;
|
|
83
|
-
const nameKey = '#' + key;
|
|
84
|
-
if (lodash_1.default.isNull(value) || (lodash_1.default.isString(value) && lodash_1.default.isEmpty(value))) {
|
|
85
|
-
result.expressions.REMOVE.push(nameKey);
|
|
86
|
-
result.attributeNames[nameKey] = key;
|
|
87
|
-
}
|
|
88
|
-
else if (lodash_1.default.isPlainObject(value) && value.$add) {
|
|
89
|
-
result.expressions.ADD.push(nameKey + ' ' + valueKey);
|
|
90
|
-
result.values[valueKey] = serializer_1.default.serializeAttribute(value.$add, datatypes[key]);
|
|
91
|
-
result.attributeNames[nameKey] = key;
|
|
92
|
-
}
|
|
93
|
-
else if (lodash_1.default.isPlainObject(value) && value.$del) {
|
|
94
|
-
result.expressions.DELETE.push(nameKey + ' ' + valueKey);
|
|
95
|
-
result.values[valueKey] = serializer_1.default.serializeAttribute(value.$del, datatypes[key]);
|
|
96
|
-
result.attributeNames[nameKey] = key;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
result.expressions.SET.push(nameKey + ' = ' + valueKey);
|
|
100
|
-
result.values[valueKey] = serializer_1.default.serializeAttribute(value, datatypes[key]);
|
|
101
|
-
result.attributeNames[nameKey] = key;
|
|
102
|
-
}
|
|
103
|
-
return result;
|
|
104
|
-
}, memo);
|
|
105
|
-
return result;
|
|
106
|
-
};
|
|
107
|
-
exports.serializeUpdateExpression = serializeUpdateExpression;
|
|
108
|
-
const stringify = function (expressions) {
|
|
109
|
-
return lodash_1.default.reduce(expressions, function (result, value, key) {
|
|
110
|
-
if (!lodash_1.default.isEmpty(value)) {
|
|
111
|
-
if (lodash_1.default.isArray(value)) {
|
|
112
|
-
result.push(key + ' ' + value.join(', '));
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
result.push(key + ' ' + value);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return result;
|
|
119
|
-
}, []).join(' ');
|
|
120
|
-
};
|
|
121
|
-
exports.stringify = stringify;
|
|
122
|
-
internals.formatAttributeValue = function (val) {
|
|
123
|
-
if (lodash_1.default.isDate(val)) {
|
|
124
|
-
return val.toISOString();
|
|
125
|
-
}
|
|
126
|
-
return val;
|
|
127
|
-
};
|
|
128
|
-
internals.isFunctionOperator = function (operator) {
|
|
129
|
-
return lodash_1.default.includes([
|
|
130
|
-
'attribute_exists',
|
|
131
|
-
'attribute_not_exists',
|
|
132
|
-
'attribute_type',
|
|
133
|
-
'begins_with',
|
|
134
|
-
'contains',
|
|
135
|
-
'NOT contains',
|
|
136
|
-
'size',
|
|
137
|
-
], operator);
|
|
138
|
-
};
|
|
139
|
-
internals.uniqAttributeValueName = function (key, existingValueNames) {
|
|
140
|
-
let potentialName = ':' + key;
|
|
141
|
-
let idx = 1;
|
|
142
|
-
while (lodash_1.default.includes(existingValueNames, potentialName)) {
|
|
143
|
-
idx++;
|
|
144
|
-
potentialName = ':' + key + '_' + idx;
|
|
145
|
-
}
|
|
146
|
-
return potentialName;
|
|
147
|
-
};
|
|
148
|
-
const buildFilterExpression = function (key, operator, existingValueNames, val1, val2) {
|
|
149
|
-
// IN filter expression is unlike all the others where val1 is an array of values
|
|
150
|
-
if (operator === 'IN') {
|
|
151
|
-
return internals.buildInFilterExpression(key, existingValueNames, val1);
|
|
152
|
-
}
|
|
153
|
-
let v1 = internals.formatAttributeValue(val1);
|
|
154
|
-
const v2 = internals.formatAttributeValue(val2);
|
|
155
|
-
if (operator === 'attribute_exists' && v1 === false) {
|
|
156
|
-
operator = 'attribute_not_exists';
|
|
157
|
-
v1 = null;
|
|
158
|
-
}
|
|
159
|
-
else if (operator === 'attribute_exists' && v1 === true) {
|
|
160
|
-
v1 = null;
|
|
161
|
-
}
|
|
162
|
-
const path = '#' + key;
|
|
163
|
-
const v1ValueName = internals.uniqAttributeValueName(key, existingValueNames);
|
|
164
|
-
const v2ValueName = internals.uniqAttributeValueName(key, [v1ValueName].concat(existingValueNames));
|
|
165
|
-
let statement = '';
|
|
166
|
-
if (internals.isFunctionOperator(operator)) {
|
|
167
|
-
if (!lodash_1.default.isNull(v1) && !lodash_1.default.isUndefined(v1)) {
|
|
168
|
-
statement = operator + '(' + path + ', ' + v1ValueName + ')';
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
statement = operator + '(' + path + ')';
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
else if (operator === 'BETWEEN') {
|
|
175
|
-
statement = path + ' BETWEEN ' + v1ValueName + ' AND ' + v2ValueName;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
statement = [path, operator, v1ValueName].join(' ');
|
|
179
|
-
}
|
|
180
|
-
const attributeValues = {};
|
|
181
|
-
if (!lodash_1.default.isNull(v1) && !lodash_1.default.isUndefined(v1)) {
|
|
182
|
-
attributeValues[v1ValueName] = v1;
|
|
183
|
-
}
|
|
184
|
-
if (!lodash_1.default.isNull(v2) && !lodash_1.default.isUndefined(v2)) {
|
|
185
|
-
attributeValues[v2ValueName] = v2;
|
|
186
|
-
}
|
|
187
|
-
const attributeNames = {};
|
|
188
|
-
attributeNames[path] = key;
|
|
189
|
-
return {
|
|
190
|
-
attributeNames: attributeNames,
|
|
191
|
-
statement: statement,
|
|
192
|
-
attributeValues: attributeValues,
|
|
193
|
-
};
|
|
194
|
-
};
|
|
195
|
-
exports.buildFilterExpression = buildFilterExpression;
|
|
196
|
-
internals.buildInFilterExpression = function (key, existingValueNames, values) {
|
|
197
|
-
const path = '#' + key;
|
|
198
|
-
const attributeNames = {};
|
|
199
|
-
attributeNames[path] = key;
|
|
200
|
-
const attributeValues = lodash_1.default.reduce(values, function (result, val) {
|
|
201
|
-
const existing = lodash_1.default.keys(result).concat(existingValueNames);
|
|
202
|
-
const p = internals.uniqAttributeValueName(key, existing);
|
|
203
|
-
result[p] = internals.formatAttributeValue(val);
|
|
204
|
-
return result;
|
|
205
|
-
}, {});
|
|
206
|
-
return {
|
|
207
|
-
attributeNames: attributeNames,
|
|
208
|
-
statement: path + ' IN (' + lodash_1.default.keys(attributeValues) + ')',
|
|
209
|
-
attributeValues: attributeValues,
|
|
210
|
-
};
|
|
211
|
-
};
|
|
212
|
-
//# sourceMappingURL=expressions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/lib/dynamo/expressions.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qCAAqC;AACrC;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAuB;AACvB,+CAAiC;AACjC,8DAAsC;AAEtC,MAAM,SAAS,GAAQ,EAAE,CAAC;AAE1B,SAAS,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE3D,SAAS,CAAC,QAAQ,GAAG,gBAAC,CAAC,MAAM,CACzB,SAAS,CAAC,WAAW,EACrB,UAAU,MAAW,EAAE,GAAQ;IAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,wCAAwC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC;AAClB,CAAC,EACD,EAAE,CACL,CAAC;AAEF,oGAAoG;AACpG,SAAS,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAEhE,SAAS,CAAC,KAAK,GAAG,UAAU,UAAe,EAAE,GAAQ;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;KACvD;SAAM;QACH,OAAO,IAAI,CAAC;KACf;AACL,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,UAAU,GAAQ;IACnC,OAAO,gBAAC,CAAC,MAAM,CACX,SAAS,CAAC,WAAW,EACrB,UAAU,MAAW,EAAE,UAAe;QAClC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAC;AATW,QAAA,KAAK,SAShB;AAEK,MAAM,yBAAyB,GAAG,UAAU,MAAW,EAAE,IAAS;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;IAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG;QACT,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,MAAM,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,CAAC,WAAW,GAAG,gBAAC,CAAC,MAAM,CACvB,SAAS,CAAC,WAAW,EACrB,UAAU,MAAW,EAAE,GAAQ;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAEjB,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAAE,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,gBAAC,CAAC,MAAM,CACnB,IAAI,EACJ,UAAU,MAAW,EAAE,KAAU,EAAE,GAAQ;QACvC,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;QAE1B,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YAC5D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;SACxC;aAAM,IAAI,gBAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,oBAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;SACxC;aAAM,IAAI,gBAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,oBAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;SACxC;aAAM;YACH,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,oBAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;SACxC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,IAAI,CACP,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAlDW,QAAA,yBAAyB,6BAkDpC;AAEK,MAAM,SAAS,GAAG,UAAU,WAAgB;IAC/C,OAAO,gBAAC,CAAC,MAAM,CACX,WAAW,EACX,UAAU,MAAW,EAAE,KAAU,EAAE,GAAQ;QACvC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7C;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;aAClC;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAAE,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AAEF,SAAS,CAAC,oBAAoB,GAAG,UAAU,GAAQ;IAC/C,IAAI,gBAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACf,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;KAC5B;IAED,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,SAAS,CAAC,kBAAkB,GAAG,UAAU,QAAa;IAClD,OAAO,gBAAC,CAAC,QAAQ,CACb;QACI,kBAAkB;QAClB,sBAAsB;QACtB,gBAAgB;QAChB,aAAa;QACb,UAAU;QACV,cAAc;QACd,MAAM;KACT,EACD,QAAQ,CACX,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,CAAC,sBAAsB,GAAG,UAAU,GAAQ,EAAE,kBAAuB;IAC1E,IAAI,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,OAAO,gBAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,EAAE;QAClD,GAAG,EAAE,CAAC;QACN,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACzC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,UACjC,GAAQ,EACR,QAAa,EACb,kBAAuB,EACvB,IAAS,EACT,IAAU;IAEV,iFAAiF;IACjF,IAAI,QAAQ,KAAK,IAAI,EAAE;QACnB,OAAO,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;KAC3E;IAED,IAAI,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,QAAQ,KAAK,kBAAkB,IAAI,EAAE,KAAK,KAAK,EAAE;QACjD,QAAQ,GAAG,sBAAsB,CAAC;QAClC,EAAE,GAAG,IAAI,CAAC;KACb;SAAM,IAAI,QAAQ,KAAK,kBAAkB,IAAI,EAAE,KAAK,IAAI,EAAE;QACvD,EAAE,GAAG,IAAI,CAAC;KACb;IAED,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,MAAM,WAAW,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEpG,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,IAAI,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QACxC,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;YACrC,SAAS,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;SAChE;aAAM;YACH,SAAS,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;SAC3C;KACJ;SAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC/B,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;KACxE;SAAM;QACH,SAAS,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvD;IAED,MAAM,eAAe,GAAQ,EAAE,CAAC;IAEhC,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;QACrC,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;KACrC;IAED,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;QACrC,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;KACrC;IAED,MAAM,cAAc,GAAQ,EAAE,CAAC;IAC/B,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAE3B,OAAO;QACH,cAAc,EAAE,cAAc;QAC9B,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,eAAe;KACnC,CAAC;AACN,CAAC,CAAC;AA1DW,QAAA,qBAAqB,yBA0DhC;AAEF,SAAS,CAAC,uBAAuB,GAAG,UAAU,GAAQ,EAAE,kBAAuB,EAAE,MAAW;IACxF,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IAEvB,MAAM,cAAc,GAAQ,EAAE,CAAC;IAC/B,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAE3B,MAAM,eAAe,GAAG,gBAAC,CAAC,MAAM,CAC5B,MAAM,EACN,UAAU,MAAW,EAAE,GAAQ;QAC3B,MAAM,QAAQ,GAAG,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAAE,CACL,CAAC;IAEF,OAAO;QACH,cAAc,EAAE,cAAc;QAC9B,SAAS,EAAE,IAAI,GAAG,OAAO,GAAG,gBAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG;QACzD,eAAe,EAAE,eAAe;KACnC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `query.ts`
|
|
3
|
-
* - query
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @author Steve Jung <steve@lemoncloud.io>
|
|
7
|
-
* @date 2019-11-20 refactoring to ts via origin
|
|
8
|
-
*
|
|
9
|
-
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* class: `Query`
|
|
13
|
-
*/
|
|
14
|
-
declare class Query {
|
|
15
|
-
protected hashKey: any;
|
|
16
|
-
protected table: any;
|
|
17
|
-
protected serializer: any;
|
|
18
|
-
protected options: any;
|
|
19
|
-
protected request: any;
|
|
20
|
-
constructor(hashKey: any, table: any, serializer: any);
|
|
21
|
-
limit: (num: any) => any;
|
|
22
|
-
filterExpression: (expression: any) => any;
|
|
23
|
-
expressionAttributeValues: (data: any) => any;
|
|
24
|
-
expressionAttributeNames: (data: any) => any;
|
|
25
|
-
projectionExpression: (data: any) => any;
|
|
26
|
-
usingIndex: (name: any) => any;
|
|
27
|
-
consistentRead: (read: any) => any;
|
|
28
|
-
addKeyCondition: (condition: any) => any;
|
|
29
|
-
addFilterCondition: (condition: any) => any;
|
|
30
|
-
startKey: (hashKey: any, rangeKey: any) => any;
|
|
31
|
-
attributes: (attrs: any) => any;
|
|
32
|
-
ascending: () => any;
|
|
33
|
-
descending: () => any;
|
|
34
|
-
select: (value: any) => any;
|
|
35
|
-
returnConsumedCapacity: (value: any) => any;
|
|
36
|
-
loadAll: () => any;
|
|
37
|
-
where: (keyName: any) => any;
|
|
38
|
-
filter: (keyName: any) => any;
|
|
39
|
-
exec: (callback: any) => void;
|
|
40
|
-
buildKey: () => any;
|
|
41
|
-
buildRequest: () => any;
|
|
42
|
-
}
|
|
43
|
-
export default Query;
|
package/dist/lib/dynamo/query.js
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// origin from: https://github.com/baseprime/dynamodb @20191106
|
|
3
|
-
// Copyright (c) 2016 Ryan Fitzgerald
|
|
4
|
-
/**
|
|
5
|
-
* `query.ts`
|
|
6
|
-
* - query
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @author Steve Jung <steve@lemoncloud.io>
|
|
10
|
-
* @date 2019-11-20 refactoring to ts via origin
|
|
11
|
-
*
|
|
12
|
-
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
13
|
-
*/
|
|
14
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
-
}
|
|
20
|
-
Object.defineProperty(o, k2, desc);
|
|
21
|
-
}) : (function(o, m, k, k2) {
|
|
22
|
-
if (k2 === undefined) k2 = k;
|
|
23
|
-
o[k2] = m[k];
|
|
24
|
-
}));
|
|
25
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
-
}) : function(o, v) {
|
|
28
|
-
o["default"] = v;
|
|
29
|
-
});
|
|
30
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
38
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
42
|
-
const expressions = __importStar(require("./expressions"));
|
|
43
|
-
const utils = __importStar(require("./utils"));
|
|
44
|
-
const internals = {};
|
|
45
|
-
internals.keyCondition = function (keyName, schema, query) {
|
|
46
|
-
const f = function (operator) {
|
|
47
|
-
return function ( /*values*/) {
|
|
48
|
-
const copy = [].slice.call(arguments);
|
|
49
|
-
const existingValueKeys = lodash_1.default.keys(query.request.ExpressionAttributeValues);
|
|
50
|
-
const args = [keyName, operator, existingValueKeys].concat(copy);
|
|
51
|
-
const cond = expressions.buildFilterExpression.apply(null, args);
|
|
52
|
-
return query.addKeyCondition(cond);
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
return {
|
|
56
|
-
equals: f('='),
|
|
57
|
-
eq: f('='),
|
|
58
|
-
lte: f('<='),
|
|
59
|
-
lt: f('<'),
|
|
60
|
-
gte: f('>='),
|
|
61
|
-
gt: f('>'),
|
|
62
|
-
beginsWith: f('begins_with'),
|
|
63
|
-
between: f('BETWEEN'),
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
internals.queryFilter = function (keyName, schema, query) {
|
|
67
|
-
const f = function (operator) {
|
|
68
|
-
return function ( /*values*/) {
|
|
69
|
-
const copy = [].slice.call(arguments);
|
|
70
|
-
const existingValueKeys = lodash_1.default.keys(query.request.ExpressionAttributeValues);
|
|
71
|
-
const args = [keyName, operator, existingValueKeys].concat(copy);
|
|
72
|
-
const cond = expressions.buildFilterExpression.apply(null, args);
|
|
73
|
-
return query.addFilterCondition(cond);
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
return {
|
|
77
|
-
equals: f('='),
|
|
78
|
-
eq: f('='),
|
|
79
|
-
ne: f('<>'),
|
|
80
|
-
lte: f('<='),
|
|
81
|
-
lt: f('<'),
|
|
82
|
-
gte: f('>='),
|
|
83
|
-
gt: f('>'),
|
|
84
|
-
null: f('attribute_not_exists'),
|
|
85
|
-
exists: f('attribute_exists'),
|
|
86
|
-
contains: f('contains'),
|
|
87
|
-
notContains: f('NOT contains'),
|
|
88
|
-
in: f('IN'),
|
|
89
|
-
beginsWith: f('begins_with'),
|
|
90
|
-
between: f('BETWEEN'),
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
internals.isUsingGlobalIndex = function (query) {
|
|
94
|
-
return query.request.IndexName && query.table.schema.globalIndexes[query.request.IndexName];
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* class: `Query`
|
|
98
|
-
*/
|
|
99
|
-
class Query {
|
|
100
|
-
constructor(hashKey, table, serializer) {
|
|
101
|
-
this.limit = function (num) {
|
|
102
|
-
if (num <= 0) {
|
|
103
|
-
throw new Error('Limit must be greater than 0');
|
|
104
|
-
}
|
|
105
|
-
this.request.Limit = num;
|
|
106
|
-
return this;
|
|
107
|
-
};
|
|
108
|
-
this.filterExpression = function (expression) {
|
|
109
|
-
this.request.FilterExpression = expression;
|
|
110
|
-
return this;
|
|
111
|
-
};
|
|
112
|
-
this.expressionAttributeValues = function (data) {
|
|
113
|
-
this.request.ExpressionAttributeValues = data;
|
|
114
|
-
return this;
|
|
115
|
-
};
|
|
116
|
-
this.expressionAttributeNames = function (data) {
|
|
117
|
-
this.request.ExpressionAttributeNames = data;
|
|
118
|
-
return this;
|
|
119
|
-
};
|
|
120
|
-
this.projectionExpression = function (data) {
|
|
121
|
-
this.request.ProjectionExpression = data;
|
|
122
|
-
return this;
|
|
123
|
-
};
|
|
124
|
-
this.usingIndex = function (name) {
|
|
125
|
-
this.request.IndexName = name;
|
|
126
|
-
return this;
|
|
127
|
-
};
|
|
128
|
-
this.consistentRead = function (read) {
|
|
129
|
-
if (!lodash_1.default.isBoolean(read)) {
|
|
130
|
-
read = true;
|
|
131
|
-
}
|
|
132
|
-
this.request.ConsistentRead = read;
|
|
133
|
-
return this;
|
|
134
|
-
};
|
|
135
|
-
this.addKeyCondition = function (condition) {
|
|
136
|
-
internals.addExpressionAttributes(this.request, condition);
|
|
137
|
-
if (lodash_1.default.isString(this.request.KeyConditionExpression)) {
|
|
138
|
-
this.request.KeyConditionExpression =
|
|
139
|
-
this.request.KeyConditionExpression + ' AND (' + condition.statement + ')';
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
this.request.KeyConditionExpression = '(' + condition.statement + ')';
|
|
143
|
-
}
|
|
144
|
-
return this;
|
|
145
|
-
};
|
|
146
|
-
this.addFilterCondition = function (condition) {
|
|
147
|
-
internals.addExpressionAttributes(this.request, condition);
|
|
148
|
-
if (lodash_1.default.isString(this.request.FilterExpression)) {
|
|
149
|
-
this.request.FilterExpression = this.request.FilterExpression + ' AND (' + condition.statement + ')';
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
this.request.FilterExpression = '(' + condition.statement + ')';
|
|
153
|
-
}
|
|
154
|
-
return this;
|
|
155
|
-
};
|
|
156
|
-
this.startKey = function (hashKey, rangeKey) {
|
|
157
|
-
this.request.ExclusiveStartKey = this.serializer.buildKey(hashKey, rangeKey, this.table.schema);
|
|
158
|
-
return this;
|
|
159
|
-
};
|
|
160
|
-
this.attributes = function (attrs) {
|
|
161
|
-
if (!lodash_1.default.isArray(attrs)) {
|
|
162
|
-
attrs = [attrs];
|
|
163
|
-
}
|
|
164
|
-
const expressionAttributeNames = lodash_1.default.reduce(attrs, function (result, attr) {
|
|
165
|
-
const path = '#' + attr;
|
|
166
|
-
result[path] = attr;
|
|
167
|
-
return result;
|
|
168
|
-
}, {});
|
|
169
|
-
this.request.ProjectionExpression = lodash_1.default.keys(expressionAttributeNames).join(',');
|
|
170
|
-
this.request.ExpressionAttributeNames = lodash_1.default.merge({}, expressionAttributeNames, this.request.ExpressionAttributeNames);
|
|
171
|
-
return this;
|
|
172
|
-
};
|
|
173
|
-
this.ascending = function () {
|
|
174
|
-
this.request.ScanIndexForward = true;
|
|
175
|
-
return this;
|
|
176
|
-
};
|
|
177
|
-
this.descending = function () {
|
|
178
|
-
this.request.ScanIndexForward = false;
|
|
179
|
-
return this;
|
|
180
|
-
};
|
|
181
|
-
this.select = function (value) {
|
|
182
|
-
this.request.Select = value;
|
|
183
|
-
return this;
|
|
184
|
-
};
|
|
185
|
-
this.returnConsumedCapacity = function (value) {
|
|
186
|
-
if (lodash_1.default.isUndefined(value)) {
|
|
187
|
-
value = 'TOTAL';
|
|
188
|
-
}
|
|
189
|
-
this.request.ReturnConsumedCapacity = value;
|
|
190
|
-
return this;
|
|
191
|
-
};
|
|
192
|
-
this.loadAll = function () {
|
|
193
|
-
this.options.loadAll = true;
|
|
194
|
-
return this;
|
|
195
|
-
};
|
|
196
|
-
this.where = function (keyName) {
|
|
197
|
-
return internals.keyCondition(keyName, this.table.schema, this);
|
|
198
|
-
};
|
|
199
|
-
this.filter = function (keyName) {
|
|
200
|
-
return internals.queryFilter(keyName, this.table.schema, this);
|
|
201
|
-
};
|
|
202
|
-
this.exec = function (callback) {
|
|
203
|
-
const self = this;
|
|
204
|
-
this.addKeyCondition(this.buildKey());
|
|
205
|
-
const runQuery = function (params, callback) {
|
|
206
|
-
self.table.runQuery(params, callback);
|
|
207
|
-
};
|
|
208
|
-
return utils.paginatedRequest(self, runQuery, callback);
|
|
209
|
-
};
|
|
210
|
-
this.buildKey = function () {
|
|
211
|
-
let key = this.table.schema.hashKey;
|
|
212
|
-
if (internals.isUsingGlobalIndex(this)) {
|
|
213
|
-
key = this.table.schema.globalIndexes[this.request.IndexName].hashKey;
|
|
214
|
-
}
|
|
215
|
-
const existingValueKeys = lodash_1.default.keys(this.request.ExpressionAttributeValues);
|
|
216
|
-
return expressions.buildFilterExpression(key, '=', existingValueKeys, this.hashKey);
|
|
217
|
-
};
|
|
218
|
-
this.buildRequest = function () {
|
|
219
|
-
return lodash_1.default.merge({}, this.request, { TableName: this.table.tableName() });
|
|
220
|
-
};
|
|
221
|
-
this.hashKey = hashKey;
|
|
222
|
-
this.table = table;
|
|
223
|
-
this.serializer = serializer;
|
|
224
|
-
this.options = { loadAll: false };
|
|
225
|
-
this.request = {};
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
internals.addExpressionAttributes = function (request, condition) {
|
|
229
|
-
const expressionAttributeNames = lodash_1.default.merge({}, condition.attributeNames, request.ExpressionAttributeNames);
|
|
230
|
-
const expressionAttributeValues = lodash_1.default.merge({}, condition.attributeValues, request.ExpressionAttributeValues);
|
|
231
|
-
if (!lodash_1.default.isEmpty(expressionAttributeNames)) {
|
|
232
|
-
request.ExpressionAttributeNames = expressionAttributeNames;
|
|
233
|
-
}
|
|
234
|
-
if (!lodash_1.default.isEmpty(expressionAttributeValues)) {
|
|
235
|
-
request.ExpressionAttributeValues = expressionAttributeValues;
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
internals.formatAttributeValue = function (val) {
|
|
239
|
-
if (lodash_1.default.isDate(val)) {
|
|
240
|
-
return val.toISOString();
|
|
241
|
-
}
|
|
242
|
-
return val;
|
|
243
|
-
};
|
|
244
|
-
//* export default.
|
|
245
|
-
exports.default = Query;
|
|
246
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/lib/dynamo/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `scan.ts`
|
|
3
|
-
* - scan
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @author Steve Jung <steve@lemoncloud.io>
|
|
7
|
-
* @date 2019-11-20 refactoring to ts via origin
|
|
8
|
-
*
|
|
9
|
-
* @copyright (C) lemoncloud.io 2019 - All Rights Reserved.
|
|
10
|
-
*/
|
|
11
|
-
declare class Scan {
|
|
12
|
-
protected table: any;
|
|
13
|
-
protected serializer: any;
|
|
14
|
-
protected options: any;
|
|
15
|
-
protected request: any;
|
|
16
|
-
constructor(table: any, serializer: any);
|
|
17
|
-
limit: (num: any) => any;
|
|
18
|
-
addFilterCondition: (condition: any) => any;
|
|
19
|
-
startKey: (hashKey: any, rangeKey: any) => any;
|
|
20
|
-
attributes: (attrs: any) => any;
|
|
21
|
-
select: (value: any) => any;
|
|
22
|
-
returnConsumedCapacity: (value: any) => any;
|
|
23
|
-
segments: (segment: any, totalSegments: any) => any;
|
|
24
|
-
where: (keyName: any) => any;
|
|
25
|
-
filterExpression: (expression: any) => any;
|
|
26
|
-
expressionAttributeValues: (data: any) => any;
|
|
27
|
-
expressionAttributeNames: (data: any) => any;
|
|
28
|
-
projectionExpression: (data: any) => any;
|
|
29
|
-
exec: (callback: any) => void;
|
|
30
|
-
loadAll: () => any;
|
|
31
|
-
buildRequest: () => any;
|
|
32
|
-
}
|
|
33
|
-
export default Scan;
|