Repository navigation
Conversation
|
@trim21 Thank you for submitting this PR! This is a live comment that I will keep updated. 1 package in this PRCode ReviewsBecause this is a widely-used package, a DT maintainer will need to review it before it can be merged. You can test the changes of this PR in the Playground. Status
Once every item on this list is checked, I'll ask you for permission to merge and publish the changes. InactiveThis PR has been inactive for 13 days — please try to get reviewers! Diagnostic Information: What the bot saw about this PR{
"type": "info",
"now": "-",
"pr_number": 75474,
"author": "trim21",
"headCommitOid": "df7eb79a6caaca8c05b8a301b24ca87727f42eb6",
"mergeBaseOid": "127fd9871abcf3ff2a66bdc92fc85c77e725a466",
"lastPushDate": "2026-09-01T03:41:14.000Z",
"lastActivityDate": "2026-09-14T17:26:00.000Z",
"hasMergeConflict": false,
"isFirstContribution": false,
"tooManyFiles": false,
"hugeChange": false,
"tooManyCommits": false,
"tooManyReviews": false,
"popularityLevel": "Critical",
"pkgInfo": [
{
"name": "node",
"version": "26.4",
"kind": "edit",
"files": [
{
"path": "types/node/v24/buffer.buffer.d.ts",
"kind": "definition"
},
{
"path": "types/node/v24/fs.d.ts",
"kind": "definition"
},
{
"path": "types/node/v24/fs/promises.d.ts",
"kind": "definition"
},
{
"path": "types/node/v24/test/fs.ts",
"kind": "test"
},
{
"path": "types/node/v24/ts5.6/buffer.buffer.d.ts",
"kind": "definition"
}
],
"owners": [
"Microsoft",
"jkomyno",
"r3nya",
"btoueg",
"touffy",
"mohsen1",
"galkin",
"eps1lon",
"WilcoBakker",
"chyzwar",
"trivikr",
"yoursunny",
"qwelias",
"ExE-Boss",
"peterblazejewicz",
"addaleax",
"victorperin",
"NodeJS",
"LinusU",
"wafuwafu13",
"mcollina",
"Semigradsky",
"Renegade334",
"anonrig"
],
"addedOwners": [],
"deletedOwners": [],
"popularityLevel": "Critical"
}
],
"reviews": [],
"mainBotCommentID": 5488562766,
"ciResult": "pass"
} |
|
🔔 @microsoft @jkomyno @r3nya @btoueg @Touffy @mohsen1 @galkin @eps1lon @WilcoBakker @chyzwar @trivikr @yoursunny @qwelias @ExE-Boss @peterblazejewicz @addaleax @victorperin @nodejs @LinusU @wafuwafu13 @mcollina @Semigradsky @Renegade334 @anonrig — please review this PR in the next few days. Be sure to explicitly select |
|
Re-ping @microsoft, @jkomyno, @r3nya, @btoueg, @Touffy, @mohsen1, @galkin, @eps1lon, @WilcoBakker, @chyzwar, @trivikr, @yoursunny, @qwelias, @ExE-Boss, @peterblazejewicz, @addaleax, @victorperin, @nodejs, @LinusU, @wafuwafu13, @mcollina, @Semigradsky, @Renegade334, @anonrig: This PR has been out for over a week, yet I haven't seen any reviews. Could someone please give it some attention? Thanks! |
|
Thanks for pointing out the outdated types. Awkwardly, when it comes to DT, we have to produce package updates as a whole, since merging individual features in isolation will pollute older @types/node versions whose corresponding Node.js version didn't have those features. Ordinarily we just cherry-pick these from the active branch, but once that started falling behind, the active LTS branch also started lagging as a result. #75574 is a full version rollup, which includes the features referenced here. |
|
thanks |
Package in scope
@types/node— thev24snapshot only (types/node/v24).types/node(v26) andtypes/node/v25already ship all of these APIs.What changes
Brings
types/node/v24'sfsandfs/promisesmodules up to date with the Node.js v24.20 API surface:fs.watch():ignoreoption (v24.14, nodejs/node#61433) — newWatchIgnorePredicatetype plusWatchOptions.ignore;fsPromises.watch()inherits it via_WatchOptions.fs.stat()/fs.promises.stat():throwIfNoEntryoption (v24.15, nodejs/node#61178).StatOptionsgains the field (previously only onStatSyncOptions), and the async overloads now returnStats | undefined/BigIntStats | undefinedwhen it is set tofalse.fs.statfs()family:frsizeonStatsFs/BigIntStatsFs(v24.16, nodejs/node#62277).fs.glob()/fs.globSync()/fsPromises.glob():followSymlinksoption (v24.16, nodejs/node#62695).fs.readFile()/fs.readFileSync()/fsPromises.readFile()/filehandle.readFile():bufferoption accepting a pre-allocated view or a(size) => bufferfactory (v24.19, nodejs/node#63634). ReturnsBufferView<T>, which required adding theBufferViewtype tobuffer.buffer.d.ts(including the TS 5.6 fallback).stat'ssignaloption is intentionally not typed: in v24.20 the implementation only exists on callbackfs.stat()while the docs also mention it onfilehandle.stat().types/nodecarries a TODO onStatOptionsto revisit this once upstream sorts the behavior out, and this PR mirrors that decision.Why v24 is missing these
types/node/v24was cut whiletypes/nodetracked Node 24.13 (types/node/v24/package.jsonis still24.13.9999). Every API above landed on the v24 line after that cut, and thevNN/snapshots don't pick up new APIs automatically.Tests
types/node/v24/test/fs.tscovers:ignoreshapes (glob string,RegExp, predicate, array) forfs.watch(), plus twofsPromises.watch()cases;throwIfNoEntryforfs.stat()andfs.promises.stat()(return-type widening for thefalsecase), with existingstatSync/lstatSyncexpectations kept;frsizeon bothStatsFsvariants;followSymlinksforfs.glob()/fs.globSync()/fsPromises.glob();bufferoption for all fourreadFilevariants (pre-allocatedUint8Array,SharedArrayBuffer-backed,Buffer, and factory function).Notes for reviewers
types/node/v24/package.jsonversion is intentionally left at24.13.9999: bumping that marker is what the periodicnode: v24.xPRs do, together with the full multi-module sync.types/node(v26), adjusted to the v24.20 API surface.pnpm run lint types/node/v24(dtslint, TS 5.6 – 6.0) anddprint fmt; leaving the authoritative run to CI.Context for the suggested changes:
throwIfNoEntryoption for fs.stat and fs.promises.stat nodejs/node#61178Please fill in this template.
pnpm test <package to test>.If changing an existing definition:
package.json. (intentionally not bumped; see notes above)