Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

naan

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

naan

async and flexible currying for js

latest
Source
npmnpm
Version
1.3.11
Version published
Weekly downloads
109
-40.76%
Maintainers
1
Weekly downloads
 
Created
Source

naan.js

Naan.js is a library that provides a set of useful functions for creating partially applied functions. It was originally created to work with node.js but also works in the browser, so long as you have also included the async module.

The best way to understand what naan does is to see it in action:

Quick Examples


var statFoo = naan.curry(fs.stat, 'foo.txt');
statFoo(function(err, data) {
  // stat result from foo
});

var renameToFoo = naan.positionCurry(fs.rename, fs.rename, 'foo.txt', 1);
renameToFoo('bar.txt', function(err) {
  // 'bar.txt' has been renamed to 'foo.txt'
})

var readFooContents = naan.curry(fs.readFile, 'foo.txt');
var writeFooContents = naan.cook(fs.writeFile, readFooContents, 1);
writeFooContents('bar.txt', function(err) {
  // The contents of 'foo.txt' has been written to 'bar.txt'
})

// Naan works great with Async!
var readers = ['foo.txt', 'bar.txt', 'bob.txt'].map(function(file) {
  return naan.curry(fs.readFile)
});
async.parallel(readers, function(err, contents) {
  // contents == contents of foo.txt, bar.txt & bob.txt
});

These are a few of the basic uses of Naan. Each of the available functions are listed below.

Download

For node, just use npm:

npm install naan

In the Browser

Tested in IE9+. It currently uses some ES5 stuff which doesn't work in IE8, but this will be fixed shortly.

For info on how to test in the browser, see testing.

<script src="async.min.js"></script>
<script src="naan.min.js"></script>
<script>
  var createDiv = naan.curry(document.createElement, 'div');
</script>

Development: naan.js - 9.5kb Uncompressed

Production: naan.min.js - 3.0kb Minified

Documentation

Curries

Cooking

Return control

Group Curries

FAQs

Package last updated on 15 Aug 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts