import handleDescriptor from './utils/handle-descriptor'; import isDescriptor from './utils/is-descriptor'; import extractValue from './utils/extract-value'; export default function computedDecorator(...params) { // determine if user called as @computed('blah', 'blah') or @computed if (isDescriptor(params[params.length - 1])) { return handleDescriptor(...arguments); } else { return function(/* target, key, desc */) { return handleDescriptor(...arguments, params); }; } } export function readOnly(target, name, desc) { return { writable: false, enumerable: desc.enumerable, configurable: desc.configurable, initializer: function() { var value = extractValue(desc); return value.readOnly(); } }; } import decoratorAlias from './decorator-alias'; export var on = decoratorAlias(Ember.on, 'Can not `on` without event names'); export var observes = decoratorAlias(Ember.observer, 'Can not `observe` without property names'); import macroAlias from './macro-alias'; export var alias = macroAlias(Ember.computed.alias); export var and = macroAlias(Ember.computed.and); export var bool = macroAlias(Ember.computed.bool); export var collect = macroAlias(Ember.computed.collect); export var empty = macroAlias(Ember.computed.empty); export var equal = macroAlias(Ember.computed.equal); export var filter = macroAlias(Ember.computed.filter); export var filterBy = macroAlias(Ember.computed.filterBy); export var gt = macroAlias(Ember.computed.gt); export var gte = macroAlias(Ember.computed.gte); export var lt = macroAlias(Ember.computed.lt); export var lte = macroAlias(Ember.computed.lte); export var map = macroAlias(Ember.computed.map); export var mapBy = macroAlias(Ember.computed.mapBy); export var match = macroAlias(Ember.computed.match); export var max = macroAlias(Ember.computed.max); export var min = macroAlias(Ember.computed.min); export var none = macroAlias(Ember.computed.none); export var not = macroAlias(Ember.computed.not); export var notEmpty = macroAlias(Ember.computed.notEmpty); export var oneWay = macroAlias(Ember.computed.oneWay); export var or = macroAlias(Ember.computed.or); export var readOnly = macroAlias(Ember.computed.readOnly); export var reads = macroAlias(Ember.computed.reads); export var setDiff = macroAlias(Ember.computed.setDiff); export var sort = macroAlias(Ember.computed.sort); export var sum = macroAlias(Ember.computed.sum); export var union = macroAlias(Ember.computed.union); export var uniq = macroAlias(Ember.computed.uniq);