little-state-machine
Advanced tools
Comparing version 2.3.5 to 2.4.0-beta.1
@@ -5,3 +5,5 @@ import * as React from 'react'; | ||
// @flow | ||
let storageType = typeof window === 'undefined' ? { getItem: () => { }, setItem: () => { } } : window.sessionStorage; | ||
let storageType = typeof window === 'undefined' | ||
? { getItem: () => { }, setItem: () => { }, clear: () => { } } | ||
: window.sessionStorage; | ||
let get; | ||
@@ -63,8 +65,10 @@ let set; | ||
let debug; | ||
let copy; | ||
if (process.env.NODE_ENV !== 'production') { | ||
const cloneDeep = require('lodash.clonedeep'); | ||
copy = cloneDeep(get()); | ||
debug = storageType.getItem(STATE_MACHINE_DEBUG_NAME) === 'true'; | ||
if (debug) { | ||
console.log(`%c${key ? options.debugName[key] : options.debugName}`, 'color: #bada55'); | ||
console.log('├─before:', cloneDeep(get())); | ||
console.log('├─before:', copy); | ||
} | ||
@@ -79,3 +83,20 @@ } | ||
if (debug) { | ||
console.log('└─after:', get()); | ||
console.log('├─after:', get()); | ||
function difference(object, base) { | ||
const transform = require('lodash.transform'); | ||
const isEqual = require('lodash.isequal'); | ||
const isObject = require('lodash.isobject'); | ||
function changes(object, base) { | ||
return transform(object, function (result, value, key) { | ||
if (!isEqual(value, base[key])) { | ||
result[key] = | ||
isObject(value) && isObject(base[key]) | ||
? changes(value, base[key]) | ||
: value; | ||
} | ||
}); | ||
} | ||
return changes(object, base); | ||
} | ||
console.log('└─diff:', difference(copy, get())); | ||
} | ||
@@ -94,2 +115,6 @@ } | ||
}; | ||
// @ts-ignore | ||
window.LITTLE_STATE_MACHINE_RESET = () => { | ||
storageType.clear(); | ||
}; | ||
} | ||
@@ -96,0 +121,0 @@ if (callbacks && Object.keys(callbacks).length) { |
@@ -8,3 +8,5 @@ 'use strict'; | ||
// @flow | ||
let storageType = typeof window === 'undefined' ? { getItem: () => { }, setItem: () => { } } : window.sessionStorage; | ||
let storageType = typeof window === 'undefined' | ||
? { getItem: () => { }, setItem: () => { }, clear: () => { } } | ||
: window.sessionStorage; | ||
let get; | ||
@@ -66,8 +68,10 @@ let set; | ||
let debug; | ||
let copy; | ||
if (process.env.NODE_ENV !== 'production') { | ||
const cloneDeep = require('lodash.clonedeep'); | ||
copy = cloneDeep(get()); | ||
debug = storageType.getItem(STATE_MACHINE_DEBUG_NAME) === 'true'; | ||
if (debug) { | ||
console.log(`%c${key ? options.debugName[key] : options.debugName}`, 'color: #bada55'); | ||
console.log('├─before:', cloneDeep(get())); | ||
console.log('├─before:', copy); | ||
} | ||
@@ -82,3 +86,20 @@ } | ||
if (debug) { | ||
console.log('└─after:', get()); | ||
console.log('├─after:', get()); | ||
function difference(object, base) { | ||
const transform = require('lodash.transform'); | ||
const isEqual = require('lodash.isequal'); | ||
const isObject = require('lodash.isobject'); | ||
function changes(object, base) { | ||
return transform(object, function (result, value, key) { | ||
if (!isEqual(value, base[key])) { | ||
result[key] = | ||
isObject(value) && isObject(base[key]) | ||
? changes(value, base[key]) | ||
: value; | ||
} | ||
}); | ||
} | ||
return changes(object, base); | ||
} | ||
console.log('└─diff:', difference(copy, get())); | ||
} | ||
@@ -97,2 +118,6 @@ } | ||
}; | ||
// @ts-ignore | ||
window.LITTLE_STATE_MACHINE_RESET = () => { | ||
storageType.clear(); | ||
}; | ||
} | ||
@@ -99,0 +124,0 @@ if (callbacks && Object.keys(callbacks).length) { |
{ | ||
"name": "little-state-machine", | ||
"version": "2.3.5", | ||
"version": "2.4.0-beta.1", | ||
"main": "dist/index.js", | ||
@@ -50,4 +50,7 @@ "module": "dist/index.es.js", | ||
"dependencies": { | ||
"lodash.clonedeep": "^4.5.0" | ||
"lodash.clonedeep": "^4.5.0", | ||
"lodash.isequal": "^4.5.0", | ||
"lodash.isobject": "^3.0.2", | ||
"lodash.transform": "^4.6.0" | ||
} | ||
} |
@@ -55,2 +55,7 @@ <div align="center"><img src="https://github.com/bluebill1049/little-state-machine/blob/master/docs/logo.png" alt="React forme Logo - React hook form valiation" width="180px" /> | ||
<img width="500" src="https://github.com/bluebill1049/little-state-machine/blob/master/docs/devtool.png" /> | ||
##### 🔗 `window.STATE_MACHINE_RESET` | ||
This will reset the entire store. | ||
`window.LITTLE_STATE_MACHINE_RESET()` to reset the localStorage or sessionStorage | ||
@@ -57,0 +62,0 @@ ## Example |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
186458
101
363
118
6
2
+ Addedlodash.isequal@^4.5.0
+ Addedlodash.isobject@^3.0.2
+ Addedlodash.transform@^4.6.0
+ Addedlodash.isequal@4.5.0(transitive)
+ Addedlodash.isobject@3.0.2(transitive)
+ Addedlodash.transform@4.6.0(transitive)