UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

46 lines (42 loc) • 1.6 kB
import { CredoError } from "../../../../error/CredoError.mjs"; import { isDid } from "../../../../utils/did.mjs"; import "../../../../utils/index.mjs"; import { DidResolverService } from "../../../dids/services/DidResolverService.mjs"; import "../../../dids/index.mjs"; import jsonld_default from "./jsonld.mjs"; import { DEFAULT_CONTEXTS } from "./contexts/defaultContexts.mjs"; import { getNativeDocumentLoader } from "./nativeDocumentLoader.mjs"; //#region src/modules/vc/data-integrity/libraries/documentLoader.ts function defaultDocumentLoader(agentContext) { const didResolver = agentContext.dependencyManager.resolve(DidResolverService); async function loader(url) { if (url in DEFAULT_CONTEXTS) return { contextUrl: null, documentUrl: url, document: DEFAULT_CONTEXTS[url] }; if (url.split("#")[0] in DEFAULT_CONTEXTS) return { contextUrl: null, documentUrl: url, document: DEFAULT_CONTEXTS[url] }; if (isDid(url)) { const result = await didResolver.resolve(agentContext, url); if (result.didResolutionMetadata.error || !result.didDocument) throw new CredoError(`Unable to resolve DID: ${url}`); return { contextUrl: null, documentUrl: url, document: await jsonld_default.frame(result.didDocument.toJSON(), { "@context": result.didDocument.context, "@embed": "@never", id: url }, { documentLoader: this }) }; } return await (await getNativeDocumentLoader()).apply(jsonld_default, [])(url); } return loader.bind(loader); } //#endregion export { defaultDocumentLoader }; //# sourceMappingURL=documentLoader.mjs.map