@sphereon/did-resolver-ebsi
Version:
Sphereon did:ebsi resolver for Legal Entities.
27 lines (23 loc) • 910 B
text/typescript
import { DIDDocument, DIDResolutionOptions } from 'did-resolver'
import { fetch } from 'cross-fetch'
export const keyToDidDoc = async (did: string, contentType: string, options: DIDResolutionOptions): Promise<DIDDocument> => {
const uri = didURI(did, options)
console.log(uri)
const doc = (await fetch(uri).then((res) => res.json())) as DIDDocument
console.log(JSON.stringify(doc))
return doc
}
const didURI = (did: string, options: DIDResolutionOptions) => {
let registry = determineRegistry(options)
if (registry.endsWith('/')) {
registry = registry.substring(0, registry.length - 1)
}
return `${registry}/identifiers/${did}`
}
const determineRegistry = (options: DIDResolutionOptions): string => {
if (options.registry && typeof options.registry === 'string') {
return options.registry
}
return 'https://api-pilot.ebsi.eu/did-registry/v4'
}
export default { keyToDidDoc }