本文整理汇总了TypeScript中inversify.IKernel类的典型用法代码示例。如果您正苦于以下问题:TypeScript IKernel类的具体用法?TypeScript IKernel怎么用?TypeScript IKernel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IKernel类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
export default function(kernel: IKernel) {
//Configurations
kernel.bind<IRepositoryConfig>("IRepositoryConfig").to(Configurations).inSingletonScope();
kernel.bind<IServerConfig>("IServerConfig").to(Configurations).inSingletonScope();
//Repositories
kernel.bind<ITaskRepository>("ITaskRepository").to(TaskRepository).inSingletonScope();
};
示例2: describe
describe("Integration Tests:", () => {
let server: InversifyExpressServer;
let kernel: IKernel;
beforeEach((done) => {
// refresh container and kernel
RouteContainer.setInstance(undefined);
kernel = new Kernel();
done();
});
describe("Routing & Request Handling:", () => {
it("should add a router to routeContainer", (done) => {
@injectable()
@Controller("/")
class TestController { @Get("/") public getTest(req: express.Request, res: express.Response) { return "GET"; } }
let routes = RouteContainer.getInstance().getRoutes();
expect(routes.length).to.equal(1);
expect(routes[0].router).to.not.be.undefined;
expect(routes[0].path).to.equal("/");
done();
});
it("should work for each shortcut decorator", (done) => {
@injectable()
@Controller("/")
class TestController {
@Get("/") public getTest(req: express.Request, res: express.Response) { res.send("GET"); }
@Post("/") public postTest(req: express.Request, res: express.Response) { res.send("POST"); }
@Put("/") public putTest(req: express.Request, res: express.Response) { res.send("PUT"); }
@Patch("/") public patchTest(req: express.Request, res: express.Response) { res.send("PATCH"); }
@Head("/") public headTest(req: express.Request, res: express.Response) { res.send("HEAD"); }
@Delete("/") public deleteTest(req: express.Request, res: express.Response) { res.send("DELETE"); }
}
kernel.bind<TestController>("TestController").to(TestController);
server = new InversifyExpressServer(kernel);
let agent = request(server.build());
let deleteFn = () => { agent.delete("/").expect(200, "DELETE", done); };
let head = () => { agent.head("/").expect(200, "HEAD", deleteFn); };
let patch = () => { agent.patch("/").expect(200, "PATCH", head); };
let put = () => { agent.put("/").expect(200, "PUT", patch); };
let post = () => { agent.post("/").expect(200, "POST", put); };
let get = () => { agent.get("/").expect(200, "GET", post); };
get();
});
it("should work for more obscure HTTP methods using the Method decorator", (done) => {
@injectable()
@Controller("/")
class TestController {
@Method("propfind", "/") public getTest(req: express.Request, res: express.Response) { res.send("PROPFIND"); }
}
kernel.bind<TestController>("TestController").to(TestController);
server = new InversifyExpressServer(kernel);
request(server.build())
.propfind("/")
.expect(200, "PROPFIND", done);
});
it("should use returned values as response", (done) => {
let result = {"hello": "world"};
@injectable()
@Controller("/")
class TestController {
@Get("/") public getTest(req: express.Request, res: express.Response) { return result; }
}
kernel.bind<TestController>("TestController").to(TestController);
server = new InversifyExpressServer(kernel);
request(server.build())
.get("/")
.expect(200, JSON.stringify(result), done);
});
});
describe("Middleware:", () => {
let result: string;
let middleware: any = {
a: function (req: express.Request, res: express.Response, next: express.NextFunction) {
result += "a";
next();
},
b: function (req: express.Request, res: express.Response, next: express.NextFunction) {
result += "b";
next();
},
c: function (req: express.Request, res: express.Response, next: express.NextFunction) {
result += "c";
next();
//.........这里部分代码省略.........
示例3: getTest
it("should work for each shortcut decorator", (done) => {
@injectable()
@Controller("/")
class TestController {
@Get("/") public getTest(req: express.Request, res: express.Response) { res.send("GET"); }
@Post("/") public postTest(req: express.Request, res: express.Response) { res.send("POST"); }
@Put("/") public putTest(req: express.Request, res: express.Response) { res.send("PUT"); }
@Patch("/") public patchTest(req: express.Request, res: express.Response) { res.send("PATCH"); }
@Head("/") public headTest(req: express.Request, res: express.Response) { res.send("HEAD"); }
@Delete("/") public deleteTest(req: express.Request, res: express.Response) { res.send("DELETE"); }
}
kernel.bind<TestController>("TestController").to(TestController);
server = new InversifyExpressServer(kernel);
let agent = request(server.build());
let deleteFn = () => { agent.delete("/").expect(200, "DELETE", done); };
let head = () => { agent.head("/").expect(200, "HEAD", deleteFn); };
let patch = () => { agent.patch("/").expect(200, "PATCH", head); };
let put = () => { agent.put("/").expect(200, "PUT", patch); };
let post = () => { agent.post("/").expect(200, "POST", put); };
let get = () => { agent.get("/").expect(200, "GET", post); };
get();
});
示例4:
protected getService<T>(name: string): T {
return this.container.get<T>(name);
}