index: use Object.create(null) for the proxies dict
index: throw a TypeError if no "uri" is passed in
index: extract the `types` array logic into a function