import Singleton from "../patterns/Singleton"; export abstract class ApplicationResolver { protected constructor() { resolverProvider.addResolver(this); } } class GlobalResolverProvider extends Singleton{ private resolvers:ApplicationResolver[] = []; public addResolver(resolver:ApplicationResolver){ this.resolvers.push(resolver); } public getResolver(args: new () => T):ApplicationResolver[]|undefined{ let ret:ApplicationResolver[] = []; this.resolvers.forEach(rs=>{ if (rs.constructor == args) { ret.push(rs); } }); return ret; } } export const resolverProvider:GlobalResolverProvider = GlobalResolverProvider.getInstance();