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.
Files changed (154) hide show
  1. package/dist/common/test-helper.d.ts +2 -2
  2. package/dist/common/test-helper.js +24 -26
  3. package/dist/common/test-helper.js.map +1 -1
  4. package/dist/controllers/dummy-controller.js +39 -46
  5. package/dist/controllers/dummy-controller.js.map +1 -1
  6. package/dist/controllers/general-api-controller.js +95 -100
  7. package/dist/controllers/general-api-controller.js.map +1 -1
  8. package/dist/controllers/general-controller.js +81 -82
  9. package/dist/controllers/general-controller.js.map +1 -1
  10. package/dist/cores/api/api-service.d.ts +1 -1
  11. package/dist/cores/api/api-service.js +228 -269
  12. package/dist/cores/api/api-service.js.map +1 -1
  13. package/dist/cores/aws/aws-kms-service.d.ts +1 -2
  14. package/dist/cores/aws/aws-kms-service.js +143 -153
  15. package/dist/cores/aws/aws-kms-service.js.map +1 -1
  16. package/dist/cores/aws/aws-s3-service.d.ts +2 -4
  17. package/dist/cores/aws/aws-s3-service.js +306 -330
  18. package/dist/cores/aws/aws-s3-service.js.map +1 -1
  19. package/dist/cores/aws/aws-sns-service.js +147 -153
  20. package/dist/cores/aws/aws-sns-service.js.map +1 -1
  21. package/dist/cores/aws/aws-sqs-service.js +149 -170
  22. package/dist/cores/aws/aws-sqs-service.js.map +1 -1
  23. package/dist/cores/aws/index.js +10 -20
  24. package/dist/cores/aws/index.js.map +1 -1
  25. package/dist/cores/cache/cache-service.d.ts +2 -2
  26. package/dist/cores/cache/cache-service.js +435 -499
  27. package/dist/cores/cache/cache-service.js.map +1 -1
  28. package/dist/cores/config/config-service.d.ts +1 -1
  29. package/dist/cores/config/config-service.js +56 -63
  30. package/dist/cores/config/config-service.js.map +1 -1
  31. package/dist/cores/config/index.js +14 -24
  32. package/dist/cores/config/index.js.map +1 -1
  33. package/dist/cores/core-services.d.ts +1 -1
  34. package/dist/cores/dynamo/dynamo-query-service.js +37 -51
  35. package/dist/cores/dynamo/dynamo-query-service.js.map +1 -1
  36. package/dist/cores/dynamo/dynamo-scan-service.d.ts +2 -2
  37. package/dist/cores/dynamo/dynamo-scan-service.js +29 -40
  38. package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -1
  39. package/dist/cores/dynamo/dynamo-service.d.ts +2 -2
  40. package/dist/cores/dynamo/dynamo-service.js +528 -601
  41. package/dist/cores/dynamo/dynamo-service.js.map +1 -1
  42. package/dist/cores/dynamo/tools/expressions.js +17 -7
  43. package/dist/cores/dynamo/tools/expressions.js.map +1 -1
  44. package/dist/cores/dynamo/tools/query.js +142 -127
  45. package/dist/cores/dynamo/tools/query.js.map +1 -1
  46. package/dist/cores/dynamo/tools/scan.js +111 -97
  47. package/dist/cores/dynamo/tools/scan.js.map +1 -1
  48. package/dist/cores/dynamo/tools/serializer.js +17 -7
  49. package/dist/cores/dynamo/tools/serializer.js.map +1 -1
  50. package/dist/cores/dynamo/tools/utils.d.ts +0 -2
  51. package/dist/cores/dynamo/tools/utils.js.map +1 -1
  52. package/dist/cores/elastic/elastic6-query-service.js +307 -324
  53. package/dist/cores/elastic/elastic6-query-service.js.map +1 -1
  54. package/dist/cores/elastic/elastic6-service.d.ts +3 -3
  55. package/dist/cores/elastic/elastic6-service.js +568 -647
  56. package/dist/cores/elastic/elastic6-service.js.map +1 -1
  57. package/dist/cores/elastic/hangul-service.js +52 -54
  58. package/dist/cores/elastic/hangul-service.js.map +1 -1
  59. package/dist/cores/lambda/index.js +42 -36
  60. package/dist/cores/lambda/index.js.map +1 -1
  61. package/dist/cores/lambda/lambda-alb-handler.d.ts +2 -2
  62. package/dist/cores/lambda/lambda-alb-handler.js +59 -72
  63. package/dist/cores/lambda/lambda-alb-handler.js.map +1 -1
  64. package/dist/cores/lambda/lambda-cognito-handler.js +10 -19
  65. package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
  66. package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -1
  67. package/dist/cores/lambda/lambda-cron-handler.js +14 -23
  68. package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
  69. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
  70. package/dist/cores/lambda/lambda-dynamo-stream-handler.js +57 -67
  71. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  72. package/dist/cores/lambda/lambda-handler.d.ts +22 -22
  73. package/dist/cores/lambda/lambda-handler.js +93 -106
  74. package/dist/cores/lambda/lambda-handler.js.map +1 -1
  75. package/dist/cores/lambda/lambda-notification-handler.d.ts +1 -1
  76. package/dist/cores/lambda/lambda-notification-handler.js +39 -50
  77. package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
  78. package/dist/cores/lambda/lambda-sns-handler.js +79 -88
  79. package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
  80. package/dist/cores/lambda/lambda-sqs-handler.js +79 -88
  81. package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
  82. package/dist/cores/lambda/lambda-web-handler.d.ts +21 -43
  83. package/dist/cores/lambda/lambda-web-handler.js +392 -482
  84. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  85. package/dist/cores/lambda/lambda-wss-handler.js +23 -32
  86. package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
  87. package/dist/cores/protocol/index.js +10 -20
  88. package/dist/cores/protocol/index.js.map +1 -1
  89. package/dist/cores/protocol/protocol-service.d.ts +3 -3
  90. package/dist/cores/protocol/protocol-service.js +235 -227
  91. package/dist/cores/protocol/protocol-service.js.map +1 -1
  92. package/dist/cores/storage/http-storage-service.js +65 -85
  93. package/dist/cores/storage/http-storage-service.js.map +1 -1
  94. package/dist/cores/storage/model-manager.js +66 -85
  95. package/dist/cores/storage/model-manager.js.map +1 -1
  96. package/dist/cores/storage/proxy-storage-service.d.ts +2 -2
  97. package/dist/cores/storage/proxy-storage-service.js +562 -599
  98. package/dist/cores/storage/proxy-storage-service.js.map +1 -1
  99. package/dist/cores/storage/redis-storage-service.js +163 -177
  100. package/dist/cores/storage/redis-storage-service.js.map +1 -1
  101. package/dist/cores/storage/storage-service.js +281 -322
  102. package/dist/cores/storage/storage-service.js.map +1 -1
  103. package/dist/engine/builder.d.ts +1 -1
  104. package/dist/engine/builder.js +59 -63
  105. package/dist/engine/builder.js.map +1 -1
  106. package/dist/engine/engine.d.ts +4 -4
  107. package/dist/engine/engine.js +9 -18
  108. package/dist/engine/engine.js.map +1 -1
  109. package/dist/engine/types.d.ts +1 -1
  110. package/dist/engine/utilities.d.ts +14 -10
  111. package/dist/engine/utilities.js +301 -280
  112. package/dist/engine/utilities.js.map +1 -1
  113. package/dist/environ.js +4 -6
  114. package/dist/environ.js.map +1 -1
  115. package/dist/extended/abstract-service.js +595 -645
  116. package/dist/extended/abstract-service.js.map +1 -1
  117. package/dist/extended/libs/sig-v4.js.map +1 -1
  118. package/dist/generated/field-registry.d.ts +10 -0
  119. package/dist/generated/field-registry.js +17 -0
  120. package/dist/generated/field-registry.js.map +1 -0
  121. package/dist/helpers/helpers.d.ts +17 -9
  122. package/dist/helpers/helpers.js +88 -78
  123. package/dist/helpers/helpers.js.map +1 -1
  124. package/dist/index.js +17 -7
  125. package/dist/index.js.map +1 -1
  126. package/dist/lib/dynamodb-value.js +2 -3
  127. package/dist/lib/dynamodb-value.js.map +1 -1
  128. package/dist/tools/express.js +4 -5
  129. package/dist/tools/express.js.map +1 -1
  130. package/dist/tools/tools.d.ts +3 -1
  131. package/dist/tools/tools.js +14 -21
  132. package/dist/tools/tools.js.map +1 -1
  133. package/package.json +19 -18
  134. package/dist/exec-cli.d.ts +0 -2
  135. package/dist/exec-cli.js +0 -211
  136. package/dist/exec-cli.js.map +0 -1
  137. package/dist/lib/dynamo/expressions.d.ts +0 -14
  138. package/dist/lib/dynamo/expressions.js +0 -212
  139. package/dist/lib/dynamo/expressions.js.map +0 -1
  140. package/dist/lib/dynamo/query.d.ts +0 -43
  141. package/dist/lib/dynamo/query.js +0 -246
  142. package/dist/lib/dynamo/query.js.map +0 -1
  143. package/dist/lib/dynamo/scan.d.ts +0 -33
  144. package/dist/lib/dynamo/scan.js +0 -172
  145. package/dist/lib/dynamo/scan.js.map +0 -1
  146. package/dist/lib/dynamo/serializer.d.ts +0 -12
  147. package/dist/lib/dynamo/serializer.js +0 -243
  148. package/dist/lib/dynamo/serializer.js.map +0 -1
  149. package/dist/lib/dynamo/utils.d.ts +0 -15
  150. package/dist/lib/dynamo/utils.js +0 -129
  151. package/dist/lib/dynamo/utils.js.map +0 -1
  152. package/dist/tools/shared.d.ts +0 -37
  153. package/dist/tools/shared.js +0 -130
  154. package/dist/tools/shared.js.map +0 -1
@@ -1,172 +0,0 @@
1
- "use strict";
2
- // origin from: https://github.com/baseprime/dynamodb @20191106
3
- // Copyright (c) 2016 Ryan Fitzgerald
4
- /**
5
- * `scan.ts`
6
- * - scan
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, scan) {
46
- const f = function (operator) {
47
- return function ( /*values*/) {
48
- const copy = [].slice.call(arguments);
49
- const existingValueKeys = lodash_1.default.keys(scan.request.ExpressionAttributeValues);
50
- const args = [keyName, operator, existingValueKeys].concat(copy);
51
- const cond = expressions.buildFilterExpression.apply(null, args);
52
- return scan.addFilterCondition(cond);
53
- };
54
- };
55
- return {
56
- equals: f('='),
57
- eq: f('='),
58
- ne: f('<>'),
59
- lte: f('<='),
60
- lt: f('<'),
61
- gte: f('>='),
62
- gt: f('>'),
63
- null: f('attribute_not_exists'),
64
- notNull: f('attribute_exists'),
65
- contains: f('contains'),
66
- notContains: f('NOT contains'),
67
- in: f('IN'),
68
- beginsWith: f('begins_with'),
69
- between: f('BETWEEN'),
70
- };
71
- };
72
- class Scan {
73
- constructor(table, serializer) {
74
- this.limit = function (num) {
75
- if (num <= 0) {
76
- throw new Error('Limit must be greater than 0');
77
- }
78
- this.request.Limit = num;
79
- return this;
80
- };
81
- this.addFilterCondition = function (condition) {
82
- const expressionAttributeNames = lodash_1.default.merge({}, condition.attributeNames, this.request.ExpressionAttributeNames);
83
- const expressionAttributeValues = lodash_1.default.merge({}, condition.attributeValues, this.request.ExpressionAttributeValues);
84
- if (!lodash_1.default.isEmpty(expressionAttributeNames)) {
85
- this.request.ExpressionAttributeNames = expressionAttributeNames;
86
- }
87
- if (!lodash_1.default.isEmpty(expressionAttributeValues)) {
88
- this.request.ExpressionAttributeValues = expressionAttributeValues;
89
- }
90
- if (lodash_1.default.isString(this.request.FilterExpression)) {
91
- this.request.FilterExpression = this.request.FilterExpression + ' AND (' + condition.statement + ')';
92
- }
93
- else {
94
- this.request.FilterExpression = '(' + condition.statement + ')';
95
- }
96
- return this;
97
- };
98
- this.startKey = function (hashKey, rangeKey) {
99
- this.request.ExclusiveStartKey = this.serializer.buildKey(hashKey, rangeKey, this.table.schema);
100
- return this;
101
- };
102
- this.attributes = function (attrs) {
103
- if (!lodash_1.default.isArray(attrs)) {
104
- attrs = [attrs];
105
- }
106
- const expressionAttributeNames = lodash_1.default.reduce(attrs, function (result, attr) {
107
- const path = '#' + attr;
108
- result[path] = attr;
109
- return result;
110
- }, {});
111
- this.request.ProjectionExpression = lodash_1.default.keys(expressionAttributeNames).join(',');
112
- this.request.ExpressionAttributeNames = lodash_1.default.merge({}, expressionAttributeNames, this.request.ExpressionAttributeNames);
113
- return this;
114
- };
115
- this.select = function (value) {
116
- this.request.Select = value;
117
- return this;
118
- };
119
- this.returnConsumedCapacity = function (value) {
120
- if (lodash_1.default.isUndefined(value)) {
121
- value = 'TOTAL';
122
- }
123
- this.request.ReturnConsumedCapacity = value;
124
- return this;
125
- };
126
- this.segments = function (segment, totalSegments) {
127
- this.request.Segment = segment;
128
- this.request.TotalSegments = totalSegments;
129
- return this;
130
- };
131
- this.where = function (keyName) {
132
- return internals.keyCondition(keyName, this.table.schema, this);
133
- };
134
- this.filterExpression = function (expression) {
135
- this.request.FilterExpression = expression;
136
- return this;
137
- };
138
- this.expressionAttributeValues = function (data) {
139
- this.request.ExpressionAttributeValues = data;
140
- return this;
141
- };
142
- this.expressionAttributeNames = function (data) {
143
- this.request.ExpressionAttributeNames = data;
144
- return this;
145
- };
146
- this.projectionExpression = function (data) {
147
- this.request.ProjectionExpression = data;
148
- return this;
149
- };
150
- this.exec = function (callback) {
151
- const self = this;
152
- const runScan = function (params, callback) {
153
- self.table.runScan(params, callback);
154
- };
155
- return utils.paginatedRequest(self, runScan, callback);
156
- };
157
- this.loadAll = function () {
158
- this.options.loadAll = true;
159
- return this;
160
- };
161
- this.buildRequest = function () {
162
- return lodash_1.default.merge({}, this.request, { TableName: this.table.tableName() });
163
- };
164
- this.table = table;
165
- this.serializer = serializer;
166
- this.options = { loadAll: false };
167
- this.request = {};
168
- }
169
- }
170
- //* export default.
171
- exports.default = Scan;
172
- //# sourceMappingURL=scan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/lib/dynamo/scan.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * `serialize.ts`
3
- * - serialize
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 const serializer: any;
12
- export default serializer;
@@ -1,243 +0,0 @@
1
- "use strict";
2
- // origin from: https://github.com/baseprime/dynamodb @20191106
3
- // Copyright (c) 2016 Ryan Fitzgerald
4
- /**
5
- * `serialize.ts`
6
- * - serialize
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 utils = __importStar(require("./utils"));
43
- // eslint-disable-next-line @typescript-eslint/no-var-requires
44
- const DocClient = require('aws-sdk/lib/dynamodb/document_client');
45
- const serializer = {};
46
- const internals = {
47
- docClient: new DocClient(),
48
- createSet: function (value, opt) {
49
- if (lodash_1.default.isArray(value)) {
50
- return internals.docClient.createSet(value);
51
- }
52
- else {
53
- return internals.docClient.createSet([value]);
54
- }
55
- },
56
- serialize: {
57
- binary: function (value) {
58
- if (lodash_1.default.isString(value)) {
59
- return utils.strToBin(value);
60
- }
61
- return value;
62
- },
63
- date: function (value) {
64
- if (lodash_1.default.isDate(value)) {
65
- return value.toISOString();
66
- }
67
- else {
68
- return new Date(value).toISOString();
69
- }
70
- },
71
- boolean: function (value) {
72
- if (value && value !== 'false') {
73
- return true;
74
- }
75
- else {
76
- return false;
77
- }
78
- },
79
- stringSet: function (value) {
80
- return internals.createSet(value, 'S');
81
- },
82
- numberSet: function (value) {
83
- return internals.createSet(value, 'N');
84
- },
85
- binarySet: function (value) {
86
- let bins = value;
87
- if (!lodash_1.default.isArray(value)) {
88
- bins = [value];
89
- }
90
- const vals = lodash_1.default.map(bins, serialize.binary);
91
- return internals.createSet(vals, 'B');
92
- },
93
- },
94
- deserializeAttribute: (value) => {
95
- if (lodash_1.default.isObject(value) && lodash_1.default.isFunction(value.detectType) && lodash_1.default.isArray(value.values)) {
96
- // value is a Set object from document client
97
- return value.values;
98
- }
99
- else {
100
- return value;
101
- }
102
- },
103
- serializeAttribute: (value, type, options) => {
104
- if (!type) {
105
- // if type is unknown, possibly because its an dynamic key return given value
106
- return value;
107
- }
108
- if (lodash_1.default.isNull(value)) {
109
- return null;
110
- }
111
- options = options || {};
112
- switch (type) {
113
- case 'DATE':
114
- return serialize.date(value);
115
- case 'BOOL':
116
- return serialize.boolean(value);
117
- case 'B':
118
- return serialize.binary(value);
119
- case 'NS':
120
- return serialize.numberSet(value);
121
- case 'SS':
122
- return serialize.stringSet(value);
123
- case 'BS':
124
- return serialize.binarySet(value);
125
- default:
126
- return value;
127
- }
128
- },
129
- };
130
- const serialize = internals.serialize;
131
- serializer.serializeAttribute = internals.serializeAttribute;
132
- serializer.buildKey = (hashKey, rangeKey, schema) => {
133
- const obj = {};
134
- if (lodash_1.default.isPlainObject(hashKey)) {
135
- obj[schema.hashKey] = hashKey[schema.hashKey];
136
- if (schema.rangeKey && !lodash_1.default.isNull(hashKey[schema.rangeKey]) && !lodash_1.default.isUndefined(hashKey[schema.rangeKey])) {
137
- obj[schema.rangeKey] = hashKey[schema.rangeKey];
138
- }
139
- lodash_1.default.each(schema.globalIndexes, function (keys) {
140
- if (lodash_1.default.has(hashKey, keys.hashKey)) {
141
- obj[keys.hashKey] = hashKey[keys.hashKey];
142
- }
143
- if (lodash_1.default.has(hashKey, keys.rangeKey)) {
144
- obj[keys.rangeKey] = hashKey[keys.rangeKey];
145
- }
146
- });
147
- lodash_1.default.each(schema.secondaryIndexes, function (keys) {
148
- if (lodash_1.default.has(hashKey, keys.rangeKey)) {
149
- obj[keys.rangeKey] = hashKey[keys.rangeKey];
150
- }
151
- });
152
- }
153
- else {
154
- obj[schema.hashKey] = hashKey;
155
- if (schema.rangeKey && !lodash_1.default.isNull(rangeKey) && !lodash_1.default.isUndefined(rangeKey)) {
156
- obj[schema.rangeKey] = rangeKey;
157
- }
158
- }
159
- return serializer.serializeItem(schema, obj);
160
- };
161
- serializer.serializeItem = (schema, item, options) => {
162
- options = options || {};
163
- const serialize = function (item, datatypes) {
164
- datatypes = datatypes || {};
165
- if (!item) {
166
- return null;
167
- }
168
- return lodash_1.default.reduce(item, function (result, val, key) {
169
- if (options.expected && lodash_1.default.isObject(val) && lodash_1.default.isBoolean(val.Exists)) {
170
- result[key] = val;
171
- return result;
172
- }
173
- if (lodash_1.default.isPlainObject(val)) {
174
- result[key] = serialize(val, datatypes[key]);
175
- return result;
176
- }
177
- if (lodash_1.default.isArray(val) && lodash_1.default.isArray(datatypes[key])) {
178
- result[key] = lodash_1.default.map(val, function (item) {
179
- return serialize(item, datatypes[key][0]);
180
- });
181
- return result;
182
- }
183
- const attr = internals.serializeAttribute(val, datatypes[key], options);
184
- if (!lodash_1.default.isNull(attr) || options.returnNulls) {
185
- if (options.expected) {
186
- result[key] = { Value: attr };
187
- }
188
- else {
189
- result[key] = attr;
190
- }
191
- }
192
- return result;
193
- }, {});
194
- };
195
- return serialize(item, schema._modelDatatypes);
196
- };
197
- serializer.serializeItemForUpdate = function (schema, action, item) {
198
- const datatypes = schema._modelDatatypes;
199
- const data = utils.omitPrimaryKeys(schema, item);
200
- return lodash_1.default.reduce(data, function (result, value, key) {
201
- if (lodash_1.default.isNull(value)) {
202
- result[key] = { Action: 'DELETE' };
203
- }
204
- else if (lodash_1.default.isPlainObject(value) && value.$add) {
205
- result[key] = { Action: 'ADD', Value: internals.serializeAttribute(value.$add, datatypes[key]) };
206
- }
207
- else if (lodash_1.default.isPlainObject(value) && value.$del) {
208
- result[key] = { Action: 'DELETE', Value: internals.serializeAttribute(value.$del, datatypes[key]) };
209
- }
210
- else {
211
- result[key] = { Action: action, Value: internals.serializeAttribute(value, datatypes[key]) };
212
- }
213
- return result;
214
- }, {});
215
- };
216
- serializer.deserializeItem = function (item) {
217
- if (lodash_1.default.isNull(item)) {
218
- return null;
219
- }
220
- const formatter = (data) => {
221
- let map = lodash_1.default.mapValues;
222
- if (lodash_1.default.isArray(data)) {
223
- map = lodash_1.default.map;
224
- }
225
- return map(data, function (value) {
226
- let result;
227
- if (lodash_1.default.isPlainObject(value)) {
228
- result = formatter(value);
229
- }
230
- else if (lodash_1.default.isArray(value)) {
231
- result = formatter(value);
232
- }
233
- else {
234
- result = internals.deserializeAttribute(value);
235
- }
236
- return result;
237
- });
238
- };
239
- return formatter(item);
240
- };
241
- //* export default
242
- exports.default = serializer;
243
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/lib/dynamo/serializer.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qCAAqC;AACrC;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAuB;AACvB,+CAAiC;AACjC,8DAA8D;AAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;AAElE,MAAM,UAAU,GAAG,EAAS,CAAC;AAE7B,MAAM,SAAS,GAAG;IACd,SAAS,EAAE,IAAI,SAAS,EAAE;IAC1B,SAAS,EAAE,UAAU,KAAU,EAAE,GAAY;QACzC,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClB,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC/C;aAAM;YACH,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACL,CAAC;IACD,SAAS,EAAE;QACP,MAAM,EAAE,UAAU,KAAU;YACxB,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,EAAE,UAAU,KAAU;YACtB,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACjB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;aAC9B;iBAAM;gBACH,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;aACxC;QACL,CAAC;QAED,OAAO,EAAE,UAAU,KAAU;YACzB,IAAI,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;QAED,SAAS,EAAE,UAAU,KAAU;YAC3B,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,SAAS,EAAE,UAAU,KAAU;YAC3B,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,SAAS,EAAE,UAAU,KAAU;YAC3B,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;aAClB;YAED,MAAM,IAAI,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;KACJ;IAED,oBAAoB,EAAE,CAAC,KAAU,EAAE,EAAE;QACjC,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,UAAU,CAAE,KAAa,CAAC,UAAU,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAE,KAAa,CAAC,MAAM,CAAC,EAAE;YAClG,6CAA6C;YAC7C,OAAQ,KAAa,CAAC,MAAM,CAAC;SAChC;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,kBAAkB,EAAE,CAAC,KAAU,EAAE,IAAS,EAAE,OAAa,EAAE,EAAE;QACzD,IAAI,CAAC,IAAI,EAAE;YACP,6EAA6E;YAC7E,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,QAAQ,IAAI,EAAE;YACV,KAAK,MAAM;gBACP,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,MAAM;gBACP,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG;gBACJ,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,KAAK,IAAI;gBACL,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,IAAI;gBACL,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,IAAI;gBACL,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC;gBACI,OAAO,KAAK,CAAC;SACpB;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AACtC,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;AAC7D,UAAU,CAAC,QAAQ,GAAG,CAAC,OAAY,EAAE,QAAa,EAAE,MAAW,EAAE,EAAE;IAC/D,MAAM,GAAG,GAAQ,EAAE,CAAC;IAEpB,IAAI,gBAAC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACnD;QACD,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,IAAI;YACvC,IAAI,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;YAED,IAAI,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/C;QACL,CAAC,CAAC,CAAC;QAEH,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,IAAI;YAC1C,IAAI,gBAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/C;QACL,CAAC,CAAC,CAAC;KACN;SAAM;QACH,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAE9B,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YACpE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;SACnC;KACJ;IAED,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,UAAU,CAAC,aAAa,GAAG,CAAC,MAAW,EAAE,IAAS,EAAE,OAAY,EAAE,EAAE;IAChE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAExB,MAAM,SAAS,GAAG,UAAU,IAAS,EAAE,SAAc;QACjD,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;QAE5B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QAED,OAAO,gBAAC,CAAC,MAAM,CACX,IAAI,EACJ,UAAU,MAAW,EAAE,GAAQ,EAAE,GAAQ;YACrC,IAAI,OAAO,CAAC,QAAQ,IAAI,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gBAAC,CAAC,SAAS,CAAE,GAAW,CAAC,MAAM,CAAC,EAAE;gBACzE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAClB,OAAO,MAAM,CAAC;aACjB;YAED,IAAI,gBAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,OAAO,MAAM,CAAC;aACjB;YAED,IAAI,gBAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,IAAI;oBACnC,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC;aACjB;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAExE,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE;gBACxC,IAAI,OAAO,CAAC,QAAQ,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACjC;qBAAM;oBACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;iBACtB;aACJ;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,EACD,EAAE,CACL,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,UAAU,CAAC,sBAAsB,GAAG,UAAU,MAAW,EAAE,MAAW,EAAE,IAAS;IAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;IAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,gBAAC,CAAC,MAAM,CACX,IAAI,EACJ,UAAU,MAAW,EAAE,KAAU,EAAE,GAAQ;QACvC,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;SACtC;aAAM,IAAI,gBAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACpG;aAAM,IAAI,gBAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACvG;aAAM;YACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SAChG;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAC;AAEF,UAAU,CAAC,eAAe,GAAG,UAAU,IAAS;IAC5C,IAAI,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,SAAS,GAAG,CAAC,IAAS,EAAO,EAAE;QACjC,IAAI,GAAG,GAAQ,gBAAC,CAAC,SAAS,CAAC;QAE3B,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,GAAG,GAAG,gBAAC,CAAC,GAAG,CAAC;SACf;QAED,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,KAAU;YACjC,IAAI,MAAM,CAAC;YAEX,IAAI,gBAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBACxB,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM;gBACH,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;aAClD;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAkB;AAClB,kBAAe,UAAU,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * `utils.ts`
3
- * - utils
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
- export declare const omitNulls: (data: any) => Partial<any>;
12
- export declare const mergeResults: (responses: any, tableName: string) => any;
13
- export declare const paginatedRequest: (self: any, runRequestFunc: any, callback: any) => void;
14
- export declare const omitPrimaryKeys: (schema: any, params: any) => Pick<any, never>;
15
- export declare const strToBin: (value: any) => any;
@@ -1,129 +0,0 @@
1
- "use strict";
2
- // origin from: https://github.com/baseprime/dynamodb @20191106
3
- // Copyright (c) 2016 Ryan Fitzgerald
4
- /**
5
- * `utils.ts`
6
- * - utils
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 __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.strToBin = exports.omitPrimaryKeys = exports.paginatedRequest = exports.mergeResults = exports.omitNulls = void 0;
19
- const lodash_1 = __importDefault(require("lodash"));
20
- const async_1 = __importDefault(require("async"));
21
- // eslint-disable-next-line @typescript-eslint/no-var-requires
22
- const AWSUtil = require('aws-sdk/lib/util');
23
- const omitNulls = (data) => {
24
- return lodash_1.default.omitBy(data, function (value) {
25
- return (lodash_1.default.isNull(value) ||
26
- lodash_1.default.isUndefined(value) ||
27
- (lodash_1.default.isArray(value) && lodash_1.default.isEmpty(value)) ||
28
- (lodash_1.default.isString(value) && lodash_1.default.isEmpty(value)));
29
- });
30
- };
31
- exports.omitNulls = omitNulls;
32
- const mergeResults = (responses, tableName) => {
33
- const result = {
34
- Items: [],
35
- ConsumedCapacity: {
36
- CapacityUnits: 0,
37
- TableName: tableName,
38
- },
39
- Count: 0,
40
- ScannedCount: 0,
41
- };
42
- const merged = lodash_1.default.reduce(responses, (memo, resp) => {
43
- if (!resp) {
44
- return memo;
45
- }
46
- memo.Count += resp.Count || 0;
47
- memo.ScannedCount += resp.ScannedCount || 0;
48
- if (resp.ConsumedCapacity) {
49
- memo.ConsumedCapacity.CapacityUnits += resp.ConsumedCapacity.CapacityUnits || 0;
50
- }
51
- if (resp.Items) {
52
- memo.Items = memo.Items.concat(resp.Items);
53
- }
54
- if (resp.LastEvaluatedKey) {
55
- memo.LastEvaluatedKey = resp.LastEvaluatedKey;
56
- }
57
- return memo;
58
- }, result);
59
- if (merged.ConsumedCapacity.CapacityUnits === 0) {
60
- delete merged.ConsumedCapacity;
61
- }
62
- if (merged.ScannedCount === 0) {
63
- delete merged.ScannedCount;
64
- }
65
- return merged;
66
- };
67
- exports.mergeResults = mergeResults;
68
- const paginatedRequest = (self, runRequestFunc, callback) => {
69
- // if callback isn't passed switch to stream
70
- if (!callback) {
71
- throw new Error('@callback is required');
72
- }
73
- let lastEvaluatedKey = null;
74
- const responses = [];
75
- let retry = false;
76
- const doFunc = function (callback) {
77
- if (lastEvaluatedKey) {
78
- self.startKey(lastEvaluatedKey);
79
- }
80
- runRequestFunc(self.buildRequest(), function (err, resp) {
81
- if (err && err.retryable) {
82
- retry = true;
83
- return setImmediate(callback);
84
- }
85
- else if (err) {
86
- retry = false;
87
- return setImmediate(callback, err);
88
- }
89
- retry = false;
90
- lastEvaluatedKey = resp.LastEvaluatedKey;
91
- responses.push(resp);
92
- return setImmediate(callback);
93
- });
94
- };
95
- const testFunc = function () {
96
- return (self.options.loadAll && lastEvaluatedKey) || retry;
97
- };
98
- const resulsFunc = function (err) {
99
- if (err) {
100
- return callback(err);
101
- }
102
- return callback(null, (0, exports.mergeResults)(responses, self.table.tableName()));
103
- };
104
- async_1.default.doWhilst(doFunc, testFunc, resulsFunc);
105
- };
106
- exports.paginatedRequest = paginatedRequest;
107
- const omitPrimaryKeys = function (schema, params) {
108
- return lodash_1.default.omit(params, schema.hashKey, schema.rangeKey);
109
- };
110
- exports.omitPrimaryKeys = omitPrimaryKeys;
111
- const strToBin = function (value) {
112
- if (typeof value !== 'string') {
113
- const StrConversionError = 'Need to pass in string primitive to be converted to binary.';
114
- throw new Error(StrConversionError);
115
- }
116
- if (AWSUtil.isBrowser()) {
117
- const len = value.length;
118
- const bin = new Uint8Array(new ArrayBuffer(len));
119
- for (let i = 0; i < len; i++) {
120
- bin[i] = value.charCodeAt(i);
121
- }
122
- return bin;
123
- }
124
- else {
125
- return AWSUtil.Buffer(value);
126
- }
127
- };
128
- exports.strToBin = strToBin;
129
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/dynamo/utils.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import { AwsCredentialIdentity } from '@aws-sdk/types';
2
- /**
3
- * load json in sync.
4
- */
5
- export declare const loadJsonSync: <T extends object = any>(name: string, def?: {}) => T;
6
- /**
7
- * dynamic loading credentials by profile. (search PROFILE -> NAME)
8
- *
9
- * TODO -define the return type exactly.
10
- *
11
- * @returns {Promise<any>} - AWS credentials
12
- */
13
- export declare const asyncCredentials: (profile: string) => Promise<AwsCredentialIdentity>;
14
- /**
15
- * dynamic loading credentials by profile. (search PROFILE -> NAME)
16
- *
17
- * @deprecated use `asyncCredentials` instead.
18
- */
19
- export declare const credentials: (profile: string) => string;
20
- /**
21
- * return whether AWS credentials set
22
- *
23
- * @deprecated use `asyncCredentials` instead.
24
- */
25
- export declare const hasCredentials: () => boolean;
26
- /**
27
- * load yml data via './data/<file>.yml'
28
- */
29
- export declare const loadDataYml: <T extends object = any>(file: string, folder?: string) => T;
30
- interface AdaptiveParam<T> {
31
- (name: string, defval: T, argv?: string[]): T;
32
- }
33
- /**
34
- * get running parameter like -h api.
35
- */
36
- export declare const getRunParam: AdaptiveParam<boolean | number | string | object>;
37
- export {};