datastore-api 1.6.0 → 1.7.3
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 +29 -0
- package/README.md +19 -0
- package/build/main/lib/dstore-api.d.ts +5 -1
- package/build/main/lib/dstore-api.js +98 -46
- package/build/main/lib/dstore-api.spec.js +43 -41
- package/build/module/lib/dstore-api.d.ts +5 -1
- package/build/module/lib/dstore-api.js +91 -45
- package/build/module/lib/dstore-api.spec.js +41 -40
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.7.3](https://github.com/mdornseif/datastore-api/compare/v1.7.2...v1.7.3) (2022-02-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* Preserve Stacktraces in errors ([dda1777](https://github.com/mdornseif/datastore-api/commit/dda177778e5dd08ca363b00ff868ec15071afc36))
|
|
11
|
+
|
|
12
|
+
### [1.7.2](https://github.com/mdornseif/datastore-api/compare/v1.7.1...v1.7.2) (2022-02-06)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* Correctly pit kindName into metrics ([0da9d2c](https://github.com/mdornseif/datastore-api/commit/0da9d2ca2927c4c0dbb793bcc89b4742610a82e7))
|
|
18
|
+
* Throw original errors & fix type of set(key, data) ([84a0cbd](https://github.com/mdornseif/datastore-api/commit/84a0cbda78119bc6bef7a710b5bf137fdea1f9cb))
|
|
19
|
+
|
|
20
|
+
### [1.7.1](https://github.com/mdornseif/datastore-api/compare/v1.7.0...v1.7.1) (2022-01-31)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* Prometheus metric names ([551c6fa](https://github.com/mdornseif/datastore-api/commit/551c6fad3cfea10f1a452cf12083a91848468510))
|
|
26
|
+
|
|
27
|
+
## [1.7.0](https://github.com/mdornseif/datastore-api/compare/v1.6.0...v1.7.0) (2022-01-30)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* use prop-client to collect datastore metrics ([e55ff06](https://github.com/mdornseif/datastore-api/commit/e55ff06c8e069ca0df798c1e1f34c2eb9bf9079b))
|
|
33
|
+
|
|
5
34
|
## [1.6.0](https://github.com/mdornseif/datastore-api/compare/v1.5.0...v1.6.0) (2022-01-10)
|
|
6
35
|
|
|
7
36
|
|
package/README.md
CHANGED
|
@@ -28,6 +28,25 @@ Find the full documentation [here](http://mdornseif.io/datastore-api/classes/Dst
|
|
|
28
28
|
|
|
29
29
|
See [the API documentation](http://mdornseif.io/datastore-api/classes/Dstore.html) for Details, [Github](https://github.com/mdornseif/datastore-api) for source.
|
|
30
30
|
|
|
31
|
+
## Metrics
|
|
32
|
+
|
|
33
|
+
Datastore-API is instrumented with [prom-client](https://github.com/siimon/prom-client). Metrics are all prefixed with `dstore_`.
|
|
34
|
+
|
|
35
|
+
In an express based Application you can make them available like this:
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
import promClient from 'prom-client';
|
|
39
|
+
|
|
40
|
+
server.get('/metrics', async (req, res) => {
|
|
41
|
+
try {
|
|
42
|
+
res.set('Content-Type', promClient.register.contentType);
|
|
43
|
+
res.end(await promClient.register.metrics());
|
|
44
|
+
} catch (ex) {
|
|
45
|
+
res.status(500).end(ex);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
31
50
|
## See also
|
|
32
51
|
|
|
33
52
|
- Google Documentation
|
|
@@ -4,6 +4,10 @@ import { Operator, RunQueryResponse } from '@google-cloud/datastore/build/src/qu
|
|
|
4
4
|
import { CommitResponse } from '@google-cloud/datastore/build/src/request';
|
|
5
5
|
/** @ignore */
|
|
6
6
|
export { Datastore, Key, PathType, Query, Transaction, } from '@google-cloud/datastore';
|
|
7
|
+
/** Use instead of Datastore.KEY
|
|
8
|
+
*
|
|
9
|
+
* Even better: use `_key` instead.
|
|
10
|
+
*/
|
|
7
11
|
export declare const KEYSYM: symbol;
|
|
8
12
|
export declare type IGqlFilterTypes = boolean | string | number;
|
|
9
13
|
export declare type IGqlFilterSpec = {
|
|
@@ -197,7 +201,7 @@ export declare class Dstore implements IDstore {
|
|
|
197
201
|
*
|
|
198
202
|
* @category Additional
|
|
199
203
|
*/
|
|
200
|
-
set(key: Key, data:
|
|
204
|
+
set(key: Key, data: IDstoreEntryWithoutKey): Promise<Key>;
|
|
201
205
|
/** `save()` is compatible to [Datastore.save()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_save_member_1_).
|
|
202
206
|
*
|
|
203
207
|
* The single Parameter is a list of [[DstoreSaveEntity]]s.
|
|
@@ -15,10 +15,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.DstoreError = exports.Dstore = exports.KEYSYM = exports.Transaction = exports.Query = exports.Key = exports.Datastore = void 0;
|
|
17
17
|
const async_hooks_1 = require("async_hooks");
|
|
18
|
+
const promises_1 = require("timers/promises");
|
|
18
19
|
const datastore_1 = require("@google-cloud/datastore");
|
|
19
20
|
const entity_1 = require("@google-cloud/datastore/build/src/entity");
|
|
20
21
|
const assertate_1 = require("assertate");
|
|
21
22
|
const debug_1 = __importDefault(require("debug"));
|
|
23
|
+
const prom_client_1 = __importDefault(require("prom-client"));
|
|
22
24
|
/** @ignore */
|
|
23
25
|
var datastore_2 = require("@google-cloud/datastore");
|
|
24
26
|
Object.defineProperty(exports, "Datastore", { enumerable: true, get: function () { return datastore_2.Datastore; } });
|
|
@@ -28,11 +30,22 @@ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function
|
|
|
28
30
|
/** @ignore */
|
|
29
31
|
const debug = (0, debug_1.default)('ds:api');
|
|
30
32
|
/** @ignore */
|
|
33
|
+
const transactionAsyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
|
|
34
|
+
/** @ignore */
|
|
35
|
+
const metricHistogram = new prom_client_1.default.Histogram({
|
|
36
|
+
name: 'dstore_requests_seconds',
|
|
37
|
+
help: 'How long did Datastore operations take?',
|
|
38
|
+
labelNames: ['operation', 'kindName'],
|
|
39
|
+
});
|
|
40
|
+
const metricFailureCounter = new prom_client_1.default.Counter({
|
|
41
|
+
name: 'dstore_failures_total',
|
|
42
|
+
help: 'How many Datastore operations failed?',
|
|
43
|
+
labelNames: ['operation'],
|
|
44
|
+
});
|
|
31
45
|
/** Use instead of Datastore.KEY
|
|
32
46
|
*
|
|
33
47
|
* Even better: use `_key` instead.
|
|
34
48
|
*/
|
|
35
|
-
const transactionAsyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
|
|
36
49
|
exports.KEYSYM = datastore_1.Datastore.KEY;
|
|
37
50
|
/** Dstore implements a slightly more accessible version of the [Google Cloud Datastore: Node.js Client](https://cloud.google.com/nodejs/docs/reference/datastore/latest)
|
|
38
51
|
|
|
@@ -188,19 +201,25 @@ class Dstore {
|
|
|
188
201
|
* @category Datastore Drop-In
|
|
189
202
|
*/
|
|
190
203
|
async getMulti(keys) {
|
|
191
|
-
var _a;
|
|
204
|
+
var _a, _b;
|
|
192
205
|
// assertIsArray(keys);
|
|
206
|
+
let ret;
|
|
207
|
+
const metricEnd = metricHistogram.startTimer();
|
|
193
208
|
try {
|
|
194
|
-
|
|
209
|
+
ret = this.fixKeys(keys.length > 0
|
|
195
210
|
? (_a = (await this.getDoT().get(keys))) === null || _a === void 0 ? void 0 : _a[0]
|
|
196
211
|
: []);
|
|
197
212
|
}
|
|
198
213
|
catch (error) {
|
|
199
214
|
// console.error(error)
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
215
|
+
metricFailureCounter.inc({ operation: 'get' });
|
|
216
|
+
await (0, promises_1.setImmediate)();
|
|
217
|
+
throw new DstoreError('datastore.getMulti error', error, { keys });
|
|
218
|
+
}
|
|
219
|
+
finally {
|
|
220
|
+
metricEnd({ kindName: (_b = keys === null || keys === void 0 ? void 0 : keys[0]) === null || _b === void 0 ? void 0 : _b.kind, operation: 'get' });
|
|
203
221
|
}
|
|
222
|
+
return ret;
|
|
204
223
|
}
|
|
205
224
|
/** `set()` is addition to [[Datastore]]. It provides a classic Key-value Interface.
|
|
206
225
|
*
|
|
@@ -259,7 +278,10 @@ class Dstore {
|
|
|
259
278
|
* @category Datastore Drop-In
|
|
260
279
|
*/
|
|
261
280
|
async save(entities) {
|
|
281
|
+
var _a, _b;
|
|
262
282
|
(0, assertate_1.assertIsArray)(entities);
|
|
283
|
+
let ret;
|
|
284
|
+
const metricEnd = metricHistogram.startTimer();
|
|
263
285
|
try {
|
|
264
286
|
// Within Transaction we don't get any answer here!
|
|
265
287
|
// [ { mutationResults: [ [Object], [Object] ], indexUpdates: 51 } ]
|
|
@@ -272,18 +294,21 @@ class Dstore {
|
|
|
272
294
|
? true
|
|
273
295
|
: e.excludeLargeProperties;
|
|
274
296
|
}
|
|
275
|
-
|
|
297
|
+
ret = (await this.getDoT().save(entities)) || undefined;
|
|
276
298
|
for (const e of entities) {
|
|
277
299
|
e.data[datastore_1.Datastore.KEY] = e.key;
|
|
278
300
|
this.fixKeys([e.data]);
|
|
279
301
|
}
|
|
280
|
-
return ret;
|
|
281
302
|
}
|
|
282
303
|
catch (error) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
304
|
+
metricFailureCounter.inc({ operation: 'save' });
|
|
305
|
+
await (0, promises_1.setImmediate)();
|
|
306
|
+
throw new DstoreError('datastore.save error', error);
|
|
307
|
+
}
|
|
308
|
+
finally {
|
|
309
|
+
metricEnd({ kindName: (_b = (_a = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.kind, operation: 'save' });
|
|
286
310
|
}
|
|
311
|
+
return ret;
|
|
287
312
|
}
|
|
288
313
|
/** `insert()` is compatible to [Datastore.insert()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_insert_member_1_).
|
|
289
314
|
*
|
|
@@ -301,16 +326,23 @@ class Dstore {
|
|
|
301
326
|
* @category Datastore Drop-In
|
|
302
327
|
*/
|
|
303
328
|
async insert(entities) {
|
|
329
|
+
var _a, _b;
|
|
304
330
|
(0, assertate_1.assertIsArray)(entities);
|
|
331
|
+
let ret;
|
|
332
|
+
const metricEnd = metricHistogram.startTimer();
|
|
305
333
|
try {
|
|
306
|
-
|
|
334
|
+
ret = (await this.getDoT().insert(entities)) || undefined;
|
|
307
335
|
}
|
|
308
336
|
catch (error) {
|
|
309
337
|
// console.error(error)
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
338
|
+
metricFailureCounter.inc({ operation: 'insert' });
|
|
339
|
+
await (0, promises_1.setImmediate)();
|
|
340
|
+
throw new DstoreError('datastore.insert error', error);
|
|
341
|
+
}
|
|
342
|
+
finally {
|
|
343
|
+
metricEnd({ kindName: (_b = (_a = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.kind, operation: 'insert' });
|
|
313
344
|
}
|
|
345
|
+
return ret;
|
|
314
346
|
}
|
|
315
347
|
/** `update()` is compatible to [Datastore.update()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_update_member_1_).
|
|
316
348
|
|
|
@@ -330,21 +362,28 @@ class Dstore {
|
|
|
330
362
|
* @category Datastore Drop-In
|
|
331
363
|
*/
|
|
332
364
|
async update(entities) {
|
|
365
|
+
var _a, _b;
|
|
333
366
|
(0, assertate_1.assertIsArray)(entities);
|
|
334
367
|
entities.forEach((entity) => (0, assertate_1.assertIsObject)(entity.key));
|
|
335
368
|
entities.forEach((entity) => (0, assertate_1.assert)(entity.key.path.length % 2 == 0, `entity.key.path must be complete: ${JSON.stringify([
|
|
336
369
|
entity.key.path,
|
|
337
370
|
entity,
|
|
338
371
|
])}`));
|
|
372
|
+
let ret;
|
|
373
|
+
const metricEnd = metricHistogram.startTimer();
|
|
339
374
|
try {
|
|
340
|
-
|
|
375
|
+
ret = (await this.getDoT().update(entities)) || undefined;
|
|
341
376
|
}
|
|
342
377
|
catch (error) {
|
|
343
378
|
// console.error(error)
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
379
|
+
metricFailureCounter.inc({ operation: 'update' });
|
|
380
|
+
await (0, promises_1.setImmediate)();
|
|
381
|
+
throw new DstoreError('datastore.update error', error);
|
|
382
|
+
}
|
|
383
|
+
finally {
|
|
384
|
+
metricEnd({ kindName: (_b = (_a = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.kind, operation: 'update' });
|
|
347
385
|
}
|
|
386
|
+
return ret;
|
|
348
387
|
}
|
|
349
388
|
/** `delete()` is compatible to [Datastore.delete()].
|
|
350
389
|
*
|
|
@@ -360,18 +399,25 @@ class Dstore {
|
|
|
360
399
|
* @category Datastore Drop-In
|
|
361
400
|
*/
|
|
362
401
|
async delete(keys) {
|
|
402
|
+
var _a;
|
|
363
403
|
(0, assertate_1.assertIsArray)(keys);
|
|
364
404
|
keys.forEach((key) => (0, assertate_1.assertIsObject)(key));
|
|
365
405
|
keys.forEach((key) => (0, assertate_1.assert)(key.path.length % 2 == 0, `key.path must be complete: ${JSON.stringify(key.path)}`));
|
|
406
|
+
let ret;
|
|
407
|
+
const metricEnd = metricHistogram.startTimer();
|
|
366
408
|
try {
|
|
367
|
-
|
|
409
|
+
ret = (await this.getDoT().delete(keys)) || undefined;
|
|
368
410
|
}
|
|
369
411
|
catch (error) {
|
|
370
412
|
// console.error(error)
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
413
|
+
metricFailureCounter.inc({ operation: 'delete' });
|
|
414
|
+
await (0, promises_1.setImmediate)();
|
|
415
|
+
throw new DstoreError('datastore.delete error', error);
|
|
416
|
+
}
|
|
417
|
+
finally {
|
|
418
|
+
metricEnd({ kindName: (_a = keys === null || keys === void 0 ? void 0 : keys[0]) === null || _a === void 0 ? void 0 : _a.kind, operation: 'delete' });
|
|
374
419
|
}
|
|
420
|
+
return ret;
|
|
375
421
|
}
|
|
376
422
|
/** `createQuery()` creates an "empty" [[Query]] Object.
|
|
377
423
|
*
|
|
@@ -390,15 +436,21 @@ class Dstore {
|
|
|
390
436
|
}
|
|
391
437
|
}
|
|
392
438
|
async runQuery(query) {
|
|
439
|
+
var _a;
|
|
440
|
+
let ret;
|
|
441
|
+
const metricEnd = metricHistogram.startTimer();
|
|
393
442
|
try {
|
|
394
443
|
const [entities, info] = await this.getDoT().runQuery(query);
|
|
395
|
-
|
|
444
|
+
ret = [this.fixKeys(entities), info];
|
|
396
445
|
}
|
|
397
446
|
catch (error) {
|
|
447
|
+
await (0, promises_1.setImmediate)();
|
|
398
448
|
throw new DstoreError('datastore.runQuery error', error);
|
|
399
|
-
// console.error(error)
|
|
400
|
-
// throw process.env.NODE_ENV === 'test' ? error : new KvStoreError('datastore.runQuery error', error)
|
|
401
449
|
}
|
|
450
|
+
finally {
|
|
451
|
+
metricEnd({ kindName: (_a = query === null || query === void 0 ? void 0 : query.kinds) === null || _a === void 0 ? void 0 : _a[0], operation: 'query' });
|
|
452
|
+
}
|
|
453
|
+
return ret;
|
|
402
454
|
}
|
|
403
455
|
async query(kindName, filters = [], limit = 2500, ordering = [], selection = [], cursor) {
|
|
404
456
|
(0, assertate_1.assertIsString)(kindName);
|
|
@@ -421,15 +473,13 @@ class Dstore {
|
|
|
421
473
|
return await this.runQuery(q);
|
|
422
474
|
}
|
|
423
475
|
catch (error) {
|
|
424
|
-
|
|
425
|
-
throw
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
ordering,
|
|
432
|
-
});
|
|
476
|
+
await (0, promises_1.setImmediate)();
|
|
477
|
+
throw new DstoreError('datastore.query error', error, {
|
|
478
|
+
kindName,
|
|
479
|
+
filters,
|
|
480
|
+
limit,
|
|
481
|
+
ordering,
|
|
482
|
+
});
|
|
433
483
|
}
|
|
434
484
|
}
|
|
435
485
|
/** Allocate one ID in the Datastore.
|
|
@@ -475,19 +525,16 @@ class Dstore {
|
|
|
475
525
|
catch (error) {
|
|
476
526
|
const rollbackInfo = await transaction.rollback();
|
|
477
527
|
debug('Transaction failed, rollback initiated: %O %O %O %O', transactionInfo, transactionRunApiResponse, rollbackInfo, error);
|
|
478
|
-
|
|
479
|
-
throw
|
|
480
|
-
? error
|
|
481
|
-
: new DstoreError('datastore.transaction execution error', error);
|
|
528
|
+
await (0, promises_1.setImmediate)();
|
|
529
|
+
throw new DstoreError('datastore.transaction execution error', error);
|
|
482
530
|
}
|
|
483
531
|
try {
|
|
484
532
|
commitApiResponse = await transaction.commit()[0];
|
|
485
533
|
}
|
|
486
534
|
catch (error) {
|
|
487
535
|
debug('Transaction commit failed: %O %O %O %O ret: %O', transactionInfo, transactionRunApiResponse, commitApiResponse, error, ret);
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
: new DstoreError('datastore.transaction execution error', error);
|
|
536
|
+
await (0, promises_1.setImmediate)();
|
|
537
|
+
throw new DstoreError('datastore.transaction execution error', error);
|
|
491
538
|
}
|
|
492
539
|
});
|
|
493
540
|
return ret;
|
|
@@ -496,19 +543,24 @@ class Dstore {
|
|
|
496
543
|
exports.Dstore = Dstore;
|
|
497
544
|
class DstoreError extends Error {
|
|
498
545
|
constructor(message, originalError, extensions) {
|
|
546
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
499
547
|
super(`${message}: ${originalError === null || originalError === void 0 ? void 0 : originalError.message}`);
|
|
500
548
|
// if no name provided, use the default. defineProperty ensures that it stays non-enumerable
|
|
501
549
|
if (!this.name) {
|
|
502
550
|
Object.defineProperty(this, 'name', { value: 'DstoreError' });
|
|
503
551
|
}
|
|
504
|
-
// code: 3,
|
|
505
|
-
// details: 'The key path element name is the empty string.',
|
|
506
552
|
// metadata: Metadata { internalRepr: Map(0) {}, options: {} },
|
|
507
|
-
// note: 'Exception occurred in retry method that was not classified as transient'
|
|
508
553
|
this.originalError = originalError;
|
|
509
554
|
this.extensions = Object.assign({}, extensions);
|
|
555
|
+
this.stack =
|
|
556
|
+
(((_a = this.stack) === null || _a === void 0 ? void 0 : _a.split('\n')[0]) || '') +
|
|
557
|
+
'\n' +
|
|
558
|
+
(((_d = (_c = (_b = originalError === null || originalError === void 0 ? void 0 : originalError.stack) === null || _b === void 0 ? void 0 : _b.split('\n')) === null || _c === void 0 ? void 0 : _c.slice(1, -1)) === null || _d === void 0 ? void 0 : _d.join('\n')) || '') +
|
|
559
|
+
'\n' +
|
|
560
|
+
(((_g = (_f = (_e = this.stack) === null || _e === void 0 ? void 0 : _e.split('\n')) === null || _f === void 0 ? void 0 : _f.slice(1, -1)) === null || _g === void 0 ? void 0 : _g.join('\n')) || '');
|
|
561
|
+
// These are usually present on Datastore Errors
|
|
510
562
|
// logger.error({ err: originalError, extensions }, message);
|
|
511
563
|
}
|
|
512
564
|
}
|
|
513
565
|
exports.DstoreError = DstoreError;
|
|
514
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZHN0b3JlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7QUFFSCw2Q0FBZ0Q7QUFFaEQsdURBTWlDO0FBQ2pDLHFFQUEwRTtBQU8xRSx5Q0FPbUI7QUFDbkIsa0RBQTBCO0FBRzFCLGNBQWM7QUFDZCxxREFNaUM7QUFML0Isc0dBQUEsU0FBUyxPQUFBO0FBQ1QsZ0dBQUEsR0FBRyxPQUFBO0FBRUgsa0dBQUEsS0FBSyxPQUFBO0FBQ0wsd0dBQUEsV0FBVyxPQUFBO0FBR2IsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBSyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTlCLGNBQWM7QUFFZDs7O0dBR0c7QUFDSCxNQUFNLDRCQUE0QixHQUFHLElBQUksK0JBQWlCLEVBQUUsQ0FBQztBQUVoRCxRQUFBLE1BQU0sR0FBRyxxQkFBUyxDQUFDLEdBQUcsQ0FBQztBQXdGcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQkU7QUFDRixNQUFhLE1BQU07SUFHakI7Ozs7Ozs7Ozs7Ozs7O01BY0U7SUFDRixZQUNXLFNBQW9CLEVBQ3BCLFNBQWtCLEVBQ2xCLE1BQWU7UUFGZixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQXBCVCxlQUFVLEdBQUcsSUFBSSxlQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFzQnBELElBQUEsMEJBQWMsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQscURBQXFEO0lBQzdDLE1BQU07UUFDWixPQUFPLENBQ0osNEJBQTRCLENBQUMsUUFBUSxFQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQzNFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FB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
|
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZHN0b3JlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7QUFFSCw2Q0FBZ0Q7QUFDaEQsOENBQStDO0FBRS9DLHVEQU1pQztBQUNqQyxxRUFBMEU7QUFPMUUseUNBT21CO0FBQ25CLGtEQUEwQjtBQUMxQiw4REFBcUM7QUFHckMsY0FBYztBQUNkLHFEQU1pQztBQUwvQixzR0FBQSxTQUFTLE9BQUE7QUFDVCxnR0FBQSxHQUFHLE9BQUE7QUFFSCxrR0FBQSxLQUFLLE9BQUE7QUFDTCx3R0FBQSxXQUFXLE9BQUE7QUFHYixjQUFjO0FBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFLLEVBQUMsUUFBUSxDQUFDLENBQUM7QUFFOUIsY0FBYztBQUNkLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSwrQkFBaUIsRUFBRSxDQUFDO0FBRTdELGNBQWM7QUFDZCxNQUFNLGVBQWUsR0FBRyxJQUFJLHFCQUFVLENBQUMsU0FBUyxDQUFDO0lBQy9DLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsSUFBSSxFQUFFLHlDQUF5QztJQUMvQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO0NBQ3RDLENBQUMsQ0FBQztBQUNILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxxQkFBVSxDQUFDLE9BQU8sQ0FBQztJQUNsRCxJQUFJLEVBQUUsdUJBQXVCO0lBQzdCLElBQUksRUFBRSx1Q0FBdUM7SUFDN0MsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDO0NBQzFCLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsTUFBTSxHQUFHLHFCQUFTLENBQUMsR0FBRyxDQUFDO0FBd0ZwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNCRTtBQUNGLE1BQWEsTUFBTTtJQUdqQjs7Ozs7Ozs7Ozs7Ozs7TUFjRTtJQUNGLFlBQ1csU0FBb0Is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
|
|
@@ -229,7 +229,7 @@ function getDstore(projectId) {
|
|
|
229
229
|
t.is(result === null || result === void 0 ? void 0 : result.foo, 'bar');
|
|
230
230
|
});
|
|
231
231
|
(0, ava_1.default)('query', async (t) => {
|
|
232
|
-
var _a, _b, _c
|
|
232
|
+
var _a, _b, _c;
|
|
233
233
|
const kvStore = getDstore('test');
|
|
234
234
|
const entity = {
|
|
235
235
|
key: kvStore.key(['testYodel', '3']),
|
|
@@ -243,7 +243,6 @@ function getDstore(projectId) {
|
|
|
243
243
|
t.is((_a = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _a === void 0 ? void 0 : _a.foo, 'bar');
|
|
244
244
|
t.is((_c = (_b = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _b === void 0 ? void 0 : _b[datastore_1.Datastore.KEY]) === null || _c === void 0 ? void 0 : _c.kind, 'testYodel');
|
|
245
245
|
t.is(runQueryInfo === null || runQueryInfo === void 0 ? void 0 : runQueryInfo.moreResults, 'MORE_RESULTS_AFTER_LIMIT');
|
|
246
|
-
t.is((_d = entities === null || entities === void 0 ? void 0 : entities[0]) === null || _d === void 0 ? void 0 : _d._keyStr, 'agByDwsSCXRlc3RZb2RlbBgDDA');
|
|
247
246
|
// modern interface
|
|
248
247
|
const [result2] = await kvStore.query('testYodel', [], 1, [], ['baz']);
|
|
249
248
|
t.is(result2.length, 1);
|
|
@@ -255,6 +254,18 @@ function getDstore(projectId) {
|
|
|
255
254
|
const key = kvStore.readKey(result2 === null || result2 === void 0 ? void 0 : result2[0]);
|
|
256
255
|
t.is(key.id, entity.key.id);
|
|
257
256
|
});
|
|
257
|
+
(0, ava_1.default)('set', async (t) => {
|
|
258
|
+
// expect.assertions(2);
|
|
259
|
+
const kvStore = getDstore('test');
|
|
260
|
+
const result = await kvStore.set(kvStore.key(['testYodel', '5e7']), {
|
|
261
|
+
foo: 'bar',
|
|
262
|
+
});
|
|
263
|
+
t.deepEqual(result.name, '5e7');
|
|
264
|
+
t.deepEqual(result.kind, 'testYodel');
|
|
265
|
+
// autogenerate key
|
|
266
|
+
const result2 = await kvStore.set(kvStore.key(['testYodel']), { foo: 'bar' });
|
|
267
|
+
t.deepEqual(result2.kind, 'testYodel');
|
|
268
|
+
});
|
|
258
269
|
(0, ava_1.default)('save / upsert', async (t) => {
|
|
259
270
|
var _a, _b, _c;
|
|
260
271
|
// expect.assertions(2);
|
|
@@ -287,44 +298,35 @@ function getDstore(projectId) {
|
|
|
287
298
|
t.is((_f = (_e = (_d = result === null || result === void 0 ? void 0 : result[0]) === null || _d === void 0 ? void 0 : _d.mutationResults) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.key, null);
|
|
288
299
|
t.is((_g = result === null || result === void 0 ? void 0 : result[0]) === null || _g === void 0 ? void 0 : _g.indexUpdates, 2);
|
|
289
300
|
});
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
//
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
//
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
// // name_space: "test"
|
|
320
|
-
// // path <
|
|
321
|
-
// // Element {
|
|
322
|
-
// // type: "testYodel"
|
|
323
|
-
// // id: 5
|
|
324
|
-
// // }
|
|
325
|
-
// // >
|
|
326
|
-
// });
|
|
327
|
-
// });
|
|
301
|
+
(0, ava_1.default)('insert / delete', async (t) => {
|
|
302
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
303
|
+
// expect.assertions(2);
|
|
304
|
+
const kvStore = getDstore('test');
|
|
305
|
+
const entity = {
|
|
306
|
+
key: kvStore.key(['testYodel', 4]),
|
|
307
|
+
data: { foo: 'bar' },
|
|
308
|
+
};
|
|
309
|
+
const result = await kvStore.insert([entity]);
|
|
310
|
+
t.is((_c = (_b = (_a = result === null || result === void 0 ? void 0 : result[0]) === null || _a === void 0 ? void 0 : _a.mutationResults) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.conflictDetected, false);
|
|
311
|
+
t.is((_d = result === null || result === void 0 ? void 0 : result[0]) === null || _d === void 0 ? void 0 : _d.indexUpdates, 3);
|
|
312
|
+
// t.is(result?.[0]?.mutationResults?.[0]?.version, '4'); sometimes 4 sometimes 5, sometimes 3
|
|
313
|
+
t.deepEqual(entity.data.foo, 'bar');
|
|
314
|
+
t.deepEqual(entity.key.path, ['testYodel', 4]);
|
|
315
|
+
const result2 = await kvStore.delete([entity.key]);
|
|
316
|
+
t.is((_g = (_f = (_e = result2 === null || result2 === void 0 ? void 0 : result2[0]) === null || _e === void 0 ? void 0 : _e.mutationResults) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.conflictDetected, false);
|
|
317
|
+
});
|
|
318
|
+
(0, ava_1.default)('exception', async (t) => {
|
|
319
|
+
// expect.assertions(2);
|
|
320
|
+
const kvStore = getDstore('test');
|
|
321
|
+
try {
|
|
322
|
+
const result = await kvStore.set(kvStore.key(['testYodel', NaN]), {
|
|
323
|
+
foo: 'bar',
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
catch (e) {
|
|
327
|
+
t.regex(e.stack, /Dstore\.set/);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
328
330
|
// describe("Transactions", () => {
|
|
329
331
|
// it("simple", async () => {
|
|
330
332
|
// expect.assertions(2);
|
|
@@ -372,4 +374,4 @@ function getDstore(projectId) {
|
|
|
372
374
|
// expect(t).toThrow(DstoreError);
|
|
373
375
|
// });
|
|
374
376
|
// });
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kc3RvcmUtYXBpLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7OztBQUVILHVEQUFvRDtBQUNwRCw4Q0FBdUI7QUFDdkIsMEZBQWlEO0FBRWpELDZDQUFzQztBQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsQ0FBQyx3Q0FBd0M7QUFDbkYsSUFBSSxRQUFRLENBQUM7QUFFYixhQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUN2QixRQUFRLEdBQUcsSUFBSSxtQ0FBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDakMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFNBQVMsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sSUFBSSxtQkFBTSxDQUFDLElBQUkscUJBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsSUFBQSxhQUFJLEVBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMvQixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFD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
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kc3RvcmUtYXBpLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7OztBQUVILHVEQUFvRDtBQUNwRCw4Q0FBdUI7QUFDdkIsMEZBQWlEO0FBRWpELDZDQUFzQztBQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsQ0FBQyx3Q0FBd0M7QUFDbkYsSUFBSSxRQUFRLENBQUM7QUFFYixhQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUN2QixRQUFRLEdBQUcsSUFBSSxtQ0FBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDakMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFNBQVMsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sSUFBSSxtQkFBTSxDQUFDLElBQUkscUJBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsSUFBQSxhQUFJLEVBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMvQixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFD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
|
|
@@ -4,6 +4,10 @@ import { Operator, RunQueryResponse } from '@google-cloud/datastore/build/src/qu
|
|
|
4
4
|
import { CommitResponse } from '@google-cloud/datastore/build/src/request';
|
|
5
5
|
/** @ignore */
|
|
6
6
|
export { Datastore, Key, PathType, Query, Transaction, } from '@google-cloud/datastore';
|
|
7
|
+
/** Use instead of Datastore.KEY
|
|
8
|
+
*
|
|
9
|
+
* Even better: use `_key` instead.
|
|
10
|
+
*/
|
|
7
11
|
export declare const KEYSYM: symbol;
|
|
8
12
|
export declare type IGqlFilterTypes = boolean | string | number;
|
|
9
13
|
export declare type IGqlFilterSpec = {
|
|
@@ -197,7 +201,7 @@ export declare class Dstore implements IDstore {
|
|
|
197
201
|
*
|
|
198
202
|
* @category Additional
|
|
199
203
|
*/
|
|
200
|
-
set(key: Key, data:
|
|
204
|
+
set(key: Key, data: IDstoreEntryWithoutKey): Promise<Key>;
|
|
201
205
|
/** `save()` is compatible to [Datastore.save()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_save_member_1_).
|
|
202
206
|
*
|
|
203
207
|
* The single Parameter is a list of [[DstoreSaveEntity]]s.
|
|
@@ -9,20 +9,33 @@
|
|
|
9
9
|
* Copyright (c) 2021 Dr. Maximillian Dornseif
|
|
10
10
|
*/
|
|
11
11
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
12
|
+
import { setImmediate } from 'timers/promises';
|
|
12
13
|
import { Datastore, } from '@google-cloud/datastore';
|
|
13
14
|
import { entity } from '@google-cloud/datastore/build/src/entity';
|
|
14
15
|
import { assert, assertIsArray, assertIsDefined, assertIsNumber, assertIsObject, assertIsString, } from 'assertate';
|
|
15
16
|
import Debug from 'debug';
|
|
17
|
+
import promClient from 'prom-client';
|
|
16
18
|
/** @ignore */
|
|
17
19
|
export { Datastore, Key, Query, Transaction, } from '@google-cloud/datastore';
|
|
18
20
|
/** @ignore */
|
|
19
21
|
const debug = Debug('ds:api');
|
|
20
22
|
/** @ignore */
|
|
23
|
+
const transactionAsyncLocalStorage = new AsyncLocalStorage();
|
|
24
|
+
/** @ignore */
|
|
25
|
+
const metricHistogram = new promClient.Histogram({
|
|
26
|
+
name: 'dstore_requests_seconds',
|
|
27
|
+
help: 'How long did Datastore operations take?',
|
|
28
|
+
labelNames: ['operation', 'kindName'],
|
|
29
|
+
});
|
|
30
|
+
const metricFailureCounter = new promClient.Counter({
|
|
31
|
+
name: 'dstore_failures_total',
|
|
32
|
+
help: 'How many Datastore operations failed?',
|
|
33
|
+
labelNames: ['operation'],
|
|
34
|
+
});
|
|
21
35
|
/** Use instead of Datastore.KEY
|
|
22
36
|
*
|
|
23
37
|
* Even better: use `_key` instead.
|
|
24
38
|
*/
|
|
25
|
-
const transactionAsyncLocalStorage = new AsyncLocalStorage();
|
|
26
39
|
export const KEYSYM = Datastore.KEY;
|
|
27
40
|
/** Dstore implements a slightly more accessible version of the [Google Cloud Datastore: Node.js Client](https://cloud.google.com/nodejs/docs/reference/datastore/latest)
|
|
28
41
|
|
|
@@ -181,17 +194,23 @@ export class Dstore {
|
|
|
181
194
|
*/
|
|
182
195
|
async getMulti(keys) {
|
|
183
196
|
// assertIsArray(keys);
|
|
197
|
+
let ret;
|
|
198
|
+
const metricEnd = metricHistogram.startTimer();
|
|
184
199
|
try {
|
|
185
|
-
|
|
200
|
+
ret = this.fixKeys(keys.length > 0
|
|
186
201
|
? (await this.getDoT().get(keys))?.[0]
|
|
187
202
|
: []);
|
|
188
203
|
}
|
|
189
204
|
catch (error) {
|
|
190
205
|
// console.error(error)
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
206
|
+
metricFailureCounter.inc({ operation: 'get' });
|
|
207
|
+
await setImmediate();
|
|
208
|
+
throw new DstoreError('datastore.getMulti error', error, { keys });
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
metricEnd({ kindName: keys?.[0]?.kind, operation: 'get' });
|
|
194
212
|
}
|
|
213
|
+
return ret;
|
|
195
214
|
}
|
|
196
215
|
/** `set()` is addition to [[Datastore]]. It provides a classic Key-value Interface.
|
|
197
216
|
*
|
|
@@ -251,6 +270,8 @@ export class Dstore {
|
|
|
251
270
|
*/
|
|
252
271
|
async save(entities) {
|
|
253
272
|
assertIsArray(entities);
|
|
273
|
+
let ret;
|
|
274
|
+
const metricEnd = metricHistogram.startTimer();
|
|
254
275
|
try {
|
|
255
276
|
// Within Transaction we don't get any answer here!
|
|
256
277
|
// [ { mutationResults: [ [Object], [Object] ], indexUpdates: 51 } ]
|
|
@@ -263,18 +284,21 @@ export class Dstore {
|
|
|
263
284
|
? true
|
|
264
285
|
: e.excludeLargeProperties;
|
|
265
286
|
}
|
|
266
|
-
|
|
287
|
+
ret = (await this.getDoT().save(entities)) || undefined;
|
|
267
288
|
for (const e of entities) {
|
|
268
289
|
e.data[Datastore.KEY] = e.key;
|
|
269
290
|
this.fixKeys([e.data]);
|
|
270
291
|
}
|
|
271
|
-
return ret;
|
|
272
292
|
}
|
|
273
293
|
catch (error) {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
294
|
+
metricFailureCounter.inc({ operation: 'save' });
|
|
295
|
+
await setImmediate();
|
|
296
|
+
throw new DstoreError('datastore.save error', error);
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
metricEnd({ kindName: entities?.[0]?.key?.kind, operation: 'save' });
|
|
277
300
|
}
|
|
301
|
+
return ret;
|
|
278
302
|
}
|
|
279
303
|
/** `insert()` is compatible to [Datastore.insert()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_insert_member_1_).
|
|
280
304
|
*
|
|
@@ -293,15 +317,21 @@ export class Dstore {
|
|
|
293
317
|
*/
|
|
294
318
|
async insert(entities) {
|
|
295
319
|
assertIsArray(entities);
|
|
320
|
+
let ret;
|
|
321
|
+
const metricEnd = metricHistogram.startTimer();
|
|
296
322
|
try {
|
|
297
|
-
|
|
323
|
+
ret = (await this.getDoT().insert(entities)) || undefined;
|
|
298
324
|
}
|
|
299
325
|
catch (error) {
|
|
300
326
|
// console.error(error)
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
327
|
+
metricFailureCounter.inc({ operation: 'insert' });
|
|
328
|
+
await setImmediate();
|
|
329
|
+
throw new DstoreError('datastore.insert error', error);
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
metricEnd({ kindName: entities?.[0]?.key?.kind, operation: 'insert' });
|
|
304
333
|
}
|
|
334
|
+
return ret;
|
|
305
335
|
}
|
|
306
336
|
/** `update()` is compatible to [Datastore.update()](https://cloud.google.com/nodejs/docs/reference/datastore/latest/datastore/datastore#_google_cloud_datastore_Datastore_update_member_1_).
|
|
307
337
|
|
|
@@ -327,15 +357,21 @@ export class Dstore {
|
|
|
327
357
|
entity.key.path,
|
|
328
358
|
entity,
|
|
329
359
|
])}`));
|
|
360
|
+
let ret;
|
|
361
|
+
const metricEnd = metricHistogram.startTimer();
|
|
330
362
|
try {
|
|
331
|
-
|
|
363
|
+
ret = (await this.getDoT().update(entities)) || undefined;
|
|
332
364
|
}
|
|
333
365
|
catch (error) {
|
|
334
366
|
// console.error(error)
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
367
|
+
metricFailureCounter.inc({ operation: 'update' });
|
|
368
|
+
await setImmediate();
|
|
369
|
+
throw new DstoreError('datastore.update error', error);
|
|
370
|
+
}
|
|
371
|
+
finally {
|
|
372
|
+
metricEnd({ kindName: entities?.[0]?.key?.kind, operation: 'update' });
|
|
338
373
|
}
|
|
374
|
+
return ret;
|
|
339
375
|
}
|
|
340
376
|
/** `delete()` is compatible to [Datastore.delete()].
|
|
341
377
|
*
|
|
@@ -354,15 +390,21 @@ export class Dstore {
|
|
|
354
390
|
assertIsArray(keys);
|
|
355
391
|
keys.forEach((key) => assertIsObject(key));
|
|
356
392
|
keys.forEach((key) => assert(key.path.length % 2 == 0, `key.path must be complete: ${JSON.stringify(key.path)}`));
|
|
393
|
+
let ret;
|
|
394
|
+
const metricEnd = metricHistogram.startTimer();
|
|
357
395
|
try {
|
|
358
|
-
|
|
396
|
+
ret = (await this.getDoT().delete(keys)) || undefined;
|
|
359
397
|
}
|
|
360
398
|
catch (error) {
|
|
361
399
|
// console.error(error)
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
400
|
+
metricFailureCounter.inc({ operation: 'delete' });
|
|
401
|
+
await setImmediate();
|
|
402
|
+
throw new DstoreError('datastore.delete error', error);
|
|
403
|
+
}
|
|
404
|
+
finally {
|
|
405
|
+
metricEnd({ kindName: keys?.[0]?.kind, operation: 'delete' });
|
|
365
406
|
}
|
|
407
|
+
return ret;
|
|
366
408
|
}
|
|
367
409
|
/** `createQuery()` creates an "empty" [[Query]] Object.
|
|
368
410
|
*
|
|
@@ -381,15 +423,20 @@ export class Dstore {
|
|
|
381
423
|
}
|
|
382
424
|
}
|
|
383
425
|
async runQuery(query) {
|
|
426
|
+
let ret;
|
|
427
|
+
const metricEnd = metricHistogram.startTimer();
|
|
384
428
|
try {
|
|
385
429
|
const [entities, info] = await this.getDoT().runQuery(query);
|
|
386
|
-
|
|
430
|
+
ret = [this.fixKeys(entities), info];
|
|
387
431
|
}
|
|
388
432
|
catch (error) {
|
|
433
|
+
await setImmediate();
|
|
389
434
|
throw new DstoreError('datastore.runQuery error', error);
|
|
390
|
-
// console.error(error)
|
|
391
|
-
// throw process.env.NODE_ENV === 'test' ? error : new KvStoreError('datastore.runQuery error', error)
|
|
392
435
|
}
|
|
436
|
+
finally {
|
|
437
|
+
metricEnd({ kindName: query?.kinds?.[0], operation: 'query' });
|
|
438
|
+
}
|
|
439
|
+
return ret;
|
|
393
440
|
}
|
|
394
441
|
async query(kindName, filters = [], limit = 2500, ordering = [], selection = [], cursor) {
|
|
395
442
|
assertIsString(kindName);
|
|
@@ -412,15 +459,13 @@ export class Dstore {
|
|
|
412
459
|
return await this.runQuery(q);
|
|
413
460
|
}
|
|
414
461
|
catch (error) {
|
|
415
|
-
|
|
416
|
-
throw
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
ordering,
|
|
423
|
-
});
|
|
462
|
+
await setImmediate();
|
|
463
|
+
throw new DstoreError('datastore.query error', error, {
|
|
464
|
+
kindName,
|
|
465
|
+
filters,
|
|
466
|
+
limit,
|
|
467
|
+
ordering,
|
|
468
|
+
});
|
|
424
469
|
}
|
|
425
470
|
}
|
|
426
471
|
/** Allocate one ID in the Datastore.
|
|
@@ -466,19 +511,16 @@ export class Dstore {
|
|
|
466
511
|
catch (error) {
|
|
467
512
|
const rollbackInfo = await transaction.rollback();
|
|
468
513
|
debug('Transaction failed, rollback initiated: %O %O %O %O', transactionInfo, transactionRunApiResponse, rollbackInfo, error);
|
|
469
|
-
|
|
470
|
-
throw
|
|
471
|
-
? error
|
|
472
|
-
: new DstoreError('datastore.transaction execution error', error);
|
|
514
|
+
await setImmediate();
|
|
515
|
+
throw new DstoreError('datastore.transaction execution error', error);
|
|
473
516
|
}
|
|
474
517
|
try {
|
|
475
518
|
commitApiResponse = await transaction.commit()[0];
|
|
476
519
|
}
|
|
477
520
|
catch (error) {
|
|
478
521
|
debug('Transaction commit failed: %O %O %O %O ret: %O', transactionInfo, transactionRunApiResponse, commitApiResponse, error, ret);
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
: new DstoreError('datastore.transaction execution error', error);
|
|
522
|
+
await setImmediate();
|
|
523
|
+
throw new DstoreError('datastore.transaction execution error', error);
|
|
482
524
|
}
|
|
483
525
|
});
|
|
484
526
|
return ret;
|
|
@@ -493,13 +535,17 @@ export class DstoreError extends Error {
|
|
|
493
535
|
if (!this.name) {
|
|
494
536
|
Object.defineProperty(this, 'name', { value: 'DstoreError' });
|
|
495
537
|
}
|
|
496
|
-
// code: 3,
|
|
497
|
-
// details: 'The key path element name is the empty string.',
|
|
498
538
|
// metadata: Metadata { internalRepr: Map(0) {}, options: {} },
|
|
499
|
-
// note: 'Exception occurred in retry method that was not classified as transient'
|
|
500
539
|
this.originalError = originalError;
|
|
501
540
|
this.extensions = { ...extensions };
|
|
541
|
+
this.stack =
|
|
542
|
+
(this.stack?.split('\n')[0] || '') +
|
|
543
|
+
'\n' +
|
|
544
|
+
(originalError?.stack?.split('\n')?.slice(1, -1)?.join('\n') || '') +
|
|
545
|
+
'\n' +
|
|
546
|
+
(this.stack?.split('\n')?.slice(1, -1)?.join('\n') || '');
|
|
547
|
+
// These are usually present on Datastore Errors
|
|
502
548
|
// logger.error({ err: originalError, extensions }, message);
|
|
503
549
|
}
|
|
504
550
|
}
|
|
505
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZHN0b3JlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUNMLFNBQVMsR0FLVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQU8xRSxPQUFPLEVBQ0wsTUFBTSxFQUNOLGFBQWEsRUFDYixlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLGNBQWM7QUFDZCxPQUFPLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFFSCxLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0seUJBQXlCLENBQUM7QUFFakMsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU5QixjQUFjO0FBRWQ7OztHQUdHO0FBQ0gsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUM7QUF3RnBDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBc0JFO0FBQ0YsTUFBTSxPQUFPLE1BQU07SUFtQk47SUFDQTtJQUNBO0lBcEJNLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUV0RDs7Ozs7Ozs7Ozs7Ozs7TUFjRTtJQUNGLFlBQ1csU0FBb0IsRUFDcEIsU0FBa0IsRUFDbEIsTUFBZTtRQUZmLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFT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
|
|
551
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZHN0b3JlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxTQUFTLEdBS1YsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFPMUUsT0FBTyxFQUNMLE1BQU0sRUFDTixhQUFhLEVBQ2IsZUFBZSxFQUNmLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFHckMsY0FBYztBQUNkLE9BQU8sRUFDTCxTQUFTLEVBQ1QsR0FBRyxFQUVILEtBQUssRUFDTCxXQUFXLEdBQ1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxjQUFjO0FBQ2QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTlCLGNBQWM7QUFDZCxNQUFNLDRCQUE0QixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztBQUU3RCxjQUFjO0FBQ2QsTUFBTSxlQUFlLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQy9DLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsSUFBSSxFQUFFLHlDQUF5QztJQUMvQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO0NBQ3RDLENBQUMsQ0FBQztBQUNILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2xELElBQUksRUFBRSx1QkFBdUI7SUFDN0IsSUFBSSxFQUFF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
|
|
@@ -237,7 +237,6 @@ test('query', async (t) => {
|
|
|
237
237
|
t.is(entities?.[0]?.foo, 'bar');
|
|
238
238
|
t.is(entities?.[0]?.[Datastore.KEY]?.kind, 'testYodel');
|
|
239
239
|
t.is(runQueryInfo?.moreResults, 'MORE_RESULTS_AFTER_LIMIT');
|
|
240
|
-
t.is(entities?.[0]?._keyStr, 'agByDwsSCXRlc3RZb2RlbBgDDA');
|
|
241
240
|
// modern interface
|
|
242
241
|
const [result2] = await kvStore.query('testYodel', [], 1, [], ['baz']);
|
|
243
242
|
t.is(result2.length, 1);
|
|
@@ -249,6 +248,18 @@ test('query', async (t) => {
|
|
|
249
248
|
const key = kvStore.readKey(result2?.[0]);
|
|
250
249
|
t.is(key.id, entity.key.id);
|
|
251
250
|
});
|
|
251
|
+
test('set', async (t) => {
|
|
252
|
+
// expect.assertions(2);
|
|
253
|
+
const kvStore = getDstore('test');
|
|
254
|
+
const result = await kvStore.set(kvStore.key(['testYodel', '5e7']), {
|
|
255
|
+
foo: 'bar',
|
|
256
|
+
});
|
|
257
|
+
t.deepEqual(result.name, '5e7');
|
|
258
|
+
t.deepEqual(result.kind, 'testYodel');
|
|
259
|
+
// autogenerate key
|
|
260
|
+
const result2 = await kvStore.set(kvStore.key(['testYodel']), { foo: 'bar' });
|
|
261
|
+
t.deepEqual(result2.kind, 'testYodel');
|
|
262
|
+
});
|
|
252
263
|
test('save / upsert', async (t) => {
|
|
253
264
|
// expect.assertions(2);
|
|
254
265
|
const kvStore = getDstore('test');
|
|
@@ -279,44 +290,34 @@ test('update', async (t) => {
|
|
|
279
290
|
t.is(result?.[0]?.mutationResults?.[0]?.key, null);
|
|
280
291
|
t.is(result?.[0]?.indexUpdates, 2);
|
|
281
292
|
});
|
|
282
|
-
|
|
283
|
-
//
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
// // 6 ALREADY_EXISTS: entity already exists: app: "h~huwawi3"
|
|
311
|
-
// // name_space: "test"
|
|
312
|
-
// // path <
|
|
313
|
-
// // Element {
|
|
314
|
-
// // type: "testYodel"
|
|
315
|
-
// // id: 5
|
|
316
|
-
// // }
|
|
317
|
-
// // >
|
|
318
|
-
// });
|
|
319
|
-
// });
|
|
293
|
+
test('insert / delete', async (t) => {
|
|
294
|
+
// expect.assertions(2);
|
|
295
|
+
const kvStore = getDstore('test');
|
|
296
|
+
const entity = {
|
|
297
|
+
key: kvStore.key(['testYodel', 4]),
|
|
298
|
+
data: { foo: 'bar' },
|
|
299
|
+
};
|
|
300
|
+
const result = await kvStore.insert([entity]);
|
|
301
|
+
t.is(result?.[0]?.mutationResults?.[0]?.conflictDetected, false);
|
|
302
|
+
t.is(result?.[0]?.indexUpdates, 3);
|
|
303
|
+
// t.is(result?.[0]?.mutationResults?.[0]?.version, '4'); sometimes 4 sometimes 5, sometimes 3
|
|
304
|
+
t.deepEqual(entity.data.foo, 'bar');
|
|
305
|
+
t.deepEqual(entity.key.path, ['testYodel', 4]);
|
|
306
|
+
const result2 = await kvStore.delete([entity.key]);
|
|
307
|
+
t.is(result2?.[0]?.mutationResults?.[0]?.conflictDetected, false);
|
|
308
|
+
});
|
|
309
|
+
test('exception', async (t) => {
|
|
310
|
+
// expect.assertions(2);
|
|
311
|
+
const kvStore = getDstore('test');
|
|
312
|
+
try {
|
|
313
|
+
const result = await kvStore.set(kvStore.key(['testYodel', NaN]), {
|
|
314
|
+
foo: 'bar',
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
t.regex(e.stack, /Dstore\.set/);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
320
321
|
// describe("Transactions", () => {
|
|
321
322
|
// it("simple", async () => {
|
|
322
323
|
// expect.assertions(2);
|
|
@@ -364,4 +365,4 @@ test('update', async (t) => {
|
|
|
364
365
|
// expect(t).toThrow(DstoreError);
|
|
365
366
|
// });
|
|
366
367
|
// });
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kc3RvcmUtYXBpLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFDO0FBQ3ZCLE9BQU8sUUFBUSxNQUFNLDJCQUEyQixDQUFDO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLENBQUMsd0NBQXdDO0FBQ25GLElBQUksUUFBUSxDQUFDO0FBRWIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDdkIsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDakMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFNBQVMsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9CLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxH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
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN0b3JlLWFwaS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kc3RvcmUtYXBpLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFDO0FBQ3ZCLE9BQU8sUUFBUSxNQUFNLDJCQUEyQixDQUFDO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLENBQUMsd0NBQXdDO0FBQ25GLElBQUksUUFBUSxDQUFDO0FBRWIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDdkIsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDakMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFNBQVMsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9CLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxH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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datastore-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "Simplified, more consitent API for Google Cloud Datastore",
|
|
5
5
|
"main": "build/main/index.js",
|
|
6
6
|
"typings": "build/main/index.d.ts",
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"assertate": "^2.4.0",
|
|
49
|
-
"google-datastore-emulator": "^5.1.0"
|
|
49
|
+
"google-datastore-emulator": "^5.1.0",
|
|
50
|
+
"prom-client": "^14.0.1"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
52
53
|
"@ava/typescript": "^1.1.1",
|