Skip to content

Commit

Permalink
fix(react): with requirements hoc
Browse files Browse the repository at this point in the history
  • Loading branch information
Igmat committed Sep 21, 2018
1 parent f3ca7ba commit 23bb448
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
10 changes: 7 additions & 3 deletions packages/react/src/Resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export class ReactResolver extends Resolver {
this.requirements.set(key, value);
});
}
resolveRequirements<I extends IRequirements = []>(requirements: I, classImpl: Constructable) {
resolveRequirements<R extends IRequirements, C extends object = any>(requirements: R, classImpl: C) {
let isRequirementsUpdated = false;
requirements
.forEach(requirement => {
Expand All @@ -66,6 +66,8 @@ export class ReactResolver extends Resolver {
isRequirementsUpdated = true;
});
if (isRequirementsUpdated) this.requirementsSubscribers.forEach(subscriber => subscriber(this.requirementsArray));

return super.resolveRequirements(requirements, classImpl);
}
subscribeForRequirements(subscriber: (requirements: HOC[]) => void) {
this.requirementsSubscribers.push(subscriber);
Expand All @@ -79,8 +81,10 @@ export class ReactResolver extends Resolver {
*/
export const resolver = new ReactResolver();

function resolveRequirements<I extends IRequirements = []>(requirements: I, classImpl: Constructable): void {
resolver.resolveRequirements(requirements, classImpl);
export function resolveRequirements<
R extends IRequirements = [],
C extends object = any>(requirements: R, classImpl: C) {
return resolver.resolveRequirements(requirements, classImpl);
}
function resolveFor<I extends IInjections = {}>(
instance: object,
Expand Down
2 changes: 1 addition & 1 deletion packages/react/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ export { MockRoot } from './MockRoot';
export { ApplicationRoot } from './ApplicationRoot';
export { ResolvableComponent } from './ResolvableComponent';
export { override as dependency } from 'metaf-resolvable';
export { overrideRequirement as requirement } from './Resolver';
export { overrideRequirement as requirement, resolveRequirements as withRequirements } from './Resolver';

0 comments on commit 23bb448

Please sign in to comment.