Skip to content

Instantly share code, notes, and snippets.

@OR13
Created January 6, 2022 01:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OR13/975d855ae0f0c968eab47d2e6b9d3de7 to your computer and use it in GitHub Desktop.
Save OR13/975d855ae0f0c968eab47d2e6b9d3de7 to your computer and use it in GitHub Desktop.
example document loader
import { contexts } from "./contexts";
import axios from "axios";
import * as ed25519 from "@transmute/did-key-ed25519";
import * as bls12381 from "@transmute/did-key-bls12381";
export const documentLoader = async (iri) => {
if (contexts[iri]) {
return {
documentUrl: iri,
document: contexts[iri],
};
}
if (iri.includes("did:web:")) {
let url = `https://did-web.web.app/api/v1/identifiers/${iri}`;
const resp = await axios.get(url);
return {
documentUrl: iri,
document: resp.data,
};
}
if (iri.startsWith("did:key:z6M")) {
const { didDocument } = await ed25519.driver.resolve(iri, {
accept: "application/did+ld+json",
});
return {
documentUrl: iri,
document: didDocument,
};
}
if (iri.startsWith("did:key:zUC")) {
const { didDocument } = await bls12381.driver.resolve(iri, {
accept: "application/did+ld+json",
});
return {
documentUrl: iri,
document: didDocument,
};
}
if (iri.startsWith("did:trustbloc")) {
const url = `https://resolver.sandbox.trustbloc.dev/1.0/identifiers/${iri}`;
const resp = await axios.get(url);
return {
documentUrl: iri,
document: resp.data.didDocument,
};
}
if (iri.startsWith("https://issuer.sandbox.trustbloc.dev/status/1")) {
const resp = await axios.get(iri);
return {
documentUrl: iri,
document: resp.data,
};
}
if (iri.includes("did:")) {
const url = `https://dev.uniresolver.io/1.0/identifiers/${iri}`;
const resp = await axios.get(url);
return {
documentUrl: iri,
document: resp.data.didDocument,
};
}
try {
const resp = await axios({
method: "get",
url: iri,
headers: {
// Authorization: `Bearer ${token}`,
accept: "application/json",
},
});
return {
documentUrl: iri,
document: resp.data,
};
} catch (e) {
console.error(e);
// error will be thrown
}
console.error("Unsupporteed iri " + iri);
throw new Error("Unsupporteed iri " + iri);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment