Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@flk/application

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@flk/application

The framework application manager.

  • 1.4.1
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Cache

The cache system is built on LocaleStorage API.

Installation

flk install flk-cache

OR

npm install flk-cache

Alias: cache.

Table of contents

Usage

Once you resolve the cache object you can use the methods below.


class HomePage {
    /**
     * {@inheritDoc}
     */
    constructor(cache) {
        this.cache = cache;
    } 
}

Available methods

Set

set(key: String, value: any, expiresAt: Number = Cache.FOREVER): Self

This method accepts any type of values, the cache engine will handle it automatically, so if you want to store object, you don't have to JSON.stringify it, the package will take care of it.

The expiresAt parameter is used to determine until when the value should be stored in.

Please note that this method accepts a valid timestamp number, i.e Date.now().

The default value for expiresAt is set to Cache.FOREVER which mean the value will not be removed from the cache until the user clears the browser history.

There are some useful constants for cache expiration time.

Examples

let cache = DI.resolve('cache');

cache.set('name', 'Hasan');

// It can also store objects
let user = {
    name: 'Hasan',
    address: 'Some street address',
};

cache.set('user', user);

// storing arrays is acceptable as well
let users = [{
    name: 'Hasan',
    address: 'Some street address',
}, {
    name: 'John Doe',
    address: 'Another address',
}];

cache.set('users', users);

// cache for one hour
cache.set('accessToken', MyAccessToken, Cache.FOR_ONE_HOUR);11

Get

get(key: String, defaultValue: any = null): any|null

Retrieve value from cache.

If the key doesn't exist, defaultValue will be returned instead.

Examples

let cache = DI.resolve('cache');

// if the given key exists
let name = cache.get('name'); // Hasan

// if the given key doesn't exists, return null
let age = cache.get('age'); // null

// if the given key doesn't exists, return the given default value instead.
let email = cache.get('email', 'my-email@sitename.com'); // my-email@sitename.com

Has

has(key: String): Boolean

Determine if the given key exists in cache.

Examples

let cache = DI.resolve('cache');

if (cache.has('name')) {
    // do something
}

Remove

remove(key: String): void

Remove the given key if exists in cache storage.

Examples

let cache = DI.resolve('cache');

cache.remove('name');

Clear

clear(): void

Clear all cache values.

Examples

let cache = DI.resolve('cache');

cache.clear();

Configurations

Available configurations for cache in Application configurations.

Main Configuration key: cache

keyTypeDefault valueDescription
encryptValuesBooleantrueIf set to true, any value will be encrypted using the Crypto package.

It's recommended to set the type of the encryptionValue in your config.js in the beginning of your application development as it works on all the cached values.

Constants

constantDescription
Cache.FOR_ONE_HOURCache the value for one hour.
Cache.FOR_TWO_HOURSCache the value for two hours.
Cache.FOR_ONE_DAYCache the value for one day.
Cache.FOR_ONE_WEEKCache the value for one week.
Cache.FOR_ONE_MONTHCache the value for one month.
Cache.FOR_ONE_YEARCache the value for one year.
Cache.FOREVERCache the value until the visitor clears the browser history.

FAQs

Package last updated on 01 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc