Skip to content

Wraps chrome.storage.sync, facilitates storage of objects larger than allowed by QUOTA_BYTES_PER_ITEM.

License

Notifications You must be signed in to change notification settings

dtuit/chrome-storage-largeSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.


About

Wraps chrome.storage.sync, facilitates storage of objects larger than allowed by QUOTA_BYTES_PER_ITEM.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published