Update dependencies, build, and testing for Ink.
Review Request #14645 — Created Oct. 20, 2025 and updated — Latest diff uploaded
This change accomplishes several tasks towards unifying our JavaScript
build infrastructure and supported more modern node.js environments:
- Replace many specific dependencies with a new dependency on
@beanbag/js-buildkit
. - Eliminate unused or obsolete dependencies.
- Base
tsconfig.json
on our shared config. - Copy our customized
@types/backbone
into this source tree, rather
than referencing it fromnode_modules
. I'm working on upstreaming
these changes so we don't have to ship our own at all. - Ship types as both
index.d.ts
andindex.d.mts
. - Update to ESLint 9.
Plus a few changes relating to fixing unit tests:
- Use
@babel/register
for transpiling during jasmine testing rather
thants-node
. It seems like thets-node
one was broken on modern
node environments, and using babel instead keeps our unit tests
running in a much closer mode to how the code is built for packaging.
This required some massaging of our babel configuration to allow
slightly different plugin configurations between dev and test. - Import
MenuItemsRadioGroup
astype MenuItemsRadioGroup
in
menuItemModel.ts in order to prevent a circular dependency. - Use
this.constructor
for static member access insideMenuView
, so
unit tests and the class itself aren't looking at different versions
of static members.
- Did a build.
- Ran unit tests.
- Ran storybook.
- Used this is a workspace with other packages that depend on it.