As far as I can tell, `curly, multi-line, consistent` does everything I
want; there's no reason to keep around a validate-conditionals rule.
Which is probably good, since eslint is deprecating the API for this,
anyway. The nice thing about not relying on deprecated APIs is that now
you can lint PS with `eslint` rather than needing to memorize
command-line switches.
Permessage-deflate is an extensIon that compresses websocket messages with zlib.
SockJS already supports it (indirectly) and the client's load balancer already
inserts the header in the opening handshake when making a WebSocket connection.
Config.wsdeflate makes this optional and allows tweaking the extension's resource
usage.
Modern versions of npm have made it less and less tenable to have
truly optional dependencies, so we'll just bite the bullet and let
people have slightly slower installs in exchange for not having to
deal with npm weirdness.
The new FS module is an abstraction layer over the built-in fs module.
The main reason it exists is because I need an abstraction layer I can
disable writing from. But that'll be in another commit.
Currently, mine is better because:
- paths are always relative to PS's base directory
- Promises (seriously wtf Node Core what are you thinking)
- PS-style API: FS("foo.txt").write("bar") for easier argument order
- mkdirp
This also increases the minimum supported Node version from v6.0 to
v7.7, because we now use async/await. Sorry for the inconvenience!
This also drops the mock-fs-require-fix dependency
mock-fs-require-fix was always kind of a huge hack. It's no longer
necessary, with an FS API that does everything it used to.
This removes a lot of other hacks from test/main.js, which is nice.
`npm install` forces package.json into using the unicode accented-e in
"Pokemon" instead of the escaped format, so committing this prevents the
dirty tree that would otherwise happen every time someone installed
dependencies.
Config.ofe toggles whether or not to write heapdumps if sockets workers
run out of memory, since ofe is an optional dependency but is not
installed by default. nodemailer is now a nonDefaultDependency, and
will complain if it's not installed when Config.crashguardemail is
enabled.
We no longer use it.
Nondeterministic tests are annoying and fuzzers are only useful for
detecting crashes, memory leaks, etc. You can't use them to detect
behavior correctness because that's what your actual code does.
(In other words, fuzzers are useful, but not as part of a regression
test suite.)
- Mocha's new major version fixes the persistent
deprecation warnings on usage of every `npm` command.
- MockFS is locked to 3.10.0 due to an issue affecting
its sandbox capabilities.
https://github.com/tschaub/mock-fs/issues/145
eslint's ignore system first gathers a list of all files, then
decides which ones should be ignored. The "gather a list of all
files" runs out of memory when used on the main server with its
100 million log files, even though the log directory is ignored.
So now we're only passing the files we want linted to eslint.
Hopefully they can fixeslint/eslint#5679 so we can just
`eslint .` again
- Eslint@3 brings some advanced static path analysis to the table.
- Latest version of Mocha doesn`t really bring anything outstanding,
but the caret should cover the next version, which will fix the
current subdep deprecation warnings on `npm install`.
- Mock-FS update brings support for fs.access and fs.accessSync,
which are the Node.js` blessed APIs to replace fs.exists.