npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ember-localstorage-adapter

v1.0.0

Published

Store your Ember application data in LocalStorage.

Downloads

281

Readme

Ember-localstorage-adapter

Build
Status

Store your ember application data in localStorage.

Compatible with Ember Data 1.13 and above.

NOTE: New versions of the localStorage adapter are no longer compatible with older versions of Ember Data. For older versions, checkout the pre-beta branch.

Usage

Include this addon in your app with ember install ember-localstorage-adapter and then like all adapters and serializers:

// app/serializers/application.js
import { LSSerializer } from 'ember-localstorage-adapter';

export default LSSerializer.extend();

// app/adapters/application.js
import LSAdapter from 'ember-localstorage-adapter';

export default LSAdapter.extend({
  namespace: 'yournamespace'
});

Local Storage Namespace

All of your application data lives on a single localStorage key, it defaults to DS.LSAdapter but if you supply a namespace option it will store it there:

import LSAdapter from 'ember-localstorage-adapter/adapters/ls-adapter';

export default LSAdapter.extend({
  namespace: 'my app'
});

Models

Whenever the adapter returns a record, it'll also return all relationships, so do not use {async: true} in your model definitions.

Namespace

If your model definition has a url property, the adapter will store the data on that namespace. URL is a weird term in this context, but it makes swapping out adapters simpler by not requiring additional properties on your models.

const List = DS.Model.extend({
  // ...
});
List.reopen({
  url: '/some/url'
});
export default List;

Quota Exceeded Handler

Browser's localStorage has limited space, if you try to commit application data and the browser is out of space, then the adapter will trigger the QUOTA_EXCEEDED_ERR event.

import DS from 'ember-data';
DS.Store.adapter.on('QUOTA_EXCEEDED_ERR', function(records){
  // do stuff
});

DS.Store.commit();

Local Storage Unavailable

When localStorage is not available (typically because the user has explicitly disabled it), the adapter will keep records in memory. When the adapter first discovers that this is the case, it will trigger a persistenceUnavailable event, which the application may use to take any necessary actions.

adapter.on('persistenceUnavailable', function() {
  // Maybe notify the user that their data won't live past the end of the current session
});

License & Copyright

Copyright (c) 2012 Ryan Florence MIT Style license. http://opensource.org/licenses/MIT

Running

  • ember server
  • Visit your app at http://localhost:4200.

Running Tests

  • npm test (Runs ember try:testall to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://www.ember-cli.com/.