Skip to content

Commit

Permalink
Fix types
Browse files Browse the repository at this point in the history
  • Loading branch information
MajorLift committed Nov 26, 2024
1 parent e4eac8d commit e05ebba
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions packages/composable-controller/src/ComposableController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type {
StateConstraint,
StateConstraintV1,
StateMetadata,
StatePropertyMetadataConstraint,
StateMetadataConstraint,
ControllerStateChangeEvent,
LegacyControllerStateConstraint,
ControllerInstance,
Expand Down Expand Up @@ -131,7 +131,10 @@ export type ComposableControllerMessenger<
*/
export class ComposableController<
ComposableControllerState extends LegacyComposableControllerStateConstraint,
ChildControllers extends Record<string, ControllerInstance>,
ChildControllers extends Record<
keyof ComposableControllerState,
ControllerInstance
>,
> extends BaseController<
typeof controllerName,
ComposableControllerState,
Expand Down Expand Up @@ -160,20 +163,16 @@ export class ComposableController<
metadata: Object.keys(controllers).reduce<
StateMetadata<ComposableControllerState>
>((metadata, name) => {
// Type assertion is necessary to assign new properties to a generic type - ts(2862)
(metadata as Record<string, StatePropertyMetadataConstraint>)[name] = {
(metadata as StateMetadataConstraint)[name] = {
persist: true,
anonymous: true,
};
return metadata;
}, {} as never),
state: Object.values(controllers).reduce<ComposableControllerState>(
(state, controller) => {
// Type assertion is necessary to assign new properties to a generic type - ts(2862)
// TODO: Remove the 'object' member once `BaseControllerV2` migrations are completed for all controllers.
(state as LegacyComposableControllerStateConstraint)[
controller.name
] = controller.state;
(state as ComposableControllerStateConstraint)[controller.name] =
controller.state;
return state;
},
{} as never,
Expand Down Expand Up @@ -211,8 +210,7 @@ export class ComposableController<
`${name}:stateChange`,
(childState: LegacyControllerStateConstraint) => {
this.update((state) => {
(state as LegacyComposableControllerStateConstraint)[name] =
childState;
(state as ComposableControllerStateConstraint)[name] = childState;
});
},
);
Expand All @@ -224,7 +222,7 @@ export class ComposableController<
if (isBaseControllerV1(controller)) {
controller.subscribe((childState: StateConstraintV1) => {
this.update((state) => {
(state as Record<string, StateConstraintV1>)[name] = childState;
(state as ComposableControllerStateConstraint)[name] = childState;
});
});
}
Expand Down

0 comments on commit e05ebba

Please sign in to comment.