Merge pull request #2689 from NoelDeMartin/MOBILE-3320
MOBILE-3320 types: Exclude any singleton propsmain
commit
e026f42ee8
|
@ -64,10 +64,17 @@ const OBJECT_PROTOTYPE = Object.getPrototypeOf(Object);
|
||||||
let singletonsInjector: Injector | null = null;
|
let singletonsInjector: Injector | null = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper to get service class methods.
|
* Helper to get service class properties that are methods.
|
||||||
*/
|
*/
|
||||||
type GetMethods<T> = {
|
type GetMethods<T> = {
|
||||||
[K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? K : never;
|
[K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? K : never
|
||||||
|
}[keyof T];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper to get service class properties that are not methods.
|
||||||
|
*/
|
||||||
|
type GetNonMethods<T> = {
|
||||||
|
[K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? never : K
|
||||||
}[keyof T];
|
}[keyof T];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +83,7 @@ type GetMethods<T> = {
|
||||||
* @see makeSingleton
|
* @see makeSingleton
|
||||||
*/
|
*/
|
||||||
export type CoreSingletonProxy<Service, Getters extends keyof Service = never> =
|
export type CoreSingletonProxy<Service, Getters extends keyof Service = never> =
|
||||||
Pick<Service, GetMethods<Service>> &
|
Pick<Service, Exclude<GetMethods<Service>, GetNonMethods<Service>>> &
|
||||||
Pick<Service, Getters> &
|
Pick<Service, Getters> &
|
||||||
{
|
{
|
||||||
instance: Service;
|
instance: Service;
|
||||||
|
|
Loading…
Reference in New Issue