immutablejs-record-memoize
Memoize methods or properties of any
ImmutableJS.Record
. Also works on any immutable object prototype.Install
yarn add immutablejs-record-memoize
Usage
WithImmutableJS.Record
:import memoize from 'immutablejs-record-memoize';
class ExampleRecord extends Record({}) {
noArguments() {
// ...
},
withArguments(a, b, c) {
// ...
}
}
memoize(ExampleRecord.prototype, ['noArguments', 'withArguments']);
// Use ExampleRecord as usual
For other object's prototypes:
import memoize from 'immutablejs-record-memoize';
function ExampleObject() {
constructor() {
// ...
}
}
ExampleObject.prototype = {
noArguments() {
// ...
},
withArguments(a, b, c) {
// ...
}
};
// Memoize methods with no arguments
memoize(ExampleObject.prototype, ['noArguments', 'withArguments']);
// Use ExampleObject as usual
Reference
memoize
Memoize the given properties of the given prototype object. The prototype is mutated.Arguments:
prototype: Object
properties: string[]
Returns:
void
Credits
Implementation is taken from Slate. https://github.com/ianstormtaylor/slate/blob/master/src/utils/memoize.jsThank you to: