Massively Fun JS Commons


MF is the Massively Fun "commons" library, for use across projects. Some things it gives you:

  1. MfTaskManager - an abstraction around setTimeout/process.nextTick. You may execute tasks:

    1. Soon, once
    2. Very soon, once
    3. Repeatedly
  2. MfNotificationCenter - simple sub/pub, loosely modeled after Cocoa's NotificationCenter

  3. MessageChannels (via - provides a single-pub, multi-sub channel.

  4. Various utility functions useful for all MF projects, such as:

    1. A component loader, for exposing internal modules as components of the greater NPM module.
    2. A Configuration object, which can be backed by an arbitrary configuration provider.
    3. Several latches for asynchronous conditionals.
  5. Various collection classes:

    1. Hashtable, which provides reasonably quick lookup. Allows you to use objects as keys, provided they implement hashCode() and equals().
    2. OrderedHash, modelled after after Ruby's Hash implementation, OrderedHash is basically a doubly linked list with hash table look up. This allows ordered iteration and constant time look up of elements by UUID.
    3. A priority queue.