Monad and Reactive Programming for JavaScript, leveraging Q promises

npm install jonas
1 downloads in the last week
4 downloads in the last month

Build Status


Monad and Reactive programming for JavaScript, leveraging Q promises.


Jonas is what you get when you cross JS with monad.  Jonas is also the name (Greek form) of a reluctant prophet whose given task was to urge the people of a great metropolis to change their ways. There is a metaphor in there somewhere.

jonas aims to be an engineer's library — leveraging the power of select functional programming patterns for superior control flow in asynchronous and event-driven apps, from the comfort of a vanilla JavaScript API.

It's pre-alpha at the moment, stay tuned...


Write me...


Write me...


Write me...


You can install the latest release via npm:

npm install jonas

The installed package contains two JavaScript files: jonas.js, jonas.min.js. Both are suitable for use in various JavaScript environments.

Load jonas in your Node.js programs as you would any other module:

var jonas = require("jonas");

In a browser, you can load jonas with a script tag, as you would any other JavaScript library, though you will need to satifsy its dependency on Q:

<script src="q.js" type="text/javascript"></script>
<script src="jonas.js" type="text/javascript"></script>

You can also load it as an AMD module, e.g. with RequireJS, but you will need to ensure the Q module is available. See for example support/pages/amd-load.html.

Development and Testing

Write me...


You can report bugs and discuss features on the issues page, on Freenode in the ##jonas channel, or send tweets to @michaelsbradley.


This software is inspired by, builds on and borrows from existing works:


For license texts please refer to the licenses directory at the root of this distribution.

This software is Copyright (c) 2013 by Michael Bradley, Jr.

The use and distribution terms for this software are covered by the Eclipse Public License 1.0 which can be found in the file epl-v10.html at the root of this distribution. By using this software in any fashion, you are agreeing to be bound by the terms of this license. You must not remove this notice, or any other, from this software.

… and behold, a greater than Jonas is here.  — Matt 12:41
npm loves you