@giuem/tiny-cache
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

TinyCache

travis codecov size npm version npm license

A tiny library (~ 1kb Gzipped) that cache your static files in localStorage.

DO NOT USE IT IN PRODUCTION. This library is under development, its API and implementation may be changed at any time.

Installation

Via NPM or Yarn,

npm install @giuem/tiny-cahce
# or with yarn
yarn add @giuem/tiny-cahce

Or insert script directly,

<script src="https://cdn.jsdelivr.net/npm/@giuem/tiny-cache/dist/tiny-cache.min.js"></script>
<script>
TinyCache.load(/* ... */);
</script>

Usage

For Node.js or modern frontend, require/import it first,

// CommonJS
const { load } = require("@giuem/tiny-cache");
// ES Module
import { load } from "@giuem/tiny-cache";

Now you can load your JavaScript files,

load([
    { name: "script-1", url: "./script-1.js" },
    { name: "script-2", url: "./script-2.js", maxAge: 86400 },

    { name: "style-1", url: "./style-1.css", maxAge: 86400 },
    // more files ...
]);

API

TinyCache.configure(config: object)

Configure TinyCache, the config accepts an optional config with the following parameters:

  • prefix: localStorage key prefix. Defaults to TC:.
  • timeout: timeout for xhr request. Defaults to 6000 (6 seconds).

TinyCache.load(resources: [], callback?): Promise<void>

The load method loads a set of resources, every resource object has the following properties:

  • name: unique name for the script.
  • url: the URI of the script. Also identity the script's content, script will be updated if changed. Because of the CORS restrictions, loading a script without CORS header will fallback to <script> tag and won't be cached in localStorage.
  • maxAge: maxAge for the script. Specify how long before the script is expired (in seconds). If not provided, script will never be expired.
  • noCache: load via HTML tag directly.
  • type: specify file type (css or js). It will be determined by file suffix if not provided.

This method supports both callback and promise style. For example,

TinyCache.load([...], function(err) {
    if (err) {
        console.error(err);
        return;
    }
    // scripts loaded
});
// or
TinyCache.load([...]).then(() => {
    // scripts loaded
}).catch(err => {
    console.error(err);
});

TinyCache.remove(resource: object)

Remove localStorage item. The script object is the same as load method's.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @giuem/tiny-cache

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

26.2 kB

Total Files

16

Last publish

Collaborators

  • giuem