@launchdarkly/node-server-sdk-dynamodb 5.0.5 → 5.0.6
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/CHANGELOG.md +14 -0
- package/dist/src/DynamoDBBigSegmentStore.js +29 -42
- package/dist/src/DynamoDBBigSegmentStore.js.map +1 -1
- package/dist/src/DynamoDBClientState.js +45 -62
- package/dist/src/DynamoDBClientState.js.map +1 -1
- package/dist/src/DynamoDBCore.js +82 -103
- package/dist/src/DynamoDBCore.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -24,6 +24,20 @@
|
|
|
24
24
|
* devDependencies
|
|
25
25
|
* @launchdarkly/node-server-sdk bumped from 8.1.0 to 8.1.1
|
|
26
26
|
|
|
27
|
+
## [5.0.6](https://github.com/launchdarkly/js-core/compare/node-server-sdk-dynamodb-v5.0.5...node-server-sdk-dynamodb-v5.0.6) (2023-08-10)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* Switch to es2017 target to ensure native async/await. ([a83e4e6](https://github.com/launchdarkly/js-core/commit/a83e4e62d04c66105a1b0e8893640a7ca2d641e4))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Dependencies
|
|
36
|
+
|
|
37
|
+
* The following workspace dependencies were updated
|
|
38
|
+
* devDependencies
|
|
39
|
+
* @launchdarkly/node-server-sdk bumped from 8.1.1 to 8.1.2
|
|
40
|
+
|
|
27
41
|
## [5.0.2](https://github.com/launchdarkly/js-core/compare/node-server-sdk-dynamodb-v5.0.1...node-server-sdk-dynamodb-v5.0.2) (2023-06-27)
|
|
28
42
|
|
|
29
43
|
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ATTR_EXCLUDED = exports.ATTR_INCLUDED = exports.ATTR_SYNC_ON = exports.KEY_USER_DATA = exports.KEY_METADATA = void 0;
|
|
13
4
|
const DynamoDBClientState_1 = require("./DynamoDBClientState");
|
|
@@ -46,43 +37,39 @@ class DynamoDBBigSegmentStore {
|
|
|
46
37
|
this.logger = logger;
|
|
47
38
|
this.state = new DynamoDBClientState_1.default(options);
|
|
48
39
|
}
|
|
49
|
-
getMetadata() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
key: (0, Value_1.stringValue)(key),
|
|
55
|
-
});
|
|
56
|
-
if (data) {
|
|
57
|
-
const attr = data[exports.ATTR_SYNC_ON];
|
|
58
|
-
if (attr && attr.N) {
|
|
59
|
-
return { lastUpToDate: parseInt(attr.N, 10) };
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return {};
|
|
40
|
+
async getMetadata() {
|
|
41
|
+
const key = this.state.prefixedKey(exports.KEY_METADATA);
|
|
42
|
+
const data = await this.state.get(this.tableName, {
|
|
43
|
+
namespace: (0, Value_1.stringValue)(key),
|
|
44
|
+
key: (0, Value_1.stringValue)(key),
|
|
63
45
|
});
|
|
46
|
+
if (data) {
|
|
47
|
+
const attr = data[exports.ATTR_SYNC_ON];
|
|
48
|
+
if (attr && attr.N) {
|
|
49
|
+
return { lastUpToDate: parseInt(attr.N, 10) };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {};
|
|
64
53
|
}
|
|
65
|
-
getUserMembership(userHash) {
|
|
54
|
+
async getUserMembership(userHash) {
|
|
66
55
|
var _a, _b;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
key: (0, Value_1.stringValue)(userHash),
|
|
71
|
-
});
|
|
72
|
-
if (data) {
|
|
73
|
-
const excludedRefs = data[exports.ATTR_EXCLUDED];
|
|
74
|
-
const includedRefs = data[exports.ATTR_INCLUDED];
|
|
75
|
-
const membership = {};
|
|
76
|
-
(_a = excludedRefs === null || excludedRefs === void 0 ? void 0 : excludedRefs.SS) === null || _a === void 0 ? void 0 : _a.forEach((ref) => {
|
|
77
|
-
membership[ref] = false;
|
|
78
|
-
});
|
|
79
|
-
(_b = includedRefs === null || includedRefs === void 0 ? void 0 : includedRefs.SS) === null || _b === void 0 ? void 0 : _b.forEach((ref) => {
|
|
80
|
-
membership[ref] = true;
|
|
81
|
-
});
|
|
82
|
-
return membership;
|
|
83
|
-
}
|
|
84
|
-
return undefined;
|
|
56
|
+
const data = await this.state.get(this.tableName, {
|
|
57
|
+
namespace: (0, Value_1.stringValue)(this.state.prefixedKey(exports.KEY_USER_DATA)),
|
|
58
|
+
key: (0, Value_1.stringValue)(userHash),
|
|
85
59
|
});
|
|
60
|
+
if (data) {
|
|
61
|
+
const excludedRefs = data[exports.ATTR_EXCLUDED];
|
|
62
|
+
const includedRefs = data[exports.ATTR_INCLUDED];
|
|
63
|
+
const membership = {};
|
|
64
|
+
(_a = excludedRefs === null || excludedRefs === void 0 ? void 0 : excludedRefs.SS) === null || _a === void 0 ? void 0 : _a.forEach((ref) => {
|
|
65
|
+
membership[ref] = false;
|
|
66
|
+
});
|
|
67
|
+
(_b = includedRefs === null || includedRefs === void 0 ? void 0 : includedRefs.SS) === null || _b === void 0 ? void 0 : _b.forEach((ref) => {
|
|
68
|
+
membership[ref] = true;
|
|
69
|
+
});
|
|
70
|
+
return membership;
|
|
71
|
+
}
|
|
72
|
+
return undefined;
|
|
86
73
|
}
|
|
87
74
|
close() {
|
|
88
75
|
this.state.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBBigSegmentStore.js","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DynamoDBBigSegmentStore.js","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":";;;AAEA,+DAAwD;AAExD,mCAAsC;AAEtC;;;GAGG;AACU,QAAA,YAAY,GAAG,uBAAuB,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD;;;GAGG;AACU,QAAA,YAAY,GAAG,gBAAgB,CAAC;AAE7C;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC,MAAqB,uBAAuB;IAG1C,0EAA0E;IAC1E,oCAAoC;IACpC,6DAA6D;IAC7D,YACmB,SAAiB,EAClC,OAA2B,EACV,MAAiB;QAFjB,cAAS,GAAT,SAAS,CAAQ;QAEjB,WAAM,GAAN,MAAM,CAAW;QAElC,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAY,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC;YAC3B,GAAG,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC;SACtB,CAAC,CAAC;QACH,IAAI,IAAI,EAAE;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAY,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;gBAClB,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,CAAC;aAChD;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB;;QAEhB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAa,CAAC,CAAC;YAC7D,GAAG,EAAE,IAAA,mBAAW,EAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,IAAI,EAAE;YACR,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAa,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAa,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAyC,EAAE,CAAC;YAE5D,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAxDD,0CAwDC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
3
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
4
|
var m = o[Symbol.asyncIterator], i;
|
|
@@ -55,67 +46,59 @@ class DynamoDBClientState {
|
|
|
55
46
|
prefixedKey(key) {
|
|
56
47
|
return `${this.prefix}${key}`;
|
|
57
48
|
}
|
|
58
|
-
query(params) {
|
|
49
|
+
async query(params) {
|
|
59
50
|
var _a, e_1, _b, _c;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
records.push(...page.Items);
|
|
71
|
-
}
|
|
51
|
+
const records = [];
|
|
52
|
+
try {
|
|
53
|
+
// Using a generator here is a substantial ergonomic improvement.
|
|
54
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
55
|
+
for (var _d = true, _e = __asyncValues((0, client_dynamodb_1.paginateQuery)({ client: this.client }, params)), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
56
|
+
_c = _f.value;
|
|
57
|
+
_d = false;
|
|
58
|
+
const page = _c;
|
|
59
|
+
if (page.Items) {
|
|
60
|
+
records.push(...page.Items);
|
|
72
61
|
}
|
|
73
62
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
finally { if (e_1) throw e_1.error; }
|
|
63
|
+
}
|
|
64
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
65
|
+
finally {
|
|
66
|
+
try {
|
|
67
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
80
68
|
}
|
|
81
|
-
|
|
82
|
-
}
|
|
69
|
+
finally { if (e_1) throw e_1.error; }
|
|
70
|
+
}
|
|
71
|
+
return records;
|
|
83
72
|
}
|
|
84
|
-
batchWrite(table, params) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}))));
|
|
95
|
-
});
|
|
73
|
+
async batchWrite(table, params) {
|
|
74
|
+
const batches = [];
|
|
75
|
+
// Split into batches of at most 25 commands.
|
|
76
|
+
while (params.length) {
|
|
77
|
+
batches.push(params.splice(0, WRITE_BATCH_SIZE));
|
|
78
|
+
}
|
|
79
|
+
// Execute all the batches and wait for them to complete.
|
|
80
|
+
await Promise.all(batches.map((batch) => this.client.send(new client_dynamodb_1.BatchWriteItemCommand({
|
|
81
|
+
RequestItems: { [table]: batch },
|
|
82
|
+
}))));
|
|
96
83
|
}
|
|
97
|
-
get(table, key) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return res.Item;
|
|
104
|
-
});
|
|
84
|
+
async get(table, key) {
|
|
85
|
+
const res = await this.client.send(new client_dynamodb_1.GetItemCommand({
|
|
86
|
+
TableName: table,
|
|
87
|
+
Key: key,
|
|
88
|
+
}));
|
|
89
|
+
return res.Item;
|
|
105
90
|
}
|
|
106
|
-
put(params) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
throw err;
|
|
116
|
-
}
|
|
91
|
+
async put(params) {
|
|
92
|
+
try {
|
|
93
|
+
await this.client.send(new client_dynamodb_1.PutItemCommand(params));
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
// If we couldn't upsert because of the version, then that is fine.
|
|
97
|
+
// Otherwise we return failure.
|
|
98
|
+
if (!(err instanceof client_dynamodb_1.ConditionalCheckFailedException)) {
|
|
99
|
+
throw err;
|
|
117
100
|
}
|
|
118
|
-
}
|
|
101
|
+
}
|
|
119
102
|
}
|
|
120
103
|
close() {
|
|
121
104
|
if (this.owned) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBClientState.js","sourceRoot":"","sources":["../../src/DynamoDBClientState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DynamoDBClientState.js","sourceRoot":"","sources":["../../src/DynamoDBClientState.ts"],"names":[],"mappings":"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"}
|
package/dist/src/DynamoDBCore.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.calculateSize = void 0;
|
|
13
4
|
const Value_1 = require("./Value");
|
|
@@ -80,15 +71,13 @@ class DynamoDBCore {
|
|
|
80
71
|
* @param allData A set of init data.
|
|
81
72
|
* @returns A list of all data with matching namespaces.
|
|
82
73
|
*/
|
|
83
|
-
readExistingItems(allData) {
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
return this.state.query(this.queryParamsForNamespace(namespace));
|
|
88
|
-
});
|
|
89
|
-
const records = (yield Promise.all(promises)).flat();
|
|
90
|
-
return records;
|
|
74
|
+
async readExistingItems(allData) {
|
|
75
|
+
const promises = allData.map((kind) => {
|
|
76
|
+
const { namespace } = kind.key;
|
|
77
|
+
return this.state.query(this.queryParamsForNamespace(namespace));
|
|
91
78
|
});
|
|
79
|
+
const records = (await Promise.all(promises)).flat();
|
|
80
|
+
return records;
|
|
92
81
|
}
|
|
93
82
|
/**
|
|
94
83
|
* Mashal a SerializedItemDescriptor into an item for the DB.
|
|
@@ -117,101 +106,91 @@ class DynamoDBCore {
|
|
|
117
106
|
serializedItem: (_c = dbItem.item) === null || _c === void 0 ? void 0 : _c.S,
|
|
118
107
|
};
|
|
119
108
|
}
|
|
120
|
-
init(allData, callback) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
collection.item
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
// Remove existing data that is not in the new list.
|
|
144
|
-
Object.keys(existingNamespaceKeys).forEach((namespaceKey) => {
|
|
145
|
-
const namespaceAndKey = namespaceKey.split('$');
|
|
146
|
-
ops.push({
|
|
147
|
-
DeleteRequest: {
|
|
148
|
-
Key: { namespace: (0, Value_1.stringValue)(namespaceAndKey[0]), key: (0, Value_1.stringValue)(namespaceAndKey[1]) },
|
|
149
|
-
},
|
|
150
|
-
});
|
|
109
|
+
async init(allData, callback) {
|
|
110
|
+
const items = await this.readExistingItems(allData);
|
|
111
|
+
// Make a key from an existing DB item.
|
|
112
|
+
function makeNamespaceKey(item) {
|
|
113
|
+
return `${item.namespace.S}$${item.key.S}`;
|
|
114
|
+
}
|
|
115
|
+
const existingNamespaceKeys = {};
|
|
116
|
+
items.forEach((item) => {
|
|
117
|
+
existingNamespaceKeys[makeNamespaceKey(item)] = true;
|
|
118
|
+
});
|
|
119
|
+
delete existingNamespaceKeys[makeNamespaceKey(this.initializedToken())];
|
|
120
|
+
// Generate a list of write operations, and then execute them in a batch.
|
|
121
|
+
const ops = [];
|
|
122
|
+
allData.forEach((collection) => {
|
|
123
|
+
collection.item.forEach((item) => {
|
|
124
|
+
const dbItem = this.marshalItem(collection.key, item);
|
|
125
|
+
if (this.checkSizeLimit(dbItem)) {
|
|
126
|
+
delete existingNamespaceKeys[`${this.state.prefixedKey(collection.key.namespace)}$${item.key}`];
|
|
127
|
+
ops.push({ PutRequest: { Item: dbItem } });
|
|
128
|
+
}
|
|
151
129
|
});
|
|
152
|
-
// Always write the initialized token when we initialize.
|
|
153
|
-
ops.push({ PutRequest: { Item: this.initializedToken() } });
|
|
154
|
-
yield this.state.batchWrite(this.tableName, ops);
|
|
155
|
-
callback();
|
|
156
130
|
});
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
131
|
+
// Remove existing data that is not in the new list.
|
|
132
|
+
Object.keys(existingNamespaceKeys).forEach((namespaceKey) => {
|
|
133
|
+
const namespaceAndKey = namespaceKey.split('$');
|
|
134
|
+
ops.push({
|
|
135
|
+
DeleteRequest: {
|
|
136
|
+
Key: { namespace: (0, Value_1.stringValue)(namespaceAndKey[0]), key: (0, Value_1.stringValue)(namespaceAndKey[1]) },
|
|
137
|
+
},
|
|
163
138
|
});
|
|
164
|
-
if (read) {
|
|
165
|
-
callback(this.unmarshalItem(read));
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
callback(undefined);
|
|
169
|
-
}
|
|
170
139
|
});
|
|
140
|
+
// Always write the initialized token when we initialize.
|
|
141
|
+
ops.push({ PutRequest: { Item: this.initializedToken() } });
|
|
142
|
+
await this.state.batchWrite(this.tableName, ops);
|
|
143
|
+
callback();
|
|
171
144
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
callback(results.map((record) => ({ key: record.key.S, item: this.unmarshalItem(record) })));
|
|
145
|
+
async get(kind, key, callback) {
|
|
146
|
+
const read = await this.state.get(this.tableName, {
|
|
147
|
+
namespace: (0, Value_1.stringValue)(this.state.prefixedKey(kind.namespace)),
|
|
148
|
+
key: (0, Value_1.stringValue)(key),
|
|
177
149
|
});
|
|
150
|
+
if (read) {
|
|
151
|
+
callback(this.unmarshalItem(read));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
callback(undefined);
|
|
155
|
+
}
|
|
178
156
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
callback(
|
|
196
|
-
}
|
|
197
|
-
}
|
|
157
|
+
async getAll(kind, callback) {
|
|
158
|
+
const params = this.queryParamsForNamespace(kind.namespace);
|
|
159
|
+
const results = await this.state.query(params);
|
|
160
|
+
callback(results.map((record) => ({ key: record.key.S, item: this.unmarshalItem(record) })));
|
|
161
|
+
}
|
|
162
|
+
async upsert(kind, key, descriptor, callback) {
|
|
163
|
+
const params = this.makeVersionedPutRequest(kind, { key, item: descriptor });
|
|
164
|
+
if (!this.checkSizeLimit(params.Item)) {
|
|
165
|
+
// We deliberately don't report this back to the SDK as an error, because we don't want to trigger any
|
|
166
|
+
// useless retry behavior. We just won't do the update.
|
|
167
|
+
callback();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
await this.state.put(params);
|
|
172
|
+
this.get(kind, key, (readDescriptor) => {
|
|
173
|
+
callback(undefined, readDescriptor);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
callback(err, undefined);
|
|
178
|
+
}
|
|
198
179
|
}
|
|
199
|
-
initialized(callback) {
|
|
180
|
+
async initialized(callback) {
|
|
200
181
|
var _a, _b;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
callback(initialized);
|
|
214
|
-
});
|
|
182
|
+
let initialized = false;
|
|
183
|
+
try {
|
|
184
|
+
const token = this.initializedToken();
|
|
185
|
+
const data = await this.state.get(this.tableName, token);
|
|
186
|
+
initialized = !!(((_a = data === null || data === void 0 ? void 0 : data.key) === null || _a === void 0 ? void 0 : _a.S) === token.key.S);
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error reading inited: ${err}`);
|
|
190
|
+
initialized = false;
|
|
191
|
+
}
|
|
192
|
+
// Callback outside the try. In case it raised an exception.
|
|
193
|
+
callback(initialized);
|
|
215
194
|
}
|
|
216
195
|
close() {
|
|
217
196
|
this.state.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBCore.js","sourceRoot":"","sources":["../../src/DynamoDBCore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DynamoDBCore.js","sourceRoot":"","sources":["../../src/DynamoDBCore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launchdarkly/node-server-sdk-dynamodb",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.6",
|
|
4
4
|
"description": "DynamoDB-backed feature store for the LaunchDarkly Server-Side SDK for Node.js",
|
|
5
5
|
"homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/store/node-server-sdk-dynamodb",
|
|
6
6
|
"repository": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@aws-sdk/client-dynamodb": "3.348.0",
|
|
39
|
-
"@launchdarkly/node-server-sdk": "8.1.
|
|
39
|
+
"@launchdarkly/node-server-sdk": "8.1.2",
|
|
40
40
|
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
|
41
41
|
"@types/jest": "^29.4.0",
|
|
42
42
|
"@typescript-eslint/eslint-plugin": "^6.1.0",
|