Skip to main content

@rtorcato/cf-common

Interfaces

R2Store

Defined in: index.ts:13

A typed view over a single R2Bucket binding. Raw object methods pass straight through; the *JSON helpers (de)serialize and set the content type.

Note: presigned URLs are intentionally not here — they require the S3-compatible API with account credentials and SigV4 signing, which is a separate concern.

Type Parameters

T

T

Methods

get()

get(key): Promise<R2ObjectBody | null>

Defined in: index.ts:14

Parameters
key

string

Returns

Promise<R2ObjectBody | null>

getJSON()

getJSON(key): Promise<T | null>

Defined in: index.ts:15

Parameters
key

string

Returns

Promise<T | null>

put()

put(key, value, options?): Promise<R2Object | null>

Defined in: index.ts:16

Parameters
key

string

value

R2PutValue

options?

R2PutOptions

Returns

Promise<R2Object | null>

putJSON()

putJSON(key, value, options?): Promise<R2Object | null>

Defined in: index.ts:17

Parameters
key

string

value

T

options?

R2PutOptions

Returns

Promise<R2Object | null>

head(key): Promise<R2Object | null>

Defined in: index.ts:18

Parameters
key

string

Returns

Promise<R2Object | null>

delete()

delete(keys): Promise<void>

Defined in: index.ts:19

Parameters
keys

string | string[]

Returns

Promise<void>

list()

list(options?): Promise<R2Objects>

Defined in: index.ts:20

Parameters
options?

R2ListOptions

Returns

Promise<R2Objects>

Type Aliases

R2PutValue

R2PutValue = ReadableStream | ArrayBuffer | ArrayBufferView | string | Blob | null

Defined in: index.ts:4

Value types accepted by the R2 binding's put/uploadPart.

Functions

createR2Store()

createR2Store<T>(bucket): R2Store<T>

Defined in: index.ts:31

Wrap an R2Bucket binding as a typed store with JSON convenience helpers.

Type Parameters

T

T = unknown

Parameters

bucket

R2Bucket

Returns

R2Store<T>

Example

const docs = createR2Store<Doc>(env.DOCS)
await docs.putJSON('a.json', doc)
const doc = await docs.getJSON('a.json') // Doc | null

multipartUpload()

multipartUpload(bucket, key, parts, options?): Promise<R2Object>

Defined in: index.ts:63

Drive a complete multipart upload: create → upload each part → complete, aborting the upload if any part fails. Parts must be pre-chunked by the caller (every part except the last must be ≥ 5 MiB, per R2's limits).

Parameters

bucket

R2Bucket

key

string

parts

(string | ReadableStream<any> | ArrayBuffer | ArrayBufferView | Blob)[]

options?

R2MultipartOptions

Returns

Promise<R2Object>