const { memoizeWith, } = require('ramda'); const weakmapId_ = new WeakMap(); const weakmapId = o => { if (!weakmapId_.has(o)) { weakmapId_.set(o, String(Math.random())); } return weakmapId_.get(o); }; const memoize = memoizeWith(weakmapId); module.exports = memoize;