Skip to content

masegraye/mf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MF

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 mf.core.channel()) - 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.