UNPKG

@dark-engine/core

Version:

The lightweight and powerful UI rendering engine without dependencies and written in TypeScript (Browser, Node.js, Android, iOS, Windows, Linux, macOS)

21 lines (20 loc) 777 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.detectIsMemo = exports.memo = void 0; const component_1 = require('../component'); const $$memo = Symbol('memo'); const defaultShouldUpdate = (props, nextProps) => { for (const key in nextProps) { if (key !== 'slot' && nextProps[key] !== props[key]) return true; } return false; }; function memo(factory, shouldUpdate = defaultShouldUpdate) { const memoized = props => factory(props).inject(shouldUpdate, $$memo); memoized.displayName = factory.displayName; return memoized; } exports.memo = memo; const detectIsMemo = instance => (0, component_1.detectIsComponent)(instance) && instance.token === $$memo; exports.detectIsMemo = detectIsMemo; //# sourceMappingURL=memo.js.map