Use hoodie seamlessly with Ember.js
npm install -S ember-hoodie
// app/application/controller.js
import Ember from 'ember';
const {
Controller,
inject: { service }
} = Ember;
export default Controller.extend({
hoodieAccount: service('hoodie-account'),
actions: {
signIn(username, password) {
this.get('hoodieAccount').signIn({username, password});
},
signOut() {
this.get('hoodieAccount').signOut();
}
}
});
and in your application serializer
// app/serializers/application.js
import DS from 'ember-data';
export default DS.JSONSerializer.extend({
shouldSerializeHasMany: function() {
return true;
},
primaryKey: '_id' //hoodie generates _id
});
// app/services/store.js
import HoodieStore from 'ember-hoodie/services/store';
export default HoodieStore;
If you want ember server
to start the Hoodie Server for you, you have to configure
ENV.hoodie.server
.
// config/environment.js
var PouchDB = require('pouchdb');
if (environment === 'development') {
ENV.hoodie = {
client: {
url: 'http://localhost:4200'
},
server: {
PouchDB: PouchDB,
paths: {
public: 'dist'
}
}
}
}
The ENV.hoodie.server
property is the exact hoodie-server config that will be passed as hapi's register
options. So you can pass whatever options you need here. For example, to make hoodie act as a proxy to a couchdb, you can use:
ENV.hoodie = {
client: {
url: 'http://localhost:4200'
},
server: {
PouchDB: PouchDB.defaults({
prefix: 'http://localhost:5984',
auth: {
username: 'admin',
password: 'admin'
}
}),
port: 4201,
paths: {},
}
};
Now, you can just use the store as you are used to! Whabam! Please help me fill out these docs a little better.
git clone
this repositorynpm install
bower install