Skip to content

Developer Notes

Kelvin Jin edited this page Aug 7, 2017 · 2 revisions

Useful Links

Using http2

Current status (2017-Aug-04): http2, behind the flag --expose-http2, is expected to be released in Node 8.4 at the earliest.

When http2 is introduced in the codebase, one will need to use Node built from nodejs/node:master or nodejs/http2:initial-pr.

Until http2 is released in Node, for development purposes it might be useful to build Node with http2 exposed by default. To do so, simply search for bool config_expose_http2 = false; in src/node.cc and set the value to true.

Gulp Tasks

A lot of command-line interactions with the codebase should be done through gulp tasks. Here's a list of what can be done:

  • gulp compile transpiles src.
  • gulp test.compile transpiles src and test.
  • gulp test runs gulp test.compile, and then runs all tests.
  • gulp test.single --file $FILE transpiles src and $FILE, and runs only the transpiled $FILE. (See also: #5)
  • gulp clean deletes transpiled code.
  • gulp lint lints src and test.

ES6+ feature usage

We are not required to support to Node <6, the earliest Node version to which http2 may be back-ported. For this reason we should strongly consider using es6 as our target transpiliation language.

async/await should not be used in src/ due to performance considerations (as far as I know). It should be OK to use them in tests; Mocha supports Promises out-of-the-box.

Clone this wiki locally