corelink
Version:
Utility library for parsing CoRE Link Format
28 lines (24 loc) • 547 B
JavaScript
const add = function(a,b) {
const [oid,iid,rid] = b.split('/');
if (iid === undefined) {
a[oid] = null;
} else if (!a.hasOwnProperty(oid)) {
if (rid === undefined)
a[oid] = [iid];
else
a[oid] = { [iid] : [rid] };
} else if (Array.isArray(a[oid])) {
a[oid].push(iid);
} else if (!a[oid].hasOwnProperty(iid)) {
a[oid][iid] = [rid];
} else {
a[oid][iid].push(rid);
}
return a;
}
exports.parse = function(str) {
return str
.replace(/(<\/|>)+/g, '')
.split(',')
.reduce(add, {})
}