Skip to content

Commit 19671cf

Browse files
committed
Merge default{State,Config} with constructor options initial{State,Config}
- Previous code is inconsistent with jsdoc description: "Both initial state and initial configuration options are merged with defaults upon initialization." - Generic spread expressions for object literals are supported by TypeScript: microsoft/TypeScript#28234
1 parent 4453cdc commit 19671cf

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Diff for: packages/base-controller/src/BaseControllerV1.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ export class BaseControllerV1<C extends BaseConfig, S extends BaseState> {
7171
* @param state - Initial state to set on this controller.
7272
*/
7373
constructor(config: Partial<C> = {}, state: Partial<S> = {}) {
74+
this.initialState = { ...(state as S) };
75+
this.initialConfig = { ...(config as C) };
7476
}
7577

7678
/**
@@ -81,8 +83,8 @@ export class BaseControllerV1<C extends BaseConfig, S extends BaseState> {
8183
* @returns This controller instance.
8284
*/
8385
protected initialize() {
84-
this.internalState = this.defaultState;
85-
this.internalConfig = this.defaultConfig;
86+
this.internalState = { ...this.defaultState, ...this.internalState };
87+
this.internalConfig = { ...this.defaultConfig, ...this.internalConfig };
8688
this.configure(this.initialConfig);
8789
this.update(this.initialState);
8890
return this;

0 commit comments

Comments
 (0)