Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
inversify-hooks
Advanced tools
This package is a wrapper of Inversify to simplify how inject your dependencies with property decorators in the components, made with TypeScript and compatible with Vue, React and other component libraries.
npm install --save inversify-props
container.addSingleton<IService1>(Service1);
container.addSingleton<IService2>(Service2);
export default class extends Component {
@Inject() service1: IService1;
@Inject() service2: IService2;
}
The idea is to add a simple wrapper that helps us to inject dependencies in components using property decorators
, we have also extend a little inversify
adding some methods that make our experience injecting dependencies easier.
You probably don't need this if:
Inversify needs an id to register our dependencies, this wrapper is going to do this for you 'magically' but if you want to uglify the code, keep reading the docs 🤓.
First of all create a class and an interface with the public methods of your class.
// iservice1.ts
export interface IService1 {
method1(): string;
}
// service.ts
@injectable()
export class Service1 implements IService1 {
method1(): string {
return 'method 1';
}
}
Note: Don't forget to decorate the class as
@injectable()
this will made your class candidate to be injectable inside other.
Now is time to register the service in the container, we usually do that in app.container.ts
or app.ts
.
container.addSingleton<IService1>(Service1);
As inversify accepts, we have configured three types of registration.
Once your dependencies are registered in the container, is simple as create a property with the name and the interface.
export default class extends Component {
@Inject() service1: IService1;
}
Note: Part of the magic is that the name of the property has to be the name of the interface in camelCase without the 'I', this is how we don't need to add the
id
.
If you want to use uglify to ofuscate the code, you will need to add this options to preserve the names of the clases (we need them to generate the ids magically
😉).
new UglifyJSPlugin({
uglifyOptions: {
keep_classnames: true,
keep_fnames: true,
}
});
@injectable
FAQs
Wrapper of inversify-props to inject your dependencies in the components, made with TypeScript using hooks.
The npm package inversify-hooks receives a total of 511 weekly downloads. As such, inversify-hooks popularity was classified as not popular.
We found that inversify-hooks demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.