From 7b8fcc449b23909117dbab04d66789b5a42aba5b Mon Sep 17 00:00:00 2001 From: Arnaud Date: Wed, 26 Mar 2025 12:31:10 +0100 Subject: [PATCH] Refactoring --- README.md | 10 ++++----- examples/upload-browser/index.js | 4 ++-- examples/upload-node/index.js | 22 ++++++++++--------- src/browser.ts | 2 +- ...{browser-download.ts => browser-upload.ts} | 4 ++-- src/data/data.ts | 4 ++-- src/data/{node-download.ts => node-upload.ts} | 4 ++-- src/data/types.ts | 2 +- src/node.ts | 2 +- 9 files changed, 28 insertions(+), 26 deletions(-) rename src/data/{browser-download.ts => browser-upload.ts} (94%) rename src/data/{node-download.ts => node-upload.ts} (93%) diff --git a/README.md b/README.md index 700f42d..5d6a0c6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The SDK is currently under early development and the API can change at any time. ## Breaking changes -- Version 0.1.0 introduce download strategy to support browser and Node JS. +- Version 0.1.0 introduce upload strategy to support browser and Node JS. ## How to use @@ -278,7 +278,7 @@ Upload a file in a streaming manner ## Browser -- stategy [BrowserDownloadStategy](./src/data/browser-download.ts#L5) +- stategy [BrowserUploadStategy](./src/data/browser-upload.ts#L5) - returns [UploadResponse](./src/data/types.ts#L80) Example: @@ -292,7 +292,7 @@ const onProgress = (loaded, total) => { const metadata = { filename: "foo.xt", mimetype: "text/plain" }; -const stategy = new BrowserDownloadStategy(file, onProgress, metadata); +const stategy = new BrowserUploadStategy(file, onProgress, metadata); const uploadResponse = data.upload(stategy); @@ -308,13 +308,13 @@ console.info("CID is", res.data); ## Node -- stategy [NodeDownloadStategy](./src/data/node-download.ts#L8) +- stategy [NodeUploadStategy](./src/data/node-download.ts#L8) - returns [UploadResponse](./src/data/types.ts#L80) Example: ```js -const stategy = new NodeDownloadStategy("Hello World !"); +const stategy = new NodeUploadStategy("Hello World !"); const uploadResponse = data.upload(stategy); const res = await uploadResponse.result; diff --git a/examples/upload-browser/index.js b/examples/upload-browser/index.js index c31b1c0..13563e0 100644 --- a/examples/upload-browser/index.js +++ b/examples/upload-browser/index.js @@ -1,5 +1,5 @@ import { Codex } from "@codex-storage/sdk-js"; -import { BrowserDownloadStategy } from "@codex-storage/sdk-js/browser"; +import { BrowserUploadStategy } from "@codex-storage/sdk-js/browser"; async function main() { const codex = new Codex(process.env.CODEX_NODE_URL); @@ -19,7 +19,7 @@ async function main() { mimetype: "text/plain", }; - const stategy = new BrowserDownloadStategy(file, onProgress, metadata); + const stategy = new BrowserUploadStategy(file, onProgress, metadata); const uploadResponse = data.upload(stategy); diff --git a/examples/upload-node/index.js b/examples/upload-node/index.js index d1498be..a674da5 100644 --- a/examples/upload-node/index.js +++ b/examples/upload-node/index.js @@ -1,21 +1,23 @@ -const { Codex } = require("@codex-storage/sdk-js"); -const { NodeDownloadStategy } = require("@codex-storage/sdk-js/node"); +const { Codex } = require("@codex-storage/sdk-js"); +const { NodeUploadStategy } = require("@codex-storage/sdk-js/node"); async function main() { - const codex = new Codex(process.env.CODEX_NODE_URL || "http://localhost:8080"); - const data = codex.data + const codex = new Codex( + process.env.CODEX_NODE_URL || "http://localhost:8080" + ); + const data = codex.data; - const stategy = new NodeDownloadStategy("Hello World !") + const stategy = new NodeUploadStategy("Hello World !"); const uploadResponse = data.upload(stategy); - const res = await uploadResponse.result + const res = await uploadResponse.result; if (res.error) { - console.error(res.data) - return + console.error(res.data); + return; } - console.info("CID is", res.data) + console.info("CID is", res.data); } -main() \ No newline at end of file +main(); diff --git a/src/browser.ts b/src/browser.ts index 05899f8..69455b7 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -1 +1 @@ -export * from "./data/browser-download"; +export * from "./data/browser-upload"; diff --git a/src/data/browser-download.ts b/src/data/browser-upload.ts similarity index 94% rename from src/data/browser-download.ts rename to src/data/browser-upload.ts index 1492135..8ddf0c5 100644 --- a/src/data/browser-download.ts +++ b/src/data/browser-upload.ts @@ -1,8 +1,8 @@ import { CodexError } from "../errors/errors"; import type { SafeValue } from "../values/values"; -import type { DownloadStategy } from "./types"; +import type { UploadStategy } from "./types"; -export class BrowserDownloadStategy implements DownloadStategy { +export class BrowserUploadStategy implements UploadStategy { private readonly file: Document | XMLHttpRequestBodyInit; private readonly onProgress: | ((loaded: number, total: number) => void) diff --git a/src/data/data.ts b/src/data/data.ts index 0ae23b0..2d55e27 100644 --- a/src/data/data.ts +++ b/src/data/data.ts @@ -5,7 +5,7 @@ import type { CodexDataResponse, CodexManifest, CodexNodeSpace, - DownloadStategy, + UploadStategy, NetworkDownloadResponse, UploadResponse, } from "./types"; @@ -50,7 +50,7 @@ export class CodexData { * XMLHttpRequest is used instead of fetch for this case, to obtain progress information. * A callback onProgress can be passed to receive upload progress data information. */ - upload(stategy: DownloadStategy): UploadResponse { + upload(stategy: UploadStategy): UploadResponse { const url = this.url + Api.config.prefix + "/data"; return { diff --git a/src/data/node-download.ts b/src/data/node-upload.ts similarity index 93% rename from src/data/node-download.ts rename to src/data/node-upload.ts index 3b75c54..507b5e8 100644 --- a/src/data/node-download.ts +++ b/src/data/node-upload.ts @@ -3,9 +3,9 @@ import { CodexError } from "../errors/errors"; import type { SafeValue } from "../values/values"; import Undici from "undici"; import { type FormData } from "undici"; -import type { DownloadStategy } from "./types"; +import type { UploadStategy } from "./types"; -export class NodeDownloadStategy implements DownloadStategy { +export class NodeUploadStategy implements UploadStategy { private readonly body: | string | Buffer diff --git a/src/data/types.ts b/src/data/types.ts index 1b2b885..25d4e67 100644 --- a/src/data/types.ts +++ b/src/data/types.ts @@ -82,7 +82,7 @@ export type UploadResponse = { export type NetworkDownloadResponse = { cid: string; manifest: CodexManifest }; -export interface DownloadStategy { +export interface UploadStategy { download(url: string): Promise>; abort(): void; } diff --git a/src/node.ts b/src/node.ts index 0db5593..2bc2425 100644 --- a/src/node.ts +++ b/src/node.ts @@ -1 +1 @@ -export * from "./data/node-download"; +export * from "./data/node-upload";