Comparing version 0.0.1 to 0.0.2
@@ -12,2 +12,3 @@ // aa.js - async-await.js | ||
exports = module.exports = aa; | ||
})(); |
// thunkify.js | ||
(function () { | ||
'use strict'; | ||
function thunkify(fn) { | ||
// thunkify(fn) or | ||
// thunkify(ctx, fn) or | ||
// thunkify.call(ctx, fn) | ||
function thunkify(ctx, fn) { | ||
// fn | ||
if (typeof fn !== 'function') { | ||
fn = ctx; | ||
ctx = this; | ||
} | ||
// ctx, fn | ||
if (typeof fn !== 'function') { | ||
throw new TypeError('argument must be a function'); | ||
} | ||
return function () { | ||
var callback, results, called, context; | ||
var cb, results, called; | ||
arguments[arguments.length++] = function () { | ||
results = arguments; | ||
context = this; | ||
if (!callback || called) return; | ||
if (!results) results = arguments; | ||
if (!cb || called) return; | ||
called = true; | ||
callback.apply(context, results); | ||
cb.apply(ctx, results); | ||
}; | ||
fn.apply(this, arguments); | ||
fn.apply(ctx, arguments); | ||
return function (fn) { | ||
callback = fn; | ||
if (!cb) cb = fn; | ||
if (!results || called) return; | ||
called = true; | ||
callback.apply(context, results); | ||
cb.apply(ctx, results); | ||
}; | ||
@@ -28,1 +42,3 @@ }; | ||
exports = module.exports = thunkify; | ||
})(); |
{ | ||
"name": "aa", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "reserved", | ||
@@ -20,4 +20,4 @@ "main": "lib/aa.js", | ||
"devDependencies": { | ||
"co": "^3.0.5" | ||
"co": ">=3.0.5" | ||
} | ||
} |
7025
8
111