Compare commits

...

6 Commits

Author SHA1 Message Date
9413c5bcdc 1.0.19 2020-11-29 23:31:32 +00:00
1d5fb320f4 fix(core): update 2020-11-29 23:31:31 +00:00
69e905ad76 1.0.18 2020-11-29 23:28:45 +00:00
7b9ed9ee78 fix(core): update 2020-11-29 23:28:44 +00:00
f884807f33 1.0.17 2020-07-27 18:17:53 +00:00
f167800113 fix(core): update 2020-07-27 18:17:52 +00:00
3 changed files with 8 additions and 7 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartstate",
"version": "1.0.16",
"version": "1.0.19",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartstate",
"version": "1.0.16",
"version": "1.0.19",
"private": false,
"description": "a package that handles state in a good way",
"main": "dist_ts/index.js",

View File

@ -5,21 +5,22 @@ import { StatePart } from './smartstate.classes.statepart';
* Smartstate takes care of providing state
*/
export class Smartstate<StatePartNameType> {
public statePartMap: { [key: string]: StatePart<StatePartNameType, any> } = {};
public statePartMap: { [key: string]: StatePart<StatePartNameType, unknown> } = {};
constructor() {}
public getStatePart<PayloadType>(
statePartNameArg: StatePartNameType,
initialArg?: PayloadType
statePartNameArg: string & StatePartNameType,
initialArg?: PayloadType,
initMode?: 'soft' | 'mandatory'
): StatePart<StatePartNameType, PayloadType> {
if (this.statePartMap[statePartNameArg as any]) {
if (initialArg) {
if (initialArg && (!initMode || initMode !== 'soft')) {
throw new Error(
`${statePartNameArg} already exists, yet you try to set an initial state again`
);
}
return this.statePartMap[statePartNameArg as any];
return this.statePartMap[statePartNameArg] as StatePart<StatePartNameType, PayloadType>;
} else {
if (!initialArg) {
throw new Error(