UNPKG

@1hive/connect-core

Version:

Access and interact with Aragon Organizations and their apps.

37 lines 1.36 kB
import { ErrorInvalid } from '../errors'; import { getApmInternalAppInfo, getAragonOsInternalAppInfo, hasAppInfo, } from './overrides/index'; export function parseMetadata(name, metadata) { try { return JSON.parse(metadata); } catch (error) { throw new ErrorInvalid(`Can’t parse ${name}: invalid JSON.`); } } export async function fetchMetadata(ipfs, fileName, contentUri) { var _a; const cid = (_a = contentUri.match(/ipfs:(.*)/)) === null || _a === void 0 ? void 0 : _a[1]; return cid ? ipfs.json(cid, fileName) : {}; } export async function resolveMetadata(ipfs, fileName, contentUri, metadata) { if (metadata) { return parseMetadata(fileName, metadata); } if (contentUri) { return fetchMetadata(ipfs, fileName, contentUri); } return {}; } export async function resolveManifest(ipfs, data) { return resolveMetadata(ipfs, 'manifest.json', data.contentUri, data.manifest); } export async function resolveArtifact(ipfs, data) { if (data.appId && hasAppInfo(data.appId, 'apm')) { return getApmInternalAppInfo(data.appId); } if (data.appId && hasAppInfo(data.appId, 'aragon')) { return getAragonOsInternalAppInfo(data.appId); } return resolveMetadata(ipfs, 'artifact.json', data.contentUri, data.artifact); } //# sourceMappingURL=metadata.js.map