@rebalworks/transfer-sdk
v0.1.2
Published
Browser file-transfer SDK for rebalTransfer
Maintainers
Readme
@rebalworks/transfer-sdk
Browser file-transfer SDK for rebalTransfer.
Small, typed, and UI-free. Bring your own interface and let the SDK handle session creation, chunk upload, progress events, retry, resume, and abort.
Install
npm install @rebalworks/transfer-sdkFeatures
| Feature | What it does |
| --- | --- |
| Chunk upload | Splits a File into chunks and uploads them through the rebalTransfer API. |
| Progress events | Emits upload speed, percentage, ETA, and completed chunk events. |
| Abort | Cancels in-flight requests and asks the server to clean up the session. |
| Retry | Retries transient failures with backoff. |
| Resume | Skips chunks already accepted by the server. |
| Storage profiles | Selects a backend profile such as local storage, S3, or Google Drive. |
| Worker mode | Uses browser workers when available for large-file processing. |
Quick Start
import { createTransferSession } from '@rebalworks/transfer-sdk';
const handle = createTransferSession({
file,
apiBase: 'https://transfer.example.com/api/v1/sessions',
storageProfile: 'google-drive-main',
});
handle.on('progress', (event) => {
console.log(`${event.percent.toFixed(1)}%`);
});
handle.on('chunk:done', (event) => {
console.log(`chunk ${event.partNumber}/${event.totalParts}`);
});
const session = await handle.done;
console.log(session.sessionId);Abort
const handle = createTransferSession({ file });
cancelButton.addEventListener('click', () => {
void handle.abort();
});Resume
const handle = createTransferSession({
file,
resumeSessionId: previousSessionId,
});Storage Profile
const handle = createTransferSession({
file,
storageProfile: 'google-drive-main',
});The SDK forwards the profile name to the server. Profile validation and storage routing are handled by rebalTransfer.
API
createTransferSession(options): TransferSessionHandle
listStorageProfiles(options): Promise<StorageProfile[]>CreateTransferSessionOptions
| Option | Type | Description |
| --- | --- | --- |
| file | File | File to upload. |
| apiBase | string | Session API endpoint. Defaults to /api/v1/sessions on the current origin. |
| authToken | string | Bearer token for protected APIs. |
| storageProfile | string | Server-side storage profile name. |
| chunkSize | number | Chunk size in bytes. |
| retries | number | Retry count for transient failures. |
| sha256 | string | Precomputed SHA-256 hex string. |
| resumeSessionId | string | Existing session id to resume. |
| workerPoolSize | number | Number of upload workers. Defaults to 1. |
| signal | AbortSignal | External abort signal. |
Package Contents
The npm package contains minified JavaScript, public TypeScript declarations, README, LICENSE, and package metadata only. It does not include source maps, test files, or original TypeScript sources.
License
Commercial/proprietary. See LICENSE.
