TODO.md 1.8 KB

TODO

Here is a list of global items that I know about that may need to be done in the future:

  • NAMING: need to go back through and make sure that places referencing in the C++ code are represented here by referencing a var called "doc" or similar
  • Go through test cases and try to turn assert.equal() calls into assert.strictEqual() calls
  • Go through and modify classes to use advanced OO property settings properly (seal, freeze, etc.) where appropriate
  • Make sure that nobody is using private (underscored) variables that they shouldn't be ...might have broken encapsulation somewhere along the way...
  • Make sure that all of the pure virtuals (i.e., /virtual .* = 0;$/) are implemented as a proto with a throw new Error("NOT IMPLEMENTED BY INHERITOR") or similar
  • Go through uses of throw and make them actually use UserException vs SystemException (or whatever they're called)
  • Currently using the sift package to fake the MatchDocumentSource class but need to actually port the real code
  • Async support has been partially implemented but this needs to go deeper into the APIs; all layers need async capabilities (but not requirements), and layers that require it but recieve no callback should throw an Error()
  • Consider ditching PipelineD entirely here; might be more confusing than helpful and can still achieve the same results with ease
  • Setup a browserify build step to create a browser version of this or something
  • $group and $group.$addToSet both use JSON.stringify for key checks but really need a deepEqual (via Document.compare) or maybe use jsonplus (faster?) ... fix me now!
  • Consider moving async stuff out of here and up to a higher level package if possible just to keep things clean and as close to the MongoDB implementations as possible