*Update dist
This commit is contained in:
parent
19d6940a7e
commit
bda0af49fa
|
@ -1,7 +1,17 @@
|
||||||
import type { DataFn } from "libskynet";
|
import { Client } from "@lumeweb/libkernel-universal";
|
||||||
export declare function refreshGatewayList(): Promise<any>;
|
interface AbortableGenerator {
|
||||||
export declare function fetchIpfs(hash: string, path: string | undefined, receiveUpdate: DataFn): Promise<any>;
|
abort: () => void;
|
||||||
export declare function statIpfs(hash: string, path?: string): Promise<any>;
|
iterable: AsyncGenerator<object>;
|
||||||
export declare function fetchIpns(hash: string, path: string | undefined, receiveUpdate: DataFn): Promise<any>;
|
}
|
||||||
export declare function statIpns(hash: string, path?: string): Promise<any>;
|
export declare class IPFSClient extends Client {
|
||||||
|
ready(): Promise<any>;
|
||||||
|
stat(cid: string): Promise<any>;
|
||||||
|
ls(cid: string): AbortableGenerator;
|
||||||
|
cat(cid: string): AbortableGenerator;
|
||||||
|
ipns(cid: string): Promise<string>;
|
||||||
|
activePeers(): Promise<number>;
|
||||||
|
private connectModuleGenerator;
|
||||||
|
}
|
||||||
|
export declare const createClient: (...args: any) => IPFSClient;
|
||||||
|
export {};
|
||||||
//# sourceMappingURL=index.d.ts.map
|
//# sourceMappingURL=index.d.ts.map
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAsBxC,wBAAsB,kBAAkB,iBAQvC;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,oBAAK,EACT,aAAa,EAAE,MAAM,gBAMtB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,gBAKrD;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,oBAAK,EACT,aAAa,EAAE,MAAM,gBAMtB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,gBAKrD"}
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,MAAM,8BAA8B,CAAC;AAG/D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,UAAW,SAAQ,MAAM;IACvB,KAAK;IAIL,IAAI,CAAC,GAAG,EAAE,MAAM;IAItB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAI9B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,OAAO,CAAC,sBAAsB;CAgC/B;AAED,eAAO,MAAM,YAAY,8BAGxB,CAAC"}
|
|
@ -1,66 +1,48 @@
|
||||||
import { ipnsPath, ipfsPath } from "is-ipfs";
|
import { Client, factory } from "@lumeweb/libkernel-universal";
|
||||||
const IPFS_MODULE = "AQDr2iGYEiMKIdb14w7dxwxFYBo3LaYc0mAuRKXsF2w9OQ";
|
import defer from "p-defer";
|
||||||
let callModule, connectModule;
|
export class IPFSClient extends Client {
|
||||||
async function loadLibs() {
|
async ready() {
|
||||||
if (callModule && connectModule) {
|
return this.callModuleReturn("ready");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (typeof window !== "undefined" && window?.document) {
|
async stat(cid) {
|
||||||
const pkg = await import("libkernel");
|
return this.callModuleReturn("stat");
|
||||||
callModule = pkg.callModule;
|
|
||||||
connectModule = pkg.connectModule;
|
|
||||||
}
|
}
|
||||||
else {
|
ls(cid) {
|
||||||
const pkg = await import("libkmodule");
|
return this.connectModuleGenerator("ls", { cid });
|
||||||
callModule = pkg.callModule;
|
}
|
||||||
connectModule = pkg.connectModule;
|
cat(cid) {
|
||||||
|
return this.connectModuleGenerator("cat", { cid });
|
||||||
|
}
|
||||||
|
async ipns(cid) {
|
||||||
|
return this.callModuleReturn("ipnsResolve");
|
||||||
|
}
|
||||||
|
async activePeers() {
|
||||||
|
return this.callModuleReturn("getActivePeers");
|
||||||
|
}
|
||||||
|
connectModuleGenerator(method, data) {
|
||||||
|
const pipe = defer();
|
||||||
|
let done = false;
|
||||||
|
const [update, result] = this.connectModule(method, data, (item) => {
|
||||||
|
pipe.resolve(item);
|
||||||
|
});
|
||||||
|
(async () => {
|
||||||
|
const ret = await result;
|
||||||
|
done = true;
|
||||||
|
this.handleError(ret);
|
||||||
|
})();
|
||||||
|
return {
|
||||||
|
abort() {
|
||||||
|
update();
|
||||||
|
},
|
||||||
|
// @ts-ignore
|
||||||
|
iterable: async function* () {
|
||||||
|
// @ts-ignore
|
||||||
|
const iterator = (await pipe.promise)[Symbol.asyncIterator]();
|
||||||
|
for await (const value of iterator) {
|
||||||
|
yield value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export async function refreshGatewayList() {
|
export const createClient = factory(IPFSClient, "_AkimjN5qo5cYklxdBNszsxh6VXgypNZVq4zk_BIS3s76A");
|
||||||
const [resp, err] = await doCall("refreshGatewayList");
|
|
||||||
if (err) {
|
|
||||||
throw new Error(err);
|
|
||||||
}
|
|
||||||
return resp;
|
|
||||||
}
|
|
||||||
export async function fetchIpfs(hash, path = "", receiveUpdate) {
|
|
||||||
if (!ipfsPath(`/ipfs/${hash}`)) {
|
|
||||||
throw new Error("Invalid hash");
|
|
||||||
}
|
|
||||||
return doFetch("fetchIpfs", { hash, path }, receiveUpdate);
|
|
||||||
}
|
|
||||||
export async function statIpfs(hash, path = "") {
|
|
||||||
if (!ipfsPath(`/ipfs/${hash}`)) {
|
|
||||||
throw new Error("Invalid hash");
|
|
||||||
}
|
|
||||||
return doFetch("statIpfs", { hash, path });
|
|
||||||
}
|
|
||||||
export async function fetchIpns(hash, path = "", receiveUpdate) {
|
|
||||||
if (!ipnsPath(`/ipns/{${hash}`)) {
|
|
||||||
throw new Error("Invalid hash");
|
|
||||||
}
|
|
||||||
return doFetch("fetchIpns", { hash, path }, receiveUpdate);
|
|
||||||
}
|
|
||||||
export async function statIpns(hash, path = "") {
|
|
||||||
if (!ipnsPath(`/ipns/{${hash}`)) {
|
|
||||||
throw new Error("Invalid hash");
|
|
||||||
}
|
|
||||||
return doFetch("statIpns", { hash, path });
|
|
||||||
}
|
|
||||||
async function doFetch(method, data, receiveUpdate) {
|
|
||||||
let [resp, err] = await doCall(method, data, receiveUpdate);
|
|
||||||
if (typeof err?.then === "function") {
|
|
||||||
[resp, err] = await err;
|
|
||||||
}
|
|
||||||
if (err) {
|
|
||||||
throw new Error(err);
|
|
||||||
}
|
|
||||||
return resp;
|
|
||||||
}
|
|
||||||
async function doCall(method, data, receiveUpdate) {
|
|
||||||
await loadLibs();
|
|
||||||
if (receiveUpdate) {
|
|
||||||
return connectModule(IPFS_MODULE, method, data, receiveUpdate);
|
|
||||||
}
|
|
||||||
return callModule(IPFS_MODULE, method, data);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue