@codex-storage/sdk-js
Version:
Codex SDK to interact with the Codex decentralized storage network.
1 lines • 6.49 kB
Source Map (JSON)
{"version":3,"sources":["../src/data/data.ts"],"names":[],"mappings":"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","file":"chunk-HDKK24O2.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 CodexDataResponse,\n UploadStategy,\n UploadResponse,\n CodexSpaceResponse,\n CodexNodeSpace,\n CodexDataNetworkResponse,\n CodexNetworkDownload,\n CodexManifest,\n CodexDataItems,\n} from \"./types\";\n\ntype CodexDataOptions = {\n auth?: FetchAuth;\n};\n\nexport class CodexData {\n readonly url: string;\n readonly auth: FetchAuth = {};\n\n constructor(url: string, options?: CodexDataOptions) {\n this.url = url;\n\n if (options?.auth) {\n this.auth = options.auth;\n }\n }\n\n /**\n * Lists manifest CIDs stored locally in node.\n * TODO: remove the faker data part when the api is ready\n */\n cids(): Promise<SafeValue<CodexDataItems>> {\n const url = this.url + Api.config.prefix + \"/data\";\n\n return Fetch.safeJson<CodexDataResponse>(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n }).then((data) => {\n if (data.error) {\n return data;\n }\n\n return { error: false, data: { content: data.data.content } };\n });\n }\n\n /**\n * Gets a summary of the storage space allocation of the node.\n */\n space(): Promise<SafeValue<CodexNodeSpace>> {\n const url = this.url + Api.config.prefix + \"/space\";\n\n return Fetch.safeJson<CodexSpaceResponse>(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n\n /**\n * Upload a file in a streaming manner.\n * Once completed, the file is stored in the node and can be retrieved by any node in the network using the returned CID.\n * XMLHttpRequest is used instead of fetch for this case, to obtain progress information.\n * A callback onProgress can be passed to receive upload progress data information.\n */\n upload(stategy: UploadStategy): UploadResponse {\n const url = this.url + Api.config.prefix + \"/data\";\n\n return {\n result: stategy.upload(url, { auth: this.auth }),\n abort: () => {\n stategy.abort();\n },\n };\n }\n\n /**\n * Download a file from the local node in a streaming manner.\n * If the file is not available locally, a 404 is returned.\n */\n async localDownload(cid: string): Promise<SafeValue<Response>> {\n const url = this.url + Api.config.prefix + \"/data/\" + cid;\n\n return Fetch.safe(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n\n /**\n * Download a file from the network to the local node if it's not available locally.\n * Note: Download is performed async. Call can return before download is completed.\n */\n async networkDownload(cid: string): Promise<SafeValue<CodexNetworkDownload>> {\n const url = this.url + Api.config.prefix + `/data/${cid}/network`;\n\n return Fetch.safeJson<CodexDataNetworkResponse>(url, {\n method: \"POST\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n\n /**\n * Download a file from the network in a streaming manner.\n * If the file is not available locally, it will be retrieved from other nodes in the network if able.\n */\n async networkDownloadStream(cid: string): Promise<SafeValue<Response>> {\n const url = this.url + Api.config.prefix + `/data/${cid}/network/stream`;\n\n return Fetch.safe(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n\n /**\n * Download only the dataset manifest from the network to the local node\n * if it's not available locally.\n */\n async fetchManifest(cid: string): Promise<SafeValue<CodexManifest>> {\n const url = this.url + Api.config.prefix + `/data/${cid}/network/manifest`;\n\n return Fetch.safeJson<CodexManifest>(url, {\n method: \"GET\",\n headers: FetchAuthBuilder.build(this.auth),\n });\n }\n}\n"]}