An Ember.js addon for managing and validating changes to objects with a Data Down, Actions Up (DDAU) approach.
ember-changeset is an Ember.js addon that provides a changeset abstraction for managing and validating changes to objects like Ember Data models, Ember Objects, or plain JavaScript objects. It ensures objects never enter an invalid state by only allowing valid changes to be set, making it ideal for form handling in Ember applications. The addon is designed to be unopinionated about validation libraries and integrates with existing solutions.
Ember.js developers building forms or handling user input in applications, particularly those following Data Down, Actions Up (DDAU) patterns and needing robust change management with validation. It is also suitable for teams using TypeScript or requiring strict type checking in templates.
Developers choose ember-changeset because it prevents invalid object states by validating changes before they are applied, unlike other libraries that validate after setting. It offers flexible validation integration, supports nested properties, and provides fine-grained control over changes with methods for execution, rollback, merging, and snapshots.
Ember.js flavored changesets, inspired by Ecto
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Only allows valid changes to be set, ensuring objects never enter invalid states, which is core to its philosophy and prevents data corruption.
Designed for Data Down, Actions Up patterns, avoiding implicit two-way bindings and promoting clean data flow in Ember applications.
Unopinionated about validation libraries, allowing use with custom validators or addons like ember-changeset-validations for tailored solutions.
Handles deeply nested setters and getters with template helpers like changeset-set and changeset-get, simplifying complex form management.
Includes Glint types and TypeScript support for strict type checking in templates, enhancing developer experience in modern Ember setups.
Requires developers to implement or integrate validation logic separately, as it lacks built-in validators, adding initial configuration overhead.
Offers a wide range of methods and properties (e.g., merge, snapshot, cast) that can be overwhelming for simple forms and steepen the learning curve.
Drops support for IE11 in v3.0.0 due to Proxy usage, limiting deployment options for legacy enterprise applications without polyfills.
The ValidatedChangeset API is labeled as experimental and subject to changes until 5.0, posing stability risks for production adoption.