Wacky Tricks We Use in Publishing TypeScript Types (for Ember.js) ↩︎

A walkthrough of the shenanigans we have to do to make TypeScript understand how to import @ember packages from ember-source.

Assumed audience: Software developers interested in TypeScript and corner cases; this discusses Ember in detail but the ideas here are more general.

On Wednesday, fellow LinkedIn-er Asa Kusuma set up some time with me to understand the work involved in publishing Embers TypeScript types. This isn’t an issue for most packages, but Ember’s situation is complicated: It lives on npm as the ember-source package, but its public API is to import from packages like @ember/utils.

Ember’s own CLI tooling handles that difference when building Ember apps or libraries, but TypeScript doesn’t know a thing about it, and no type-publishing tooling out there works for us — “out of the box” or with any amount of tweaking. (If that sounds like a problem, I agree, but that’s a topic for a different day!)

Since Asa and I were on a Zoom call anyway, he suggested we record it so this would be useful to others — an excellent idea! — so here it is:

Wacky Tricks We Use in Publishing TypeScript Types (for Ember.js)

Thoughts, comments, or questions? Discuss on Hacker News or lobste.rs, or send me an email!