UNPKG

@pando/git-remote-pando

Version:
103 lines (102 loc) 3.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const cids_1 = __importDefault(require("cids")); const ipfs_http_client_1 = __importDefault(require("ipfs-http-client")); const ipld_1 = __importDefault(require("ipld")); const ipld_git_1 = __importDefault(require("ipld-git")); // tslint:disable-next-line:no-submodule-imports const util_1 = require("ipld-git/src/util/util"); const url_parse_1 = __importDefault(require("url-parse")); class IPLDHelper { // OK constructor(helper) { const url = new url_parse_1.default(helper.config.ipfs.gateway); this.helper = helper; this._ipfs = ipfs_http_client_1.default({ host: url.hostname, port: url.port, protocol: url.protocol.slice(0, url.protocol.length - 1) }); this._ipld = new ipld_1.default({ blockService: this._ipfs.block, formats: [ipld_git_1.default], }); } // OK async deserialize(buffer) { return new Promise((resolve, reject) => { ipld_git_1.default.util.deserialize(buffer, (err, node) => { if (err) { reject(err); } else { resolve(node); } }); }); } // OK async serialize(node) { return new Promise((resolve, reject) => { ipld_git_1.default.util.serialize(node, async (err, buffer) => { if (err) { reject(err); } else { resolve(buffer); } }); }); } // OK async put(object) { return new Promise((resolve, reject) => { this._ipld.put(object, { format: 'git-raw' }, (err, cid) => { if (err) { reject(err); } else { resolve(cid); } }); }); } // OK async get(cid) { return new Promise((resolve, reject) => { this._ipld.get(new cids_1.default(cid), (err, result) => { if (err) { reject(err); } else { resolve(result.value); } }); }); } // OK async pin(cid) { return this._ipfs.pin.add(cid); } // OK async cid(object) { return new Promise((resolve, reject) => { this._ipld.put(object, { format: 'git-raw', onlyHash: true }, (err, cid) => { if (err) { reject(err); } else { resolve(cid.toBaseEncodedString()); } }); }); } // OK shaToCid(oid) { return new cids_1.default(util_1.shaToCid(Buffer.from(oid, 'hex'))).toBaseEncodedString(); } // OK cidToSha(cid) { return util_1.cidToSha(new cids_1.default(cid)).toString('hex'); } } exports.default = IPLDHelper;