Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Oct 17, 2024. It is now read-only.
/ injection Public archive

Injection is a powerful inversion of control container that is widely used in the midway framework and brings good user experience.

License

Notifications You must be signed in to change notification settings

midwayjs/injection

Repository files navigation

Injection

GitHub license GitHub tag Build Status Test Coverage Package Quality PRs Welcome

Injection is a powerful inversion of control container that is widely used in the midway framework and brings good user experience.

Installation

$ npm install injection reflect-metadata --save

Node.js >= 10.0.0 required.

Injection requires TypeScript >= 2.0 and the experimentalDecorators, emitDecoratorMetadata, types and lib compilation options in your tsconfig.json file.

{
 "compilerOptions": {
 "target": "ES2018",
 "module": "commonjs",
 "moduleResolution": "node",
 "experimentalDecorators": true,
 "emitDecoratorMetadata": true,
 "inlineSourceMap":true,
 "noImplicitThis": true,
 "noUnusedLocals": true,
 "stripInternal": true,
 "pretty": true,
 "declaration": true,
 "outDir": "dist",
 "lib": ["ES2018", "dom"]
 }
}

Getting Started

import {Container, provide, inject} from 'injection';
@provide('userModel')
class UserModel {
}
@provide('userService')
class UserService {
 
 @inject()
 private userModel;
 
 async getUser(uid) {
 // TODO
 return 'Alex';
 }
}
const container = new Container();
container.bind(UserService);
container.bind(UserModel);
async function getData() {
 const userService = await container.getAsync<UserService>('userService'); 
 const data = await userService.getUser(123);
 return data;
}
getData().then(console.log);
// Alex

Document: https://midwayjs.org/injection/guide.html

License

MIT

About

Injection is a powerful inversion of control container that is widely used in the midway framework and brings good user experience.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Languages

AltStyle によって変換されたページ (->オリジナル) /