SplitTestCache.js 668 B

1234567891011121314151617181920212223242526272829
  1. const Metrics = require('@overleaf/metrics')
  2. const SplitTestManager = require('./SplitTestManager')
  3. const { CacheLoader } = require('cache-flow')
  4. class SplitTestCache extends CacheLoader {
  5. constructor() {
  6. super('split-test', {
  7. expirationTime: 60, // 1min in seconds
  8. })
  9. }
  10. async load() {
  11. Metrics.inc('split_test_get_split_test_from_mongo', 1, {})
  12. const splitTests = await SplitTestManager.getRuntimeTests()
  13. return new Map(
  14. splitTests.map(splitTest => [splitTest.name, splitTest.toObject()])
  15. )
  16. }
  17. serialize(value) {
  18. return value
  19. }
  20. deserialize(value) {
  21. return value
  22. }
  23. }
  24. module.exports = new SplitTestCache()