ember-daux

0.4.0 • Public • Published

ember-daux

Ember addon for integrating Daux

Installation

ember install ember-daux

Usage

Setup your models

Create your model at app/models/[model-name].js:

// app/models/user.js
import { Model } from 'daux';
 
export default class User extends Model {
  static get attributes() {
    return ['name'];
  }
 
  static get relationship() {
    return {
      country: {
        type: 'country',
        kind: 'belongsTo',
        inverse: null,
      },
      groups: {
        type: 'group',
        kind: 'hasMany',
        inverse: 'members',
      },
      posts: {
        type: 'post',
        kind: 'hasMany',
        inverse: 'author',
      },
    };
  }
 
  /**
   * Optional hook to deserialize a record
   */
  static deserialize(record) {
    const deserializedRecord = {};
 
    Object.keys(record).forEach((key) => {
      // Use name instead of display_name to match the model attributes
      if (key === 'display_name') {
        deserializedRecord['name'] = record[key];
      }
    });
 
    return deserializedRecord;
  }
}

Next, let's create a model curator that'll contain all the models we have:

// app/models/index.js
import EmberObject from '@ember/object';
 
import User from './user';
 
export default EmberObject.extend({
  model: {
    user: User
  }
});

Injecting the store service

import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
 
export default Route.extend({
  store: service('store'),
 
  beforeModel() {
    this.store.subscribe(() => this.refresh());
  },
 
  model() {
    return this.store.getAll('user', {
      fetch() {
        return fetch('example.com/api/users').then((response) => {
          return response.json();
        });
      },
    });
  }
});

Contributing

Installation

  • git clone <repository-url>
  • cd ember-daux
  • npm install

Linting

  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

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

License

This project is licensed under the MIT License.

Readme

Keywords

Package Sidebar

Install

npm i ember-daux

Weekly Downloads

0

Version

0.4.0

License

MIT

Unpacked Size

7.33 kB

Total Files

9

Last publish

Collaborators

  • rmmmp