Skip to content

sukima/ember-lz-string

Repository files navigation

ember-lz-string

Ember wrapper for lz-string module, original here: http://pieroxy.net/blog/pages/lz-string/index.html

Usage

Use in your app with:

ember install ember-lz-string

Import via:

import LZString from 'lz-string';

QueryParams Mixin

In cases where you would like your 'queryParams' to use this (The Babel REPL does this) use this mixin and set the type to lz:

import Route from '@ember/routing/route';
import { LZQueryParamsMixin } from 'ember-lz-string';

export default Route.extend(LZQueryParamsMixin, {
  queryParams: {
    foo: { type: 'lz' }
  }
});

Auto serialization of Arrays/Objects

If you wish to also have all arrays/objects serialized via lz-string set the autoSerializeArray and autoSerializeObject (respectively) options in your app's config/environment.js:

ENV = {
  'ember-lz-string': {
    autoSerializeArray: true,
    autoSerializeObject: true
  }
}

These are both off by default. And remember if using the auto serializing then your default values must typeOf() to 'array' or 'object'. To do that use a constant:

const DEFAULT_ARRAY = [];
const DEFAULT_OBJECT = {};

export default Controller.extend({
  queryParams: ['foo', 'bar'],
  foo: DEFAULT_ARRAY,
  bar: DEFAULT_OBJECT,

  actions: {
    clearAll() {
      this.set('foo', DEFAULT_ARRAY);
      this.set('bar', DEFAULT_OBJECT);
    }
  }
});

Installation

  • git clone <repository-url> this repository
  • cd ember-lz-string
  • yarn install

Running

Running Tests

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

Building

  • ember build

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

About

Ember wrapper for lz-string, an LZ-based compression algorithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published