fix(core): Fix type errors and typos in Smartstate class
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* autocreated commitinfo by @pushrocks/commitinfo
|
||||
* autocreated commitinfo by @push.rocks/commitinfo
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartstate',
|
||||
version: '2.0.17',
|
||||
description: 'a package that handles state in a good way'
|
||||
version: '2.0.18',
|
||||
description: 'A package for handling and managing state in applications.'
|
||||
}
|
||||
|
@ -6,26 +6,26 @@ export type TInitMode = 'soft' | 'mandatory' | 'force' | 'persistent';
|
||||
/**
|
||||
* Smartstate takes care of providing state
|
||||
*/
|
||||
export class Smartstate<StatePartNameType> {
|
||||
public statePartMap: { [key: string]: StatePart<StatePartNameType, any> } = {};
|
||||
export class Smartstate<StatePartNameType extends string> {
|
||||
public statePartMap: { [key in StatePartNameType]?: StatePart<StatePartNameType, any> } = {};
|
||||
|
||||
constructor() {}
|
||||
|
||||
/**
|
||||
* Allows getting and initializing a new statepart
|
||||
* initMode === 'soft' it will allow existing stateparts
|
||||
* initMode === 'mandatory' will fail if there is an exiting statepart
|
||||
* initMode === 'mandatory' will fail if there is an existing statepart
|
||||
* initMode === 'force' will overwrite any existing statepart
|
||||
* @param statePartNameArg
|
||||
* @param initialArg
|
||||
* @param initMode
|
||||
*/
|
||||
public async getStatePart<PayloadType>(
|
||||
statePartNameArg: string & StatePartNameType,
|
||||
statePartNameArg: StatePartNameType,
|
||||
initialArg?: PayloadType,
|
||||
initMode?: TInitMode
|
||||
): Promise<StatePart<StatePartNameType, PayloadType>> {
|
||||
if (this.statePartMap[statePartNameArg as any]) {
|
||||
if (this.statePartMap[statePartNameArg]) {
|
||||
if (initialArg && (!initMode || initMode !== 'soft')) {
|
||||
throw new Error(
|
||||
`${statePartNameArg} already exists, yet you try to set an initial state again`
|
||||
@ -43,7 +43,7 @@ export class Smartstate<StatePartNameType> {
|
||||
}
|
||||
|
||||
/**
|
||||
* creates a statepart
|
||||
* Creates a statepart
|
||||
* @param statePartName
|
||||
* @param initialPayloadArg
|
||||
*/
|
||||
@ -54,10 +54,12 @@ export class Smartstate<StatePartNameType> {
|
||||
): Promise<StatePart<StatePartNameType, PayloadType>> {
|
||||
const newState = new StatePart<StatePartNameType, PayloadType>(
|
||||
statePartName,
|
||||
initMode === 'persistent' ? {
|
||||
dbName: 'smartstate',
|
||||
storeName: statePartName as any,
|
||||
} : null
|
||||
initMode === 'persistent'
|
||||
? {
|
||||
dbName: 'smartstate',
|
||||
storeName: statePartName,
|
||||
}
|
||||
: null
|
||||
);
|
||||
await newState.init();
|
||||
const currentState = newState.getState();
|
||||
@ -65,7 +67,7 @@ export class Smartstate<StatePartNameType> {
|
||||
...initialPayloadArg,
|
||||
...currentState,
|
||||
});
|
||||
this.statePartMap[statePartName as any] = newState;
|
||||
this.statePartMap[statePartName] = newState;
|
||||
return newState;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user