UNPKG

@codex-storage/sdk-js

Version:

Codex SDK to interact with the Codex decentralized storage network.

1 lines 4.39 kB
{"version":3,"sources":["../src/node/node.ts"],"names":[],"mappings":";;;;AAoBO,IAAM,YAAN,MAAgB;AAAA,EACZ,GAAA;AAAA,EACA,OAAkB,EAAC;AAAA,EAE5B,WAAA,CAAY,KAAa,OAA4B,EAAA;AACnD,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA;AAEX,IAAA,IAAI,mCAAS,IAAM,EAAA;AACjB,MAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,IAAA;AAAA;AACtB;AACF;AAAA;AAAA;AAAA,EAKA,OAAQ,CAAA,MAAA,EAAgB,KAAkB,GAAA,EAAgC,EAAA;AACxE,IAAM,MAAA,MAAA,GAAS,IAAI,eAAgB,EAAA;AAEnC,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,MAAO,MAAA,CAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAAA;AAG7B,IAAM,MAAA,GAAA,GACJ,IAAK,CAAA,GAAA,GAAM,GAAI,CAAA,MAAA,CAAO,SAAS,CAAY,SAAA,EAAA,MAAM,CAAM,CAAA,CAAA,GAAA,MAAA,CAAO,QAAS,EAAA;AAEzE,IAAO,OAAA,KAAA,CAAM,SAAS,GAAK,EAAA;AAAA,MACzB,MAAQ,EAAA,KAAA;AAAA,MACR,OAAS,EAAA,gBAAA,CAAiB,KAAM,CAAA,IAAA,CAAK,IAAI;AAAA,KAC1C,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKA,MAAM,GACJ,CAAA,IAAA,GAA4B,MACuB,EAAA;AACnD,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAI,OAAO,MAAS,GAAA,MAAA;AAE3C,IAAA,IAAI,SAAS,MAAQ,EAAA;AACnB,MAAO,OAAA,KAAA,CAAM,SAA+B,GAAK,EAAA;AAAA,QAC/C,MAAQ,EAAA,KAAA;AAAA,QACR,OAAS,EAAA;AAAA,UACP,GAAG,gBAAA,CAAiB,KAAM,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACnC,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAO,OAAA,KAAA,CAAM,SAAS,GAAK,EAAA;AAAA,MACzB,MAAQ,EAAA,KAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,GAAG,gBAAA,CAAiB,KAAM,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACnC,cAAgB,EAAA;AAAA;AAClB,KACD,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKA,MAAA,CACE,OAA+B,MAC0B,EAAA;AACzD,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAI,OAAO,MAAS,GAAA,cAAA;AAE3C,IAAA,IAAI,SAAS,MAAQ,EAAA;AACnB,MAAO,OAAA,KAAA,CAAM,SAAkC,GAAK,EAAA;AAAA,QAClD,MAAQ,EAAA,KAAA;AAAA,QACR,OAAS,EAAA;AAAA,UACP,GAAG,gBAAA,CAAiB,KAAM,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACnC,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAO,OAAA,KAAA,CAAM,SAAS,GAAK,EAAA;AAAA,MACzB,MAAQ,EAAA,KAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,GAAG,gBAAA,CAAiB,KAAM,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACnC,cAAgB,EAAA;AAAA;AAClB,KACD,CAAA;AAAA;AAEL","file":"chunk-HPUHQWSZ.mjs","sourcesContent":["import { Api } from \"../api/config\";\nimport {\n Fetch,\n FetchAuthBuilder,\n type FetchAuth,\n} from \"../fetch-safe/fetch-safe\";\nimport type { SafeValue } from \"../values/values\";\nimport type {\n CodexPeerId,\n CodexPeerIdContentType,\n CodexPeerIdJsonResponse,\n CodexSpr,\n CodexSprContentType,\n CodexSprJsonResponse,\n} from \"./types\";\n\ntype CodexNodeOptions = {\n auth?: FetchAuth;\n};\n\nexport class CodexNode {\n readonly url: string;\n readonly auth: FetchAuth = {};\n\n constructor(url: string, options?: CodexNodeOptions) {\n this.url = url;\n\n if (options?.auth) {\n this.auth = options.auth;\n }\n }\n\n /**\n * Connect to a peer\n */\n connect(peerId: string, addrs: string[] = []): Promise<SafeValue<string>> {\n const params = new URLSearchParams();\n\n for (const addr of addrs) {\n params.append(\"addrs\", addr);\n }\n\n const url =\n this.url + Api.config.prefix + `/connect/${peerId}?` + params.toString();\n\n return Fetch.safeText(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n\n /**\n * Get Node's SPR\n */\n async spr(\n type: CodexSprContentType = \"json\"\n ): Promise<SafeValue<CodexSpr<CodexSprContentType>>> {\n const url = this.url + Api.config.prefix + \"/spr\";\n\n if (type === \"json\") {\n return Fetch.safeJson<CodexSprJsonResponse>(url, {\n method: \"GET\",\n headers: {\n ...FetchAuthBuilder.build(this.auth),\n \"Content-Type\": \"application/json\",\n },\n });\n }\n\n return Fetch.safeText(url, {\n method: \"GET\",\n headers: {\n ...FetchAuthBuilder.build(this.auth),\n \"Content-Type\": \"text/plain\",\n },\n });\n }\n\n /**\n * Get Node's PeerID\n */\n peerId(\n type: CodexPeerIdContentType = \"json\"\n ): Promise<SafeValue<CodexPeerId<CodexPeerIdContentType>>> {\n const url = this.url + Api.config.prefix + \"/node/peerid\";\n\n if (type === \"json\") {\n return Fetch.safeJson<CodexPeerIdJsonResponse>(url, {\n method: \"GET\",\n headers: {\n ...FetchAuthBuilder.build(this.auth),\n \"Content-Type\": \"application/json\",\n },\n });\n }\n\n return Fetch.safeText(url, {\n method: \"GET\",\n headers: {\n ...FetchAuthBuilder.build(this.auth),\n \"Content-Type\": \"text/plain\",\n },\n });\n }\n}\n"]}