Blame view

lib/prefixes/index.js 765 Bytes
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
1
  'use strict';
48edb4d58   Adhidarma Hadiwinoto   Prefix TTL_SECS a...
2
  const TTL_SECS = 30;
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
3
  const coreapi = require('komodo-sdk/coreapi');
4a1706c99   Adhidarma Hadiwinoto   Prefixes cached
4
5
6
  const NodeCache = require( "node-cache" );
  
  const cache = new NodeCache({
48edb4d58   Adhidarma Hadiwinoto   Prefix TTL_SECS a...
7
      stdTTL: TTL_SECS,    
4a1706c99   Adhidarma Hadiwinoto   Prefixes cached
8
  });
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
9
10
11
  
  async function lookup(number) {
      if (!number) return;
4a1706c99   Adhidarma Hadiwinoto   Prefixes cached
12
13
14
      if (cache.get(number)) {
          return cache.get(number);
      }
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
15
16
17
18
19
20
21
22
23
      const [err, lookupResult] = await coreapi({
          path: '/prefixes/lookup',
          method: 'GET',
          qs: {
              number,
          }
      });
  
      if (err || !lookupResult || lookupResult.error) {
4a1706c99   Adhidarma Hadiwinoto   Prefixes cached
24
          cache.del(number);
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
25
26
          return;
      }
4a1706c99   Adhidarma Hadiwinoto   Prefixes cached
27
28
29
30
31
      if (lookupResult.prefix) {
          cache.set(number, lookupResult.prefix);
      } else {
          cache.del(number);
      }
8295b94e7   Adhidarma Hadiwinoto   CORE prefixes
32
33
34
35
      return lookupResult.prefix;
  }
  
  exports.lookup = lookup;