A comprehensive collection of composable computed macros for Ember.js applications.
Ember Awesome Macros is an Ember.js addon that provides a large collection of composable computed property macros. It solves the problem of writing complex reactive logic in Ember applications by offering reusable, nestable macros for arrays, booleans, numbers, strings, promises, and more. Developers can build sophisticated derived state from simple, declarative building blocks.
Ember.js developers building applications with complex reactive data flows, especially those who need to manage derived state across arrays, objects, and asynchronous operations.
It offers superior composability compared to standard Ember computed macros, allowing deep nesting and flexible argument types. The extensive library of macros reduces boilerplate and increases code clarity for common data transformation patterns.
A collection of Ember computed macros
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides over 100 macros across categories like arrays, booleans, promises, and strings, reducing boilerplate for common data transformations, as detailed in the README's comprehensive list.
Macros can be nested and combined, enabling complex reactive logic with clean, declarative code, as shown in examples like `conditional(and(not('value1'), 'value2'), ...)`.
Accepts property names, raw values, other macros, or the `raw` helper, allowing versatile usage without extra setup, demonstrated in the README's argument examples.
Includes macros like `promise.all` and `promise.hash` for handling asynchronous operations within computed properties, simplifying reactive promise chains.
Deeply nested macros can become hard to read and debug, resembling Lisp-like syntax, as the README jokingly admits with its introductory example.
Heavily dependent on Ember.js and its computed property system, offering no utility for modern reactive frameworks or Ember alternatives like Glimmer components.
Excessive nesting of macros may lead to unnecessary recomputations and performance degradation in data-heavy applications, though not explicitly warned in the README.