@1hive/connect-core
Version:
Access and interact with Aragon Organizations and their apps.
45 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveArtifact = exports.resolveManifest = exports.resolveMetadata = exports.fetchMetadata = exports.parseMetadata = void 0;
const errors_1 = require("../errors");
const index_1 = require("./overrides/index");
function parseMetadata(name, metadata) {
try {
return JSON.parse(metadata);
}
catch (error) {
throw new errors_1.ErrorInvalid(`Can’t parse ${name}: invalid JSON.`);
}
}
exports.parseMetadata = parseMetadata;
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) : {};
}
exports.fetchMetadata = fetchMetadata;
async function resolveMetadata(ipfs, fileName, contentUri, metadata) {
if (metadata) {
return parseMetadata(fileName, metadata);
}
if (contentUri) {
return fetchMetadata(ipfs, fileName, contentUri);
}
return {};
}
exports.resolveMetadata = resolveMetadata;
async function resolveManifest(ipfs, data) {
return resolveMetadata(ipfs, 'manifest.json', data.contentUri, data.manifest);
}
exports.resolveManifest = resolveManifest;
async function resolveArtifact(ipfs, data) {
if (data.appId && index_1.hasAppInfo(data.appId, 'apm')) {
return index_1.getApmInternalAppInfo(data.appId);
}
if (data.appId && index_1.hasAppInfo(data.appId, 'aragon')) {
return index_1.getAragonOsInternalAppInfo(data.appId);
}
return resolveMetadata(ipfs, 'artifact.json', data.contentUri, data.artifact);
}
exports.resolveArtifact = resolveArtifact;
//# sourceMappingURL=metadata.js.map