Ghost/core/client/app/utils/bound-one-way.js
Kevin Ansfield 3d6856614f Use es6 across client and add ember-suave to enforce rules
no issue
- add ember-suave dependency
- upgrade grunt-jscs dependency
- add a new .jscsrc for the client's tests directory that extends from client's base .jscsrc
- separate client tests in Gruntfile jscs task so they pick up the test's .jscsrc
- standardize es6 usage across client
2015-11-30 10:41:01 +00:00

32 lines
840 B
JavaScript

import Ember from 'ember';
const {computed} = Ember;
/**
* Defines a property similarly to `Ember.computed.oneway`,
* save that while a `oneway` loses its binding upon being set,
* the `BoundOneWay` will continue to listen for upstream changes.
*
* This is an ideal tool for working with values inside of {{input}}
* elements.
* @param {*} upstream
* @param {function} transform a function to transform the **upstream** value.
*/
export default function (upstream, transform) {
if (typeof transform !== 'function') {
// default to the identity function
transform = function (value) {
return value;
};
}
return computed(upstream, {
get() {
return transform(this.get(upstream));
},
set(key, value) {
return value;
}
});
}