udic 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.d.ts +5 -5
  2. package/index.js +1 -1
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  declare const _t: unique symbol;
2
2
  declare const _d: unique symbol;
3
- type MergeUnion<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
3
+ type UnionToIntersect<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
4
4
  type UnwrapReturn<T> = T extends () => infer R ? R : T;
5
- type Prettify<T> = { [K in keyof T] : T[K] } & {};
5
+ type Evaluate<T> = { [K in keyof T] : T[K] } & {};
6
6
  type List<T> = [T, ...T[]];
7
7
  export type Dependency = (() => Service) | Compute;
8
- export type TDependency<T extends Dependency | Impl> = MergeUnion<UnwrapReturn<T>[typeof _d]>;
8
+ export type TDependency<T extends Dependency | Impl> = UnionToIntersect<UnwrapReturn<T>[typeof _d]>;
9
9
  export type TResult<T extends Dependency | Impl> = UnwrapReturn<T>[typeof _t];
10
10
  export interface Service<
11
11
  K extends string = any,
@@ -53,7 +53,7 @@ export declare const inject: <
53
53
  T,
54
54
  R,
55
55
  D extends Partial<T>
56
- >(compute: Compute<T, R>, d: D) => Compute<Prettify<Omit<T, keyof D>>, R>;
56
+ >(compute: Compute<T, R>, d: D) => Compute<Evaluate<Omit<T, keyof D>>, R>;
57
57
  /**
58
58
  * Create an implementation of the service that depends on other services
59
59
  * @param service
@@ -72,5 +72,5 @@ export declare const impl: <
72
72
  export declare const link: <
73
73
  const T extends List<Impl>,
74
74
  D extends TDependency<T[number]>
75
- >(impls: T, deps: D) => Prettify<D & TResult<T[number]>>;
75
+ >(impls: T, deps: D) => Evaluate<D & UnionToIntersect<TResult<T[number]>>>;
76
76
  export {};
package/index.js CHANGED
@@ -1 +1 @@
1
- let _t=Symbol();export let service=e=>e;let _=i=>(i[_t]=Symbol(),i);export let use=(i,o)=>_(a=>o(...i.map(i=>typeof i===`function`?a[i[_t]]??=i(a):a[i])));export let inject=(e,i)=>_(a=>e({...a,...i}));export let impl=(e,i)=>[e,i];export let link=(e,i)=>{i={...i};for(let a=0;a<e.length;a++)i[e[a][0]]=e[a][1](i);return i};
1
+ let _t=Symbol();export let service=e=>e;let _=i=>(i[_t]=Symbol(),i);export let use=(i,o)=>_(a=>o(...i.map(i=>typeof i==`function`?a[i[_t]]??=i(a):a[i])));export let inject=(e,i)=>_(a=>e({...a,...i}));export let impl=(e,i)=>[e,i];export let link=(e,i)=>{i={...i};for(let a=0;a<e.length;a++)i[e[a][0]]=e[a][1](i);return i};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "udic",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "A simple dependency injection library",
5
5
  "keywords": ["di"],
6
6
  "license": "MIT",