@prefresh/core
Advanced tools
Comparing version 1.1.0 to 1.1.1
# @prefresh/core | ||
## 1.1.1 | ||
### Patch Changes | ||
- [`b8678d0`](https://github.com/JoviDeCroock/prefresh/commit/b8678d036cb02c7b3b9901b2057ba04a4f4c1041) [#206](https://github.com/JoviDeCroock/prefresh/pull/206) Thanks [@JoviDeCroock](https://github.com/JoviDeCroock)! - Improve cleanup detection | ||
## 1.1.0 | ||
@@ -4,0 +10,0 @@ |
{ | ||
"name": "@prefresh/core", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"main": "src/index.js", | ||
@@ -5,0 +5,0 @@ "exports": { |
@@ -11,1 +11,4 @@ export const VNODE_COMPONENT = '__c'; | ||
export const VNODE_CHILDREN = '__k'; | ||
export const HOOK_VALUE = '__'; | ||
export const HOOK_ARGS = '__H'; | ||
export const HOOK_CLEANUP = '__c'; |
@@ -16,3 +16,6 @@ // Options for Preact. | ||
VNODE_DOM, | ||
VNODE_CHILDREN | ||
VNODE_CHILDREN, | ||
HOOK_ARGS, | ||
HOOK_VALUE, | ||
HOOK_CLEANUP | ||
} from './constants'; | ||
@@ -26,4 +29,2 @@ import { computeKey } from './computeKey'; | ||
const forbiddenEffectFields = ['__', '__H']; | ||
function sign(type, key, forceReset, getCustomHooks, status) { | ||
@@ -104,12 +105,26 @@ if (type) { | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS] && | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS][EFFECTS_LIST] | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS][HOOKS_LIST] && | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS][HOOKS_LIST].length | ||
) { | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS][EFFECTS_LIST].forEach( | ||
effect => { | ||
const possibleCleanupKeys = Object.keys(effect).filter( | ||
key => !forbiddenEffectFields.includes(key) | ||
); | ||
possibleCleanupKeys.forEach(key => { | ||
if (typeof effect[key] == 'function') effect[key](); | ||
}); | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS][HOOKS_LIST].forEach( | ||
possibleEffect => { | ||
if ( | ||
possibleEffect[HOOK_CLEANUP] && | ||
typeof possibleEffect[HOOK_CLEANUP] === 'function' | ||
) { | ||
possibleEffect[HOOK_CLEANUP](); | ||
} else if ( | ||
possibleEffect[HOOK_ARGS] && | ||
possibleEffect[HOOK_VALUE] && | ||
Object.keys(possibleEffect).length === 3 | ||
) { | ||
const cleanupKey = Object.keys(possibleEffect).find( | ||
key => key !== HOOK_ARGS && key !== HOOK_VALUE | ||
); | ||
if ( | ||
cleanupKey && | ||
typeof possibleEffect[cleanupKey] == 'function' | ||
) | ||
possibleEffect[cleanupKey](); | ||
} | ||
} | ||
@@ -119,16 +134,2 @@ ); | ||
if (vnode[VNODE_COMPONENT].__h) { | ||
vnode[VNODE_COMPONENT].__h.forEach(possibleEffect => { | ||
if (typeof possibleEffect === 'object') { | ||
const possibleCleanupKeys = Object.keys(possibleEffect).filter( | ||
key => !forbiddenEffectFields.includes(key) | ||
); | ||
possibleCleanupKeys.forEach(key => { | ||
if (typeof possibleEffect[key] == 'function') | ||
possibleEffect[key](); | ||
}); | ||
} | ||
}); | ||
} | ||
vnode[VNODE_COMPONENT][COMPONENT_HOOKS] = { | ||
@@ -135,0 +136,0 @@ [HOOKS_LIST]: [], |
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
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
14743
263