How to use node-cache - 10 common examples

To help you get started, we’ve selected a few node-cache examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github dynsdjs / dynsdjs / src / dns.js View on Github external
import EventEmitter from 'events'

// Configurations
const port = process.env.DNSPORT || 53,
      resolvers = {
        ipv4: [
          process.env.DNSALT1 || '8.8.8.8',
          process.env.DNSALT2 || '8.8.4.4'
        ],
        ipv6: [
          process.env.DNS6ALT1 || '2001:4860:4860::8888',
          process.env.DNS6ALT2 || '2001:4860:4860::8844'
        ]
      },
      verboseLog = ( process.env.VERBOSE == 'true' ),
      entries = new NodeCache({
        // From 
        // "You should set false if you want to save mutable objects or other complex types with mutability involved and wanted."
        useClones: false
      }),
      // Supported resources
      dnsResources = process.env.DNSRESOURCES ? process.env.DNSRESOURCES.split( ',' ) : 'A,AAAA,NS,CNAME,PTR,NAPTR,TXT,MX,SRV,SOA,TLSA'.split( ',' ),
      // Server Handlers
      tcpServer  = dns.createTCPServer(),
      udp4Server = dns.createServer( { dgram_type: { type: 'udp4', reuseAddr: true } } ),
      udp6Server = dns.createServer( { dgram_type: { type: 'udp6', reuseAddr: true } } )

function emitAsPromise( resolve, reject, me, eventName, data ) {
  const listeners = me.listeners( eventName ),
        promises = []

  if ( verboseLog )
github iterative / dvc.org / pages / api / github.js View on Github external
/* eslint-env node */

import { graphql } from '@octokit/graphql'
import NodeCache from 'node-cache'

const cache = new NodeCache({ stdTTL: 900 })

const dev = process.env.NODE_ENV === 'development'

export default async (_, res) => {
  if (!process.env.GITHUB_TOKEN) {
    res.status(200).json({ issues: [] })
  } else {
    if (cache.get('issues')) {
      if (dev) console.log('Using cache for "issues"')

      res.status(200).json({ issues: cache.get('issues') })
    } else {
      console.log('Not using cache for "issues"')
    }

    try {
github elementary / houston / src / houston / controller / api / downloads.js View on Github external
/**
 * houston/controller/api/downloads.js
 * Shows total download counts
 *
 * @exports {Object} - Koa router
 */

import Cache from 'node-cache'
import Router from 'koa-router'

import Download from 'lib/database/download'

const cache = new Cache({ stdTTL: 600 })
const route = new Router({
  prefix: '/downloads'
})

/**
 * Finds a list of downloads for a project based on a time type
 *
 * @async
 * @param {String} type - "year" "month" "day" time frame
 * @return {Object[]}
 */
const findDownloads = async (type) => {
  // I'm so sorry about how bad this query is. Mongodb sucks. Weird hacks
  // and questionable tactics incoming.
  const raw = await Download.aggregate([
    { $match: { type } },
github frictionlessdata / data-quality-dashboard / app / bootstrap.js View on Github external
export default function bootstrap(app, express) {
  let viewPath = path.join(__dirname, 'backend', 'views')
  let publicPath = path.join(path.dirname(__dirname), 'public')
  // NOTE: We compile ES6 at runtime, in server.js, hence transformViews is
  // false due to some weirdness in express-react-views
  // https://github.com/reactjs/express-react-views/issues/40
  let viewEngine = createEngine({transformViews: false})
  let backendCache = new NodeCache()

  app.set('config', config)
  app.set('port', config.get('port'))
  app.set('cache', backendCache)
  app.set('views', viewPath)
  app.set('view engine', 'jsx')
  app.engine('jsx', viewEngine)
  app.use(express.static(publicPath))
  app.use([
    middlewares.getInstance,
    middlewares.getDB,
    middlewares.setLocals
  ])
  app.use('', routes())
  return app
}
github moovel / teamchatviz / server / data / lib / viz / lib / peopleLand.js View on Github external
License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
  USA
*/

import Promise from 'bluebird';
import db from '../../../../db';
import config from '../../../../config';
import TSNE from 'tsne-js';
import { groupBy } from 'lodash';
import clustering from 'density-clustering';
import colors from './clusterColors.js';
import logger from 'winston';
import NodeCache from 'node-cache';

const tsneCache = new NodeCache({ stdTTL: 60 * 60 * 24, checkperiod: 120 });

export default async function(teamId, startDate = null, endDate = null, currentUser = null, interval = '1 day') {
  logger.info(`Getting PeopleLand for ${teamId}, ${startDate}, ${endDate}`);

  const rawData = await db.any(`SELECT user_id, channel_id, is_member FROM membership
    WHERE team_id = $(teamId) AND user_id <> 'USLACKBOT';`,
    {
      teamId,
    });

  const groupedByUser = groupBy(rawData, row => row.user_id);

  const opt = {
    epsilon: 50, // epsilon is learning rate (10 = default)
    perplexity: 100, // roughly how many neighbors each point influences (30 = default)
    dim: 2, // dimensionality of the embedding (2 = default)
github lando / lando / lib / cache.js View on Github external
if (this.__del(key)) this.log.debug('Removed key %s from memcache.', key);
    else this.log.debug('Failed to remove key %s from memcache.', key);

    // Also remove file if applicable
    try {
      fs.unlinkSync(path.join(this.cacheDir, key));
    } catch (e) {
      this.log.debug('No file cache with key %s', key);
    }
  };
};

/*
 * Stores the old get method.
 */
Cache.prototype.__get = NodeCache.prototype.get;

/*
 * Stores the old set method.
 */
Cache.prototype.__set = NodeCache.prototype.set;

/*
 * Stores the old del method.
 */
Cache.prototype.__del = NodeCache.prototype.del;

/*
 * Return the class
 */
module.exports = Cache;
github flow-typed / flow-typed / definitions / npm / node-cache_v4.x.x / test_node-cache_v4.x.x.js View on Github external
it("works", () => {
    const cache = new NodeCache({ stdTTL: 60 });
    cache.set("foo", 42);
    cache.set("foo", "this is fine");
    (cache.get("foo"): mixed);
    cache.del("foo");
    cache.del(["foo"]);
    cache.flushAll();
  });
});
github elementary / houston / src / houston / controller / api / list.js View on Github external
/**
 * houston/controller/api/list.js
 * Publishes some GET lists for AppCenter
 *
 * @exports {Object} - Koa router
 */

import Cache from 'node-cache'
import moment from 'moment'
import Router from 'koa-router'

import Download from 'lib/database/download'
import Project from 'lib/database/project'

const cache = new Cache({ stdTTL: 600 })
const route = new Router({
  prefix: '/newest'
})

/**
 * findReleases
 * Finds the projects with the newest releases.
 *
 * @return {string[]}
 */
const findReleases = async () => {
  const cachedRes = cache.get('findReleases')

  if (cachedRes != null) {
    return cachedRes
  }
github staart / api / src / helpers / cache.ts View on Github external
import NodeCache from "node-cache";
import { CACHE_TTL, CACHE_CHECK_PERIOD } from "../config";
import { query } from "./mysql";
import { CacheCategories } from "../interfaces/enum";
import { RESOURCE_NOT_FOUND } from "@staart/errors";

const cache = new NodeCache({
  stdTTL: CACHE_TTL,
  checkperiod: CACHE_CHECK_PERIOD
});

const generateKey = (category: CacheCategories, item: number | string) =>
  `${category}_${item}`;

/**
 * Get an item from the cache
 */
export const getItemFromCache = (
  category: CacheCategories,
  item: number | string
) => {
  const key = generateKey(category, item);
  return cache.get(key);
github cerner / kaiju / node / service / models / FsCacheFactory.js View on Github external
import NodeCache from 'node-cache';
import PreviewCache from './PreviewCache';
import FsCache from '../models/FsCache';

const nodeCache = new NodeCache({ stdTTL: 2, checkperiod: 120, useClones: false });

class FsCacheFactory {
  static create(projectId, workspaceId, cacheType, requestor) {
    const cacheKey = `${workspaceId}:${cacheType}`;
    let fsCache = nodeCache.get(cacheKey);

    if (fsCache === undefined) {
      fsCache = new FsCache(projectId, workspaceId, cacheType, requestor);
      nodeCache.set(cacheKey, fsCache);
    }
    return fsCache;
  }

  static createPreviewCache(projectId, workspaceId, requestor) {
    const cacheKey = `${workspaceId}:preview_cache`;
    let cache = nodeCache.get(cacheKey);

node-cache

Simple and fast NodeJS internal caching. Node internal in memory cache like memcached.

MIT
Latest version published 4 years ago

Package Health Score

81 / 100
Full package analysis

Popular node-cache functions