How to use flat-cache - 8 common examples

To help you get started, we’ve selected a few flat-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 11ty / 11ty-website / _data / github.js View on Github external
module.exports = async function() {
	let cache = flatcache.load("github-stargazers", path.resolve("./_datacache"));
	let key = getCacheKey();
	let cachedData = cache.getKey(key);
	if(!cachedData) {
		console.log( "Fetching new github stargazers count…" );
		// https://developer.github.com/v3/repos/#get
		try {
			let newData = await fetch("https://api.github.com/repos/11ty/eleventy")
				.then(res => res.json())
				.then(json => {
					return {
						stargazers: json.stargazers_count
					};
				});

			cache.setKey(key, newData);
			cache.save();
github 11ty / 11ty-website / _data / googlefonts.js View on Github external
module.exports = async function() {
	let cache = flatcache.load("google-fonts-roboto-mono", path.resolve("./_datacache"));
	let key = getCacheKey();
	let cachedData = cache.getKey(key);
	if(!cachedData) {
		console.log( "Fetching new Roboto Mono CSS…" );
		try {
			// let fontSrcUrl = "https://fonts.googleapis.com/css?family=Roboto+Mono&display=swap";
			let fontSrcUrl = "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700display=swap";
			let newData = await fetch(fontSrcUrl, {
					headers: {
						"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
					}
				})
				.then(res => res.text());

			cache.setKey(key, newData);
			cache.save();
github sx1989827 / DOClever / node_modules / file-entry-cache / cache.js View on Github external
create: function ( cacheId, _path ) {
    var fs = require( 'fs' );
    var flatCache = require( 'flat-cache' );
    var cache = flatCache.load( cacheId, _path );
    var assign = require( 'object-assign' );
    var normalizedEntries = { };

    var removeNotFoundFiles = function removeNotFoundFiles() {
      const cachedEntries = cache.keys();
      // remove not found entries
      cachedEntries.forEach( function remover( fPath ) {
        try {
          fs.statSync( fPath );
        } catch (err) {
          if ( err.code === 'ENOENT' ) {
            cache.removeKey( fPath );
          }
        }
      } );
    };
github royriojas / persistify / index.js View on Github external
browserifyOpts = browserifyOpts || { };
  opts = opts || { };
  var hash = require( 'hash-string' );

  var xtend = require( 'xtend' );

  var id = 'persistify_' + hash( process.cwd() + trim( opts.cacheId ) );
  var depsCacheId = 'deps-cx-' + id;
  var cacheDir = opts.cacheDir;

  var flatCache = require( 'flat-cache' );
  var fileEntryCache = require( 'file-entry-cache' );

  if ( opts.recreate ) {
    flatCache.clearCacheById( id, cacheDir );
    flatCache.clearCacheById( depsCacheId, cacheDir );
  }
  // load the cache with id
  var cache = flatCache.load( id, cacheDir );

  // load the file entry cache with id, or create a new
  // one if the previous one doesn't exist
  var depsCacheFile = fileEntryCache.create( depsCacheId, cacheDir );

  var ignoreCache = false;

  // if the command was specified this can be used
  // as the cache buster
  if ( opts.command ) {
    var configHashPersisted = cache.getKey( 'configHash' );
    var hashOfConfig = hash( opts.command );
github royriojas / persistify / index.js View on Github external
module.exports = function ( browserifyOpts, opts, argv ) {
  browserifyOpts = browserifyOpts || { };
  opts = opts || { };
  var hash = require( 'hash-string' );

  var xtend = require( 'xtend' );

  var id = 'persistify_' + hash( process.cwd() + trim( opts.cacheId ) );
  var depsCacheId = 'deps-cx-' + id;
  var cacheDir = opts.cacheDir;

  var flatCache = require( 'flat-cache' );
  var fileEntryCache = require( 'file-entry-cache' );

  if ( opts.recreate ) {
    flatCache.clearCacheById( id, cacheDir );
    flatCache.clearCacheById( depsCacheId, cacheDir );
  }
  // load the cache with id
  var cache = flatCache.load( id, cacheDir );

  // load the file entry cache with id, or create a new
  // one if the previous one doesn't exist
  var depsCacheFile = fileEntryCache.create( depsCacheId, cacheDir );

  var ignoreCache = false;

  // if the command was specified this can be used
  // as the cache buster
  if ( opts.command ) {
    var configHashPersisted = cache.getKey( 'configHash' );
    var hashOfConfig = hash( opts.command );
github guess-js / guess / packages / guess-webpack / src / ga-provider.ts View on Github external
import { auth as oauth2 } from 'google-oauth2-node';
import { RoutingModule, Period, Graph } from '../../common/interfaces';
import { fetch } from 'guess-ga';

const clientId = '329457372673-hda3mp2vghisfobn213jpj8ck1uohi2d.apps.googleusercontent.com';
const clientSecret = '4camaoQPOz9edR-Oz19vg-lN';
const scope = 'https://www.googleapis.com/auth/analytics.readonly';
const year = 365 * 24 * 60 * 60 * 1000;

const flatCache = require('flat-cache');
const cache = flatCache.load('guess-plugin');

const id = (r: T) => r;

export interface Config {
  jwt?: any;
  viewId: string;
  routes: RoutingModule[];
  formatter?: (path: string) => string;
  period?: Period;
}

const serializePeriod = (period: Period) => `${period.startDate.getTime()}-${period.endDate.getTime()}`;

export const getReport = (c: Config): Promise => {
  const period = c.period || { startDate: new Date(Date.now() - year), endDate: new Date() };
  const key = `${c.viewId}-${serializePeriod(period)}`;
github astronomersiva / lego / lib / utils / cache.js View on Github external
loadCache(type) {
    let cache;

    if (this[`_${type}`]) {
      cache = this[`_${type}`];
    } else {
      cache = flatCache.load(type, this._cacheDir);
      this[`_${type}`] = cache;
    }

    return cache;
  }
github JasonEtco / actions-toolkit / src / store.ts View on Github external
constructor (workflow: string, workspace: string) {
    this.file = `.${workflow || 'workflow'}-cache`
    this.cache = load(this.file, path.resolve(workspace || process.cwd()))

    this.get = this.cache.getKey.bind(this.cache)
    this.set = this.cache.setKey.bind(this.cache)
    this.all = this.cache.all.bind(this.cache)
    this.del = this.cache.removeKey.bind(this.cache)
    this.save = this.cache.save.bind(this.cache, true)

    process.on('exit', () => {
      if (this.cache.keys().length > 0) {
        this.save()
      }
    })
  }
}

flat-cache

A simple key/value storage using files to persist the data

MIT
Latest version published 10 days ago

Package Health Score

91 / 100
Full package analysis

Popular flat-cache functions