Optimizations (#4135)

* removes costly json serialization to InMemoryCacheAdapter

* Always cache a copy of the array

* Use own mapValues

* Makes sure we dont make unnecessary calls to the logger

* Do not bypass loggers with silent logging (only applies to stdout)

* warn is not warning

* use ===

* Wrap logRequest / logResponse in the loggerController for more granular control

Also give the ability to pass functions to the logger so we don't serialize too early in JSON (costly)

* reconfiguring winston would override the transports levels and make subsequent tests fail
This commit is contained in:
Florent Vilmart
2017-09-04 20:47:49 -04:00
committed by GitHub
parent 17f4dcd176
commit 3079270b3e
8 changed files with 118 additions and 33 deletions

View File

@@ -7,18 +7,15 @@ export class InMemoryCacheAdapter {
}
get(key) {
return new Promise((resolve) => {
const record = this.cache.get(key);
if (record == null) {
return resolve(null);
}
return resolve(JSON.parse(record));
})
const record = this.cache.get(key);
if (record === null) {
return Promise.resolve(null);
}
return Promise.resolve(record);
}
put(key, value, ttl) {
this.cache.put(key, JSON.stringify(value), ttl);
this.cache.put(key, value, ttl);
return Promise.resolve();
}