Comparing version 2.1.2 to 2.2.0-betta.0
export declare type IInstanceInitializer<IContainer, N extends keyof IContainer> = (instance: IContainer[N], container: IContainer, name?: N) => void; | ||
export declare type VoidFn = () => void; | ||
export declare type IFactory<IContainer, N extends keyof IContainer> = (container: IContainer) => IContainer[N]; | ||
export declare type IFactoryTuple<IContainer, N extends keyof IContainer> = [ | ||
IFactory<IContainer, N>, | ||
IInstanceInitializer<IContainer, N> | ||
]; | ||
export declare type IFactoryTuple<IContainer, N extends keyof IContainer> = [IFactory<IContainer, N>, IInstanceInitializer<IContainer, N>]; | ||
export declare type IFactories<IContainer extends object> = { | ||
@@ -14,1 +11,15 @@ [name in keyof IContainer]: IFactory<IContainer, name> | IFactoryTuple<IContainer, name>; | ||
}; | ||
export declare type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? A : B; | ||
export declare type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ | ||
[Q in P]: T[P]; | ||
}, { | ||
[Q in P]: F; | ||
}, P>; | ||
}[keyof T]; | ||
export declare const expectStrictType: <expected>(value: expected) => void; | ||
declare type Item<token extends string | symbol, T> = { | ||
[p in token]: T; | ||
}; | ||
export declare type Services<tokens extends (string | symbol)[], Deps extends any[]> = tokens extends [] ? {} : tokens extends [any] ? Item<tokens[0], Deps[0]> : tokens extends [any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> : tokens extends [any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> : tokens extends [any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> : tokens extends [any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> : tokens extends [any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> : tokens extends [any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> : tokens extends [any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> : tokens extends [any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> : tokens extends [any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> & Item<tokens[19], Deps[19]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> & Item<tokens[19], Deps[19]> & Item<tokens[20], Deps[20]> : never; | ||
export {}; |
@@ -1,1 +0,3 @@ | ||
export {}; | ||
export const expectStrictType = (value) => { | ||
const newValue = true; | ||
}; |
@@ -1,9 +0,2 @@ | ||
import { IfEquals } from './type-test-utils'; | ||
declare type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ | ||
[Q in P]: T[P]; | ||
}, { | ||
[Q in P]: F; | ||
}, P>; | ||
}[keyof T]; | ||
import { KeysOfType } from '../types'; | ||
export declare type IMapping<IContainer extends object, T> = { | ||
@@ -13,2 +6,1 @@ [p in keyof T]?: KeysOfType<IContainer, T[p]>; | ||
export declare const assignProps: <IContainer extends object, N extends keyof IContainer>(mapping: IMapping<IContainer, IContainer[N]>) => (instance: IContainer[N], container: IContainer) => void; | ||
export {}; |
@@ -10,3 +10,3 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
}; | ||
@@ -13,0 +13,0 @@ Object.defineProperty(exports, "__esModule", { value: true }); |
export declare type IInstanceInitializer<IContainer, N extends keyof IContainer> = (instance: IContainer[N], container: IContainer, name?: N) => void; | ||
export declare type VoidFn = () => void; | ||
export declare type IFactory<IContainer, N extends keyof IContainer> = (container: IContainer) => IContainer[N]; | ||
export declare type IFactoryTuple<IContainer, N extends keyof IContainer> = [ | ||
IFactory<IContainer, N>, | ||
IInstanceInitializer<IContainer, N> | ||
]; | ||
export declare type IFactoryTuple<IContainer, N extends keyof IContainer> = [IFactory<IContainer, N>, IInstanceInitializer<IContainer, N>]; | ||
export declare type IFactories<IContainer extends object> = { | ||
@@ -14,1 +11,15 @@ [name in keyof IContainer]: IFactory<IContainer, name> | IFactoryTuple<IContainer, name>; | ||
}; | ||
export declare type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? A : B; | ||
export declare type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ | ||
[Q in P]: T[P]; | ||
}, { | ||
[Q in P]: F; | ||
}, P>; | ||
}[keyof T]; | ||
export declare const expectStrictType: <expected>(value: expected) => void; | ||
declare type Item<token extends string | symbol, T> = { | ||
[p in token]: T; | ||
}; | ||
export declare type Services<tokens extends (string | symbol)[], Deps extends any[]> = tokens extends [] ? {} : tokens extends [any] ? Item<tokens[0], Deps[0]> : tokens extends [any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> : tokens extends [any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> : tokens extends [any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> : tokens extends [any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> : tokens extends [any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> : tokens extends [any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> : tokens extends [any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> : tokens extends [any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> : tokens extends [any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> & Item<tokens[19], Deps[19]> : tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? Item<tokens[0], Deps[0]> & Item<tokens[1], Deps[1]> & Item<tokens[2], Deps[2]> & Item<tokens[3], Deps[3]> & Item<tokens[4], Deps[4]> & Item<tokens[5], Deps[5]> & Item<tokens[6], Deps[6]> & Item<tokens[7], Deps[7]> & Item<tokens[8], Deps[8]> & Item<tokens[9], Deps[9]> & Item<tokens[10], Deps[10]> & Item<tokens[11], Deps[11]> & Item<tokens[12], Deps[12]> & Item<tokens[13], Deps[13]> & Item<tokens[14], Deps[14]> & Item<tokens[15], Deps[15]> & Item<tokens[16], Deps[16]> & Item<tokens[17], Deps[17]> & Item<tokens[18], Deps[18]> & Item<tokens[19], Deps[19]> & Item<tokens[20], Deps[20]> : never; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.expectStrictType = void 0; | ||
exports.expectStrictType = function (value) { | ||
var newValue = true; | ||
}; |
@@ -1,9 +0,2 @@ | ||
import { IfEquals } from './type-test-utils'; | ||
declare type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ | ||
[Q in P]: T[P]; | ||
}, { | ||
[Q in P]: F; | ||
}, P>; | ||
}[keyof T]; | ||
import { KeysOfType } from '../types'; | ||
export declare type IMapping<IContainer extends object, T> = { | ||
@@ -13,2 +6,1 @@ [p in keyof T]?: KeysOfType<IContainer, T[p]>; | ||
export declare const assignProps: <IContainer extends object, N extends keyof IContainer>(mapping: IMapping<IContainer, IContainer[N]>) => (instance: IContainer[N], container: IContainer) => void; | ||
export {}; |
@@ -10,3 +10,3 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
}; | ||
@@ -13,0 +13,0 @@ Object.defineProperty(exports, "__esModule", { value: true }); |
{ | ||
"name": "true-di", | ||
"version": "2.1.2", | ||
"version": "2.2.0-betta.0", | ||
"description": "Framework Agnostic, Zero Dependency, Isomorphic & Minimalistic Dependency Injection Container for TypeScript and JavaScript projects", | ||
@@ -92,2 +92,3 @@ "main": "./lib/index.js", | ||
], | ||
"@typescript-eslint/indent": "off", | ||
"jest/no-disabled-tests": "warn", | ||
@@ -94,0 +95,0 @@ "jest/no-focused-tests": "error", |
295
src/types.ts
@@ -0,1 +1,2 @@ | ||
/* eslint-disable max-len */ | ||
export type IInstanceInitializer<IContainer, N extends keyof IContainer> = ( | ||
@@ -23,1 +24,295 @@ instance: IContainer[N], | ||
} | ||
export type IfEquals<X, Y, A=X, B=never> = | ||
(<T>() => T extends X ? 1 : 2) extends | ||
(<T>() => T extends Y ? 1 : 2) ? A : B; | ||
export type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ [Q in P]: T[P] }, { [Q in P]: F }, P> | ||
}[keyof T]; | ||
export const expectStrictType = <expected>(value: expected): void => { | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
const newValue: IfEquals<expected, typeof value, true> = true; | ||
}; | ||
type Item<token extends string | symbol, T> = { | ||
[p in token]: T | ||
} | ||
export type Services<tokens extends (string|symbol)[], Deps extends any[]> = | ||
tokens extends [] ? {} : | ||
tokens extends [any] ? | ||
& Item<tokens[0], Deps[0]> | ||
: | ||
tokens extends [any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
: | ||
tokens extends [any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
: | ||
tokens extends [any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
: | ||
tokens extends [any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
: | ||
tokens extends [any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
& Item<tokens[16], Deps[16]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
& Item<tokens[16], Deps[16]> | ||
& Item<tokens[17], Deps[17]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
& Item<tokens[16], Deps[16]> | ||
& Item<tokens[17], Deps[17]> | ||
& Item<tokens[18], Deps[18]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
& Item<tokens[16], Deps[16]> | ||
& Item<tokens[17], Deps[17]> | ||
& Item<tokens[18], Deps[18]> | ||
& Item<tokens[19], Deps[19]> | ||
: | ||
tokens extends [any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any] ? | ||
& Item<tokens[0], Deps[0]> | ||
& Item<tokens[1], Deps[1]> | ||
& Item<tokens[2], Deps[2]> | ||
& Item<tokens[3], Deps[3]> | ||
& Item<tokens[4], Deps[4]> | ||
& Item<tokens[5], Deps[5]> | ||
& Item<tokens[6], Deps[6]> | ||
& Item<tokens[7], Deps[7]> | ||
& Item<tokens[8], Deps[8]> | ||
& Item<tokens[9], Deps[9]> | ||
& Item<tokens[10], Deps[10]> | ||
& Item<tokens[11], Deps[11]> | ||
& Item<tokens[12], Deps[12]> | ||
& Item<tokens[13], Deps[13]> | ||
& Item<tokens[14], Deps[14]> | ||
& Item<tokens[15], Deps[15]> | ||
& Item<tokens[16], Deps[16]> | ||
& Item<tokens[17], Deps[17]> | ||
& Item<tokens[18], Deps[18]> | ||
& Item<tokens[19], Deps[19]> | ||
& Item<tokens[20], Deps[20]> | ||
: | ||
never |
@@ -0,8 +1,4 @@ | ||
import { KeysOfType } from '../types'; | ||
import allNames from './all-names'; | ||
import { IfEquals } from './type-test-utils'; | ||
type KeysOfType<T, F> = { | ||
[P in keyof T]: IfEquals<{ [Q in P]: T[P] }, { [Q in P]: F }, P> | ||
}[keyof T]; | ||
export type IMapping<IContainer extends object, T> = { | ||
@@ -9,0 +5,0 @@ [p in keyof T]?: KeysOfType<IContainer, T[p]> |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
94562
81
1752
1