$ the-wire · showcase
Node's SQLite binds undefined to NULL, node-gyp reads the documented flag
By RepoJournal · Filed · About Node.js
Node.js SQLite now binds undefined to NULL, node-gyp accepts --msvs_version as documented, and the Docker image ships with Node.js 24.21.0.
In nodejs/node, the SQLite module changed how it handles undefined arguments. Passing `undefined` for a named parameter used to throw `ERR_INVALID_ARG_TYPE`; it now binds NULL, matching the behavior of omitting that parameter entirely. The PR also adds the documentation and remaining test coverage for the behavior [1]. Aside from that, the `sqlite` length-validation tests moved out of the reentry test file and into the input-validation suites where they belong [2].
The Web IDL machinery in core got two internal changes. [3] switches interface conversion to explicit brand predicates instead of prototype ancestry, and [4] flattens dictionary members at construction, skips member scans for nullish inputs without defaults, and defines own descriptor properties to avoid inherited setters. Both are refactors with no externally visible behavior change.
nodejs/node-gyp fixed a documented-but-broken option: `--msvs_version` had no effect because the internal option was declared as `msvs-version`, and nopt put the underscore form in a field nothing read, leaving the value in `argv.remain`. The PR aligns the code with the README's spelling, so the flag now works as documented [5].
Finally, the official Docker images now include Node.js 24.21.0, shipped via the update branch [6][7][8].
Action items
- → If you rely on SQLite's previous ERR_INVALID_ARG_TYPE for undefined parameters, adjust your handling before upgrading Node. nodejs/node [plan]
- → Update your node-gyp usage to pass --msvs_version (underscore) as documented; it now works. nodejs/node-gyp [monitor]
- → Pull the latest node Docker images to get Node.js 24.21.0. nodejs/docker-node [plan]
References
- [1] sqlite: bind undefined to NULL ↗ nodejs/node
- [2] test: move sqlite length validation out of the reentry test ↗ nodejs/node
- [3] lib: use Web IDL interface brand checks ↗ nodejs/node
- [4] lib: optimize internal Web IDL dictionaries ↗ nodejs/node
- [5] fix: accept --msvs_version as the README documents it ↗ nodejs/node-gyp
- [6] Merge pull request #2623 from nodejs/update-branch ↗ nodejs/docker-node
- [7] feat: Node.js 24.21.0 ↗ nodejs/docker-node
- [8] feat: Node.js 24.21.0 ↗ nodejs/docker-node