import Ember from 'ember'; import validatorLookup from './validator-lookup'; const { warn } = Ember; function createChangeset(obj, { validations }) { return new Proxy(obj, { set(target, property, value, receiver) { let validationResult = validatorLookup(validations, property)(property, value); if (validationResult.isValid) { target[property] = value; } else { warn(validationResult.message); } return true; } }); } export default class Changeset { constructor() { return createChangeset(...arguments); } }