Repository navigation
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
Add Carrot credits or activate Agent usage billing to use Autofix |
|
@coderabbitai review |
|
7b585fb to
05e4aaf
Compare
75da063 to
0555eea
Compare
0555eea to
7bbff81
Compare
|
Rebased on main 6bb33da (after #11). Review points, each checked on the current head 7bbff81: 1. 2. Dictionary test passing over a miscompile: fixed in 7bbff81. The skip set is gone. The two lines are a compiler gap: a missing key of
The gap is still there on 1.0.43 and 1.0.46. geastack/compiler#15 fixes both lines, and with it the test is 22/22. 3. 4. Cleanups: done in 5d61c70.
Verification on 7bbff81 with compiler 1.0.43: full sweep green, including |
… constructors in createServer
…se with node-vs-compiled parity tests
…quest did not send reads as undefined, with a dictionary-missing parity test
…, peer end and destroy, as the on-finished shim reads them
…t carries, now that an absent IncomingMessage header reads as undefined
…destroyed net.Socket's constructor leaves a handle `opening`, neither readable nor writable, and only its own connect path flips those; http.Socket called `super()` and never did, so a live request's `req.socket.writable` read false and on-finished treated every response as already finished. A Socket built for an accepted connection now reports what net.Socket reports once connected, and `destroy()` reverses it the way net.Socket's does. `serverResponseClass_` keeps its undefined default and now says why: the compiler refuses to carry the generic `ServerResponse` class as a value (`native-boundary:uncensused-class-object`). The `loadPeer` comment no longer refers to a module-load-time placeholder socket that does not exist.
…rough it The constructor's minimal parse accepted any text, while `URL.canParse` was a separate validator, so the two could disagree. The validation now runs in the constructor, which throws Node's `TypeError: Invalid URL` with `code`, `input` and `base`, and `canParse` is what Node defines it as: the constructor does not throw. The probe prints a constructor-outcome table over the same inputs as the canParse table.
`res.req` exists, and a `req.headers` value is a string or undefined rather than a plain string; the set-cookie deviation stays.
….0.47 or newer
`test-dictionary-missing.mjs` recorded two compiler gaps as known: a
missing key of a `{ [k: string]: string }` map read as `""` under
`typeof` and `??`, where Node reads `undefined`. Compiler 1.0.47
(geastack/compiler#15) observes the absence at both, and with it the
compiled probe matches Node on every one of its 22 lines. The known-gap
map and its bookkeeping go; the test compares each line and names the
three probe lines it exists for.
The parity holds from 1.0.47, so `@geastack/compiler` moves from
`^1.0.43` to `^1.0.47` in both the peer and the dev dependency, and the
lockfile follows.
7bbff81 to
579b980
Compare
|
Rebased on main 3d53505 (after #12 and the 1.0.21 release). Head is now 579b980. Compiler 1.0.47 (geastack/compiler#15) closes both gaps the dictionary test recorded: with it the compiled probe matches Node on all 22 lines ( Full sweep on 579b980 with 1.0.47: hono-hello build, test-hono, both fastify tests and all 31 scripts exit 0 ( |
What
@nestjs/platform-nodeneeds fromnode:http,node:netandURL:ServerOptions.IncomingMessage/ServerResponseconstructors,ServerResponse<Req>withreq,URL.canParsedefined through the constructor, absent headers reading asundefined, and socket readable/writable flags thaton-finishedreads, onnet.Socketand on the HTTP server's ownreq.socket.Verification on 579b980 (compiler 1.0.47):
HTTP_SERVER_OPTIONS_PARITY_OK:5,URL_CAN_PARSE_PARITY_OK:170,DICTIONARY_MISSING_PARITY_OK:22; full sweep green (hono-hello build, test-hono, fastify, 31 scripts).test-dictionary-missing.mjscompares the compiled probe with Node line for line. The two lines it used to record as a compiler gap (a missing key of a{ [k: string]: string }map undertypeofand??) match since compiler 1.0.47 (geastack/compiler#15), so the compiler requirement moves from^1.0.43to^1.0.47(peer, dev, lockfile): the floor the parity holds from.Related
Rebased on main 3d53505 (after #12 and the 1.0.21 release). #2 and #3 are merged. Branch
nest/baseis the base of #6 (Nest 1/4).