type-autofac
Version:
tsioc is AOP, Ioc container, via typescript decorator
51 lines (49 loc) • 2.81 kB
JavaScript
;
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./actions/index"));
__export(require("./decorators/index"));
__export(require("./joinpoints/index"));
__export(require("./access/index"));
__export(require("./Advisor"));
__export(require("./AdviceMatcher"));
__export(require("./isValideAspectTarget"));
var index_1 = require("./decorators/index");
var Advisor_1 = require("./Advisor");
var index_2 = require("../utils/index");
var index_3 = require("./actions/index");
var AdviceMatcher_1 = require("./AdviceMatcher");
var index_4 = require("../core/index");
var AopActionFactory_1 = require("./actions/AopActionFactory");
var types_1 = require("../types");
var index_5 = require("./joinpoints/index");
var index_6 = require("./access/index");
/**
* register aop for container.
*
* @export
* @param {IContainer} container
*/
function registerAops(container) {
container.register(index_5.Joinpoint);
// container.register(ProxyMethod);
// container.register(Advisor);
// container.register(AdviceMatcher);
container.registerSingleton(index_2.symbols.IProxyMethod, function () { return new index_6.ProxyMethod(container); });
container.registerSingleton(index_2.symbols.IAdvisor, function () { return new Advisor_1.Advisor(container); });
container.registerSingleton(index_2.symbols.IAdviceMatcher, function () { return new AdviceMatcher_1.AdviceMatcher(container); });
var lifeScope = container.get(index_2.symbols.LifeScope);
var factory = new AopActionFactory_1.AopActionFactory();
lifeScope.addAction(factory.create(index_3.AopActions.registAspect), index_4.DecoratorType.Class, types_1.IocState.design);
lifeScope.addAction(factory.create(index_3.AopActions.matchPointcut), index_4.DecoratorType.Class, types_1.IocState.runtime);
lifeScope.addAction(factory.create(index_3.AopActions.bindMethodPointcut), index_4.DecoratorType.Method);
// lifeScope.addAction(factory.create(AopActions.bindPropertyPointcut), DecoratorType.Property);
lifeScope.addAction(factory.create(index_3.AopActions.invokeBeforeConstructorAdvices), index_4.DecoratorType.Class, index_4.CoreActions.beforeConstructor);
lifeScope.addAction(factory.create(index_3.AopActions.exetndsInstance), index_4.DecoratorType.Class, index_4.CoreActions.afterConstructor);
lifeScope.addAction(factory.create(index_3.AopActions.invokeAfterConstructorAdvices), index_4.DecoratorType.Class, index_4.CoreActions.afterConstructor);
lifeScope.registerDecorator(index_1.Aspect, index_3.AopActions.registAspect, index_3.AopActions.exetndsInstance);
}
exports.registerAops = registerAops;
//# sourceMappingURL=../sourcemaps/aop/index.js.map