Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
This package has been deprecated.
Use @kjots/geheugen instead.
A memoisation toolkit.
npm install --save geheugen
import 'promise.prototype.finally';
import { memoise } from 'geheugen';
let memo = memoise({ factory: () => getAsyncValue() });
let promise = memo.resolve()
.then(asyncValue => { ... })
memo.reset();
require('babel-polyfill');
require('promise.prototype.finally');
var memoise = require('geheugen').memoise;
var memo = memoise({ factory: function () { return getAsyncValue(); } });
var promise = memo.resolve()
.then(function (asyncValue) { ... })
memo.reset();
<script src="babel-polyfill/dist/polyfill.js"></script>
<script src="promise.prototype.finally/finally.js"></script>
<script src="geheugen/dist/geheugen.js"></script>
<script>
var memo = geheugen.memoise({ factory: function () { return getAsyncValue(); } });
var promise = memo.resolve()
.then(function (asyncValue) { ... })
memo.reset();
</script>
Type: Class
Default: Promise
The promise implementation.
The promise implementation should at a minimum implement the following methods:
Promise.resolve()
Promise.all()
Note: The promise implementation must implement the .finally()
promise method. A polyfill for the ES6 Promise
API can be found at https://www.npmjs.com/package/promise.prototype.finally.
Type: Boolean
Default: true
The singleton flag.
Type: Array<Memo>
Default: []
The dependencies.
Type: Function
Default: (value) => {}
The set event handler.
The set event handler will be invoked when the set()
method is invoked.
Type: Function
Default: () => {}
The reset event handler.
The reset event handler will be invoked when the reset()
method is invoked.
Type: Function
Default: () => {}
The factory.
Type: Promise
The promise.
The value.
Resolve the memo.
Return a promise resolved with the value.
Return the promise.
Invoke the factory and return a promise for the returned value.
The factory will be invoked via .then()
of a promise resolved with the values of all of the dependencies.
Whilst the promise is pending it will be stored on the memo. When the promise is fulfilled the stored promise will be removed.
The returned value will be stored on the memo.
Return the value the the memo.
Update the value of the memo.
The set event handler will be invoked before the value is updated. If the set event handler throws an error the set operation will be aborted.
Any memo that has specified this memo as a dependency will be reset.
Remove the value from the memo.
The reset event handler will be invoked before the value is removed. If the reset event handler throws an error the reset operation will be aborted.
Any memo that has specified this memo as a dependency will also be reset.
Reset all memos that have specified this memo as a dependency.
Type: Class
The promise implementation.
Type: Boolean
The singleton flag.
Type: Array<Memo>
The dependencies.
Type: Function
The set event handler.
Type: Function
The reset event handler.
Type: Function
The factory.
Type: Promise
The promise.
The value.
Type: Array<Memo>
The dependants.
Any memo that has specified this memo as a dependency will be added to this array.
FAQs
A memoisation toolkit
We found that geheugen demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.