Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

22 Commits

Repository files navigation

Common

A utility module for both node.js and the browser.
It is available through npm:

npm install common

Or as minified js file for the browser:

<script src='common.min.js'></script>

This module among other things contains a fork of step that also provides error handling

common.step([function(next){// next is the last argument, except in the last handlerfs.readFile(__filename,'utf-8',next);},function(file){console.log(file);}],function(err){// any error received in a callback will be forwarded here});

It also contains a shortcut to the EventEmitter prototype and a compatible implementation of this for the browser.

varMyEmitter=common.emitter(function(){this.foo=42;});varme=newMyEmitter();me.emit('foo',me.foo);// emits 'foo',42

There is also a more general method for extending prototypes called extend:

// this prototype is the same as abovevarMyEmitter=common.extend(events.EventEmitter,function(){this.foo=42;});

If you want to use futures you can use the future function to create a future:

varfut=common.future();fut.get(function(val){console.log(val);});setTimeout(function(){fut.put(42);// results in the previous .get being called and all future .get's will be called synchroniously},1000)

To do string formatting you can use format:

// you can parse the arguments to a pattern one by onecommon.format('define {0} here','pattern');// returns 'define pattern here'// or as a map or arraycommon.format('define {foo} here',{foo:'pattern'});// same as above

There is a log method that just accepts the does the same as format except it prints out the result using console.log if available

To generate a simple weak symbols (often used when generating keys for a map) use gensym

common.gensym()// returns 's0'common.gensym()// returns 's1'

If you instead of a weak symbol need a strong one use uuid:

common.uuid();// returns a strong id, ex: ngDl6IdovME9JKvIxgED0FK1kzURxfZaCq48-0

Common can also encode integers into alphanumerical notation using encode:

common.encode(1000);// returns G8

To ensure that a method cannot be called more than once you can use the once function:

varfn=common.once(function(){console.log('hello');});fn();// prints hellofn();// does nothing

Besides the above common implements two of the utilities mentioned in The Good Parts, memoizer and curry.

About

a utility library for node.js and the browser

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages