New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ogre-tools/injectable

Package Overview
Dependencies
Maintainers
2
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ogre-tools/injectable - npm Package Compare versions

Comparing version 5.0.0 to 5.0.1

9

CHANGELOG.md

@@ -6,2 +6,11 @@ # Change Log

### [5.0.1](https://github.com/ogre-works/ogre-tools/compare/v5.0.0...v5.0.1) (2022-02-16)
### Bug Fixes
* Fix typing of getting injectable for injection token ([6412b3e](https://github.com/ogre-works/ogre-tools/commit/6412b3e083b6c3db02167813628d8d0e9062b82c))
## [5.0.0](https://github.com/ogre-works/ogre-tools/compare/v4.1.0...v5.0.0) (2022-02-09)

@@ -8,0 +17,0 @@

61

ogre-tools-injectable.d.ts
/// <reference types="jest" />
declare module '@ogre-tools/injectable' {
type InferFromInjectable<T> = T extends Injectable<
unknown,
type InferFromInjectable<T> = T extends NormalInjectable<
infer TInstance,

@@ -23,7 +22,7 @@ infer TInstantiationParameter

export interface DiContainer extends DiContainerForInjection<false> {
purge: (injectableKey: Injectable<any, any, any>) => void;
purge: (injectableKey: NormalInjectable<any, any>) => void;
runSetups: () => Promise<void>;
override<TInjectable extends Injectable<unknown, unknown, unknown>>(
override<TInjectable extends NormalInjectable<unknown, unknown>>(
injectable: TInjectable,

@@ -38,3 +37,4 @@ instantiateStub: (

register(injectable: Injectable<any, any, any>): void;
register(injectable: NormalInjectable<any, any>): void;
register(injectable: InjectionTokenInjectable<any>): void;
preventSideEffects: () => void;

@@ -54,2 +54,38 @@ }

interface CommonInjectable {
id: string;
setup?: (di: DiContainerForSetup) => void | Promise<void>;
causesSideEffects?: boolean;
lifecycle?: ILifecycle;
}
interface InjectionTokenInjectable<
TInjectionToken extends InjectionToken<unknown, unknown>,
> extends CommonInjectable {
injectionToken: TInjectionToken;
instantiate: (
di: DiContainerForInstantiate,
instantiationParameter: InferFromToken<TInjectionToken>[1],
) => InferFromToken<TInjectionToken>[0];
}
interface NormalInjectable<TInstance, TInstantiationParameter>
extends CommonInjectable {
instantiate: (
di: DiContainerForInstantiate,
instantiationParameter: TInstantiationParameter,
) => TInstance;
}
export function getInjectable<
TInjectionToken extends InjectionToken<unknown, unknown>,
>(
options: InjectionTokenInjectable<TInjectionToken>,
): InjectionTokenInjectable<TInjectionToken>;
export function getInjectable<TInstance, TInstantiationParameter>(
options: NormalInjectable<TInstance, TInstantiationParameter>,
): NormalInjectable<TInstance, TInstantiationParameter>;
export function getInjectionToken<TInstance, TInstantiationParameter = void>({

@@ -77,3 +113,3 @@ id: string,

interface DiContainerForInjection<TReturnAsPromise extends boolean> {
inject<TInjectable extends Injectable<unknown, unknown, unknown>>(
inject<TInjectable extends NormalInjectable<unknown, unknown>>(
injectableKey: TInjectable,

@@ -113,14 +149,2 @@ ...instantiationParameter: TentativeTuple<

export function getInjectable<
TInjectionToken extends InjectionToken<TInstance, TInstantiationParameter>,
TInstance = TInjectionToken extends InjectionToken<any, any>
? InferFromToken<TInjectionToken>[0]
: unknown,
TInstantiationParameter = TInjectionToken extends InjectionToken<any, any>
? InferFromToken<TInjectionToken>[1]
: unknown,
>(
options: Injectable<TInjectionToken, TInstance, TInstantiationParameter>,
): Injectable<TInjectionToken, TInstance, TInstantiationParameter>;
export interface ILifecycle {

@@ -130,2 +154,3 @@ getInstanceKey: (di: DiContainer, param: unknown) => string | number;

// ASDs
export const lifecycleEnum: {

@@ -132,0 +157,0 @@ singleton: ILifecycle;

{
"name": "@ogre-tools/injectable",
"private": false,
"version": "5.0.0",
"version": "5.0.1",
"description": "A brutal dependency injection container",

@@ -19,3 +19,3 @@ "repository": {

"dependencies": {
"@ogre-tools/fp": "^5.0.0",
"@ogre-tools/fp": "^5.0.1",
"lodash": "^4.17.21"

@@ -26,3 +26,3 @@ },

},
"gitHead": "593e872fc518904cabde92410a21605ce1792b8f",
"gitHead": "5e4de86e2f77a9b9a159192959741bc308751027",
"bugs": {

@@ -29,0 +29,0 @@ "url": "https://github.com/ogre-works/ogre-tools/issues"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc