proxyequal
Version:
A proxy based usage tracking and comparison
28 lines (20 loc) • 586 B
JavaScript
import { weakMemoizeArray } from "./weakMemoize";
export var EDGE = 'EDGE';
var buildObjTrie = function buildObjTrie(lines) {
var root = {};
for (var i = 0; i < lines.length; ++i) {
var path = lines[i].split('.');
var node = root;
var lastIndex = path.length - 1;
for (var j = 1; j < lastIndex; ++j) {
var item = path[j];
if (!node[item] || node[item] === EDGE) {
node[item] = {};
}
node = node[item];
}
node[path[lastIndex]] = EDGE;
}
return root;
};
export var memoizedBuildTrie = weakMemoizeArray(buildObjTrie);