invertism

A dependency inversion utility

Invertism

A dependency inversion utility for JavaScript.

Use invertism for partial appliction of constructors and other functions, where arguments are injected from on a set of named services.

npm install invertism
invertism = require 'invertism'

services = {
    time () = '12:34'
    display (text) = "[#(text)]"
}

Clock (time, display) =
    this.time = time
    this.display = display

Clock.prototype.read () =
    this.display(this.time())
  
Bound Clock = invertism.bind(Clock, services)

clock = @new Bound Clock () // no arguments!
clock.read()                // '[12:34]'