DEV Community

The Ember Times
The Ember Times

Posted on • Originally published at blog.emberjs.com

The Ember Times - Issue No. 134

πŸ‘‹ Emberistas! 🐹

This week: Polyfilled ember-data packages syntax for all Ember apps πŸ“¦, use Figma with Storybook to make your developer life easier 🎨, QUnit DOM announces v1.0 release πŸŽ‚, and check out the ember-changeset 3.0.0 release πŸŽ‰!


Back to the future with ember-data packages polyfill πŸ“¦πŸš€

The ember-data packages API allows you to import objects and methods from smaller packages in the ember-data module following guidelines similar to the ones established in the Ember Modules RFC#176. With real and resolvable package paths, many developers can directly benefit from them with improved code reference information in their IDE. The ember-data packages API is available since ember-data 3.11.

There's nothing like a new, shiny API that makes your developer life easier. Even better if you can already use that API in your application without any upgrading! Users of ember-data with version 3.10 and below get to benefit
from the new way of importing with the help of the ember-data packages polyfill!

The polyfill ensures that any instances of the Packages API import statements are transformed back to the legacy "DS" EmberData import syntax. You can opt-in to using the polyfill in your app, by upgrading your ember-cli-babel dependency to version 7.14 or higher for this new feature.

Wanna learn more about how to use the new packages import syntax for ember-data? Be sure to give the Ember 3.11 release post another read
for practical code examples on how to use it and pop by the #ember-data channel on the Ember Discord for more questions and discussions.


From Figma to Ember to Storybook…with two clicks 🎨

Thomas Gossmann (@gossi) has started a blog post series on Figma, Ember and Storybook. Part 1: Full Featured Themes in Figma has been published and will tell you all about how to organise your design in Figma.

Stay tuned for Part 2 on design tokens and Part 3 on documentation within the Ember Ecosystem. Follow @unistyler on Twitter to be notified when they are published.

You can find the design system and code on GitHub.


QUnit DOM celebrates v1.0 release! πŸŽ‚

QUnit DOM provides readable assertions for QUnit and has been shipped with Ember since v3.1. If you haven't tried QUnit DOM yet, we recommend checking out its API to see how you can simplify your tests.

Last week, QUnit DOM announced its v1.0 release to mark the project's stability. We extend our thanks to Tobias Bieniek (@Turbo87) and everyone who have helped with the project!

With version 1.0, you can use assertion chaining:

assert.dom('[data-test-input="Email"]')
  .isRequired()
  .hasAttribute('type', 'email')
  .hasValue('zoey@ember.js');

You can also try out a new assertion, hasProperty, to check for DOM properties. There can be subtle differences between hasAttribute (to check for HTML attributes) and hasProperty (for DOM properties):

// These two assertions are equivalent.
assert.dom('[data-test-input="I Agree"]')
  .hasAttribute('checked', '')
  .hasProperty('checked', true);

// These three assertions are equivalent.
assert.dom('[data-test-button="Delete"]')
  .hasClass('btn').hasClass('btn-red')
  .hasAttribute('class', 'btn btn-red')
  .hasProperty('className', 'btn btn-red');

To learn more about when you might use hasAttribute or hasProperty, please visit the tutorial by JavaScript.info.


ember-changeset 3.0.0 Release πŸŽ‰

The ember-changeset addon officially released version 3.0.0. The addon provides a Changeset class that represents a set of valid changes for any Object (Ember.Object, DS.Model, POJOs, etc). The idea is only the changeset's internal values are updated until we invoke the save method which would set and save the valid changes onto the provided object.

This release requires Ember 3.13 and above and the use of @tracked will help ember-changeset monitor and propagate changes to the UI layer. If your app is < 3.13 or you need to support IE11, then you can install the 2.0 series. Watch a free video intro presented by EmberScreencasts and use ember-changeset today!


Contributors' Corner πŸ‘

This week we'd like to thank @bobisjan, @chancancode, @xg-wang, @pzuraq, @efx, @rwwagner90, @jenweber, @lifeart, @chadhietala, @mansona and @pichfl for their contributions to Ember and related repositories! πŸ’–


Got a question? Ask Readers' Questions! πŸ€“

Office Hours Tomster

Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!

Submit your own short and sweet question under bit.ly/ask-ember-core. And don’t worry, there are no silly questions, we appreciate them all - promise! 🀞



#embertimes πŸ“°

Want to write for the Ember Times? Have a suggestion for next week's issue? Join us at #support-ember-times on the Ember Community Discord or ping us @embertimes on Twitter.

Keep on top of what's been going on in Emberland this week by subscribing to our e-mail newsletter! You can also find our posts on the Ember blog.


That's another wrap! ✨

Be kind,

Chris Ng, Anne-Greeth van Herwijnen, Isaac Lee, Jessica Jordan, Amy Lam and the Learning Team

Top comments (0)