The Ember Times - Issue No. 210
π Emberistas! πΉ
News ποΈ, EmberData updates πΈ, Addons β¨, EmberEurope Q1 videos πͺπΊ, Webpack Subresource Integrity plugin for Embroider π¦, ember-serviceable-helper π, Generate Glint template registry ποΈ and Gember π«
ποΈ Noteworthy news
- GitHub now has full support for syntax highlighting the template tag component authoring format. (
.gjs
/.gts
). Thanks to everyone who contributed by converting their files π. - Ember's Discord server has now an amazing showcase channel. The goal of this place is to share amazing apps or addons build with Ember!
- EmberConf is happening in New York City π½ on the 31st of May. With this short timeline, the opened CFP will close on the 17th of April and talks will be accepted on a rolling basis. So do you want to share your Ember story from the Big π, send your CFP now!
πΈ EmberData updates
EmberData has made some exciting updates recently. A TypeScript Guide has been added to their in-repo guides, along with badges that show the latest published versions for each active channel to every README. They have also updated the Compatibility table and made it auto-update versions of associated EmberData channels.
In addition, EmberData has published mirror packages and types packages, which unlock a new migration path. This allows for two completely distinct versions of EmberData in your app at once, making it possible to incrementally migrate smaller regions of your app to new patterns independent from the state in the rest of your app. The mirror package equivalents can be installed alongside the regular packages, and a second store can be configured.
EmberData has also added types for older EmberData versions, allowing experimentation with the native types alphas in older versions of EmberData. The types will match the types for the version number they publish under, but for the most part, they will be more accurate for 4.7+ than the DT types, and nearly exact for 4.12.
Finally, EmberData has released a new v2 addon, @warp-drive/ember, containing various utils and components to make it simpler to work with promises and requests reactively. The <Request />
component will pull store
from a context if the library is present in your app.
If you are looking for a place to contribute, EmberData has opened a Polaris tracking issue, so check this out!
β¨ Addon updates
Check out the list of updated addons, and all they bring!
- ember-power-select (v8.1.0) is since v8.0.0 a v2 addon, brings accesibility and type improvements
- ember-bootstrap (v6.2.0) is starting with the effort of converting Ember Bootstrap to Typescript, so it's currently shipping some types, but they are neither complete nor considered stable. Check out the TypeScript tracking issue if you want to help with the effort.
- ember-popper-modifier (v4.1.0) migrates the addon to TypeScript and results in published Glint types.
- ember-mobile-menu (v5.1.1) is since v5.0.0 a v2 addon, with a plain CSS approach instead of SCSS. It also dropped support for the
mm.LinkTo
component. In v5.1.0 the scroll lock library is added inline because it's unmaintained and this also opens up fastboot possibilities. - ember-cli-deploy-s3 (v5.0.0-beta) is as mentioned a beta release. This version upgrades the
aws-sdk
to v3. In theory, it is not breaking, but in practice, there seem to be some credential setups that have issues. Please try it on your configuration and open issues or PRs so they can get it solid for everyone. - ember-native-class-codemode (v4.1.1) adds the option to run in
NO_TELEMETRY
mode, with the inherent risks. This codemod converts Ember objects to es6 native classes. - ember-cli-typescript (v5.3.0) drops support for Node 12 and loosens the version check against ember-cli-babel.
- ember-intl-analyzer (v4.6.0) now supports custom
t
wrappers and a new option to flag redundant whitelist entries. - ember-intl (v6.5.3) fixes a memory leak introduced in v6.3. The documentation now also shows how to use ember-intl in your v2 addons. In v6.5 the
intl
service was refactored, it removes unused code and makes what should be private, private. This could be breaking if you overwrote a method from the service.
The group of addons below has joined the evergrowing v2 addon ecosystem.
- ember-basic-dropdown (v8.0.0) is a very minimal dropdown. That means that it is agnostic about what it is going to contain. It is intended to be a building block for more complex components.
- ember-power-calendar (v1.0.0) is a customizable calendar component.
- ember-gesture-modifiers (v6.0.0) is an addon that provides gestures as modifiers.
πͺπΊ Ember Europe Q1
The first Ember Europe of 2024 is a fact. On the 21st of March, a group of Ember enthusiasts gathered remotely to hear the talks of Alex Matchneer (@matchy) about language tooling, Chris Manson's update on Embroider (and maybe something about Vite π€«), and Isaac Lee (@ijlee2) about CSS modules and internationalization. Join the Meetup Ember.js Europe group to get updates on the next edition!
π¦ Webpack Subresource Integrity plugin for Embroider
Jeldrik Hanschke (@jelhan) published the Webpack Subresource Integrity plugin for Embroider. The ember-cli-sri addon provided Subresource Integrity support for Ember applications. With the migrations to Embroider, which uses Webpack as a bundler, the ember-cli-sri addon does not work anymore. This webpack plugin will make that possible again.
π ember-serviceable-helper
Godfrey Chan (@chancancode) released an API for writing functions that need access to Ember services. This will help your functions to stay plain, even if they need to access some app-wide global state via services. Check out the documentation to learn more about this convenient helper.
ποΈ Generate Glint template registry
Bert De Block (@bertdeblock) released a new package to make a template registry for Glint easy.
You can run the package npx @bertdeblock/generate-template-registry@latest
and it will give you your registry. Be aware that if your app or addon has components, helpers, or modifiers with the same name, duplicate template registry entries will be generated, which will need to be fixed manually.
π« Gember
Bert De Block (@bertdeblock) released this new package called gember. This package allows you to generate components, helpers, modifiers, and services in v2 addons. It only supports .gjs
and .gts
files for components.
If you are wondering about the π« icon, gember is the Dutch word for ginger.
π Contributors' corner
This week we'd like to thank Sergey Astapov (@SergeAstapov), Kelly Selden (@kellyselden), Patrick Pircher (@patricklx), 'Dayo Olutayo (@bitxplora), Isaac Lee (@ijlee2), Jordan Hawker (@elwayman02), Chris Krycho (@chriskrycho), @NullVoxPopuli, Krystan HuffMenne (@gitKrystan), Sylvain Mina (@sly7-7), Vincent Hardouin (@VincentHardouin), Kirill Shaplyko (@Baltazore), Geordan Neukum (@geneukum), Ross Grayton (@grayt0r), Chris Manson (@mansona), Bryan Mishkin (@bmish), JΓ©rΓ΄me Mestres (@romgere), Katie Gengler (@kategengler), Andrey Fel (@andreyfel), Ignace Maes (@IgnaceMaes), Chris Thoburn (@runspired), Aaron Chambers (@achambers), Mehul Kiran Chaudhari (@MehulKChaudhari), Bert De Block (@bertdeblock), Jared Galanis (@jaredgalanis), Godfrey Chan (@chancancode), Anne-Greeth Schot-van Herwijnen (@MinThaMie), Yelin Zhang (@Yelinz), Leo Euclides (@leoeuclids), Jah Rock (@jahrock), Alexey Kulakov (@aklkv), Derek Wickern (@dwickern), Kyle D. (@kdagnan), Robbie Wagner (@RobbieTheWagner), Giles Thompson (@gilest), and Roman Shafigullin (@crypto) for their contributions to Ember and related repositories! π
π€ Connect with us
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! π€
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. See you in two weeks!
That's another wrap! β¨
Be kind,
The Learning Team