chrome-storage-largesync

0.0.4 • Public • Published

largeSync - chrome-storage-largeSync

largeSync wraps chrome.storage.sync. it makes it easy to store objects larger than is allowed by default. Useful for Google Chrome extensions and apps.

chrome.storage.sync enforces two byte limits.

  • QUOTA_BYTES_PER_ITEM 8,192 - (measured by the JSON stringification of the item plus its key length)
  • QUOTA_BYTES 102,400 - (total across all items)

largeSync "compresses" and splits objects up between multiple keys in chrome.storage.sync, this makes QUOTA_BYTES the only relevant space limitation.

Dependencies

lz-string - "compress" strings

Install

The file to use is dist/chrome-storage-largeSync.min.js or dist/chrome-storage-largeSync.js

bower : bower install chrome-storage-largeSync --save

npm: npm install chrome-storage-largesync --save

for local build clone and run these commands npm install,bower install and grunt

Usage

largeSync exposes the same api schema as chrome.storage, The API is exposed in two different places largeSync and chrome.storage.largeSync

Methods

//get: Gets one or more items from storage.
largeSync.get(string or array of string or object keys, function callback);
 
//getBytesInUse: Gets the amount of space (in bytes) being used by one or more items.
largeSync.getBytesInUse(string or array of string keys, function callback);
 
//set : Sets multiple items.
largeSync.set(object items, function callback);
 
//remove: Removes one or more items from storage.
largeSync.remove(string or array of string keys, function callback);
 
//clear: Removes all items from storage.
largeSync.clear(function callback);

Example

var testObj = {'a' : [], 'b' : []};
for (var i = 0; i < 5000; i++) {
    testObj.a.push({text : 'sometext_a_'+i});
    testObj.b.push({text : 'sometext_b_'+i});
}
chrome.storage.largeSync.set(testObj);

chrome.storage.sync will now contain something similar to this. resulting objects in storage

to retrieve and reconstruct the object

chrome.storage.largeSync.get(["a", "b"], function(items){
    console.log(items)
    // "items" is equal to "testObj"
});

Tests

load test folder as an unpacked extension. it will override the new-tab page.


Dependencies (0)

    Dev Dependencies (8)

    Package Sidebar

    Install

    npm i chrome-storage-largesync

    Weekly Downloads

    2

    Version

    0.0.4

    License

    MIT

    Last publish

    Collaborators

    • dtuit