0.1.3 • Published 12 years ago

aop v0.1.3

Weekly downloads
15
License
-
Repository
github
Last release
12 years ago

About

Simple AOP realization for async applications.

Installation

npm install aop

Example

var aop = require("aop");

var cache = {};

var someAsyncFunction = function(num, callback) {
	console.log("calculating");
	var result = num * 2;
	callback(null, result);
	cache[num] = result;
};

var cacheAspect = function(method, params) {
	var num = params[0];
	if (cache[num]) {
		var callback = params[params.length - 1];
		console.log("using cached value");
		callback(null, cache[num]);
	} else {
		method.apply(this, params);
	}
};

var changeAspect = function(method, params) {
	params[0]++;
	method.apply(this, params);
};

var formatAspect = function(method, params) {
	var callback = params[params.length - 1];
	var newCallback = function(error, result) {
		callback(error, result + "s");
	};
	params[params.length - 1] = newCallback;
	method.apply(this, params);
};

someAsyncFunction = aop.wrap(someAsyncFunction, someAsyncFunction, cacheAspect);
someAsyncFunction = aop.wrap(someAsyncFunction, someAsyncFunction, formatAspect);
someAsyncFunction = aop.wrap(someAsyncFunction, someAsyncFunction, changeAspect);

someAsyncFunction(2, function(error, result) {
	console.log(result);
});

someAsyncFunction(2, function(error, result) {
	console.log(result);
});
0.1.3

12 years ago

0.1.2

13 years ago

0.1.1

13 years ago

0.1.0

13 years ago