@vercel/blob
Version:
The Vercel Blob JavaScript API client
204 lines (151 loc) • 6.44 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _chunk4FOGRTRZcjs = require('./chunk-4FOGRTRZ.cjs');
// src/del.ts
async function del(url, options) {
await _chunk4FOGRTRZcjs.requestApi.call(void 0,
"/delete",
{
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ urls: Array.isArray(url) ? url : [url] }),
signal: options == null ? void 0 : options.abortSignal
},
options
);
}
// src/head.ts
async function head(url, options) {
const searchParams = new URLSearchParams({ url });
const response = await _chunk4FOGRTRZcjs.requestApi.call(void 0,
`?${searchParams.toString()}`,
// HEAD can't have body as a response, so we use GET
{
method: "GET",
signal: options == null ? void 0 : options.abortSignal
},
options
);
return {
url: response.url,
downloadUrl: response.downloadUrl,
pathname: response.pathname,
size: response.size,
contentType: response.contentType,
contentDisposition: response.contentDisposition,
cacheControl: response.cacheControl,
uploadedAt: new Date(response.uploadedAt)
};
}
// src/list.ts
async function list(options) {
var _a;
const searchParams = new URLSearchParams();
if (options == null ? void 0 : options.limit) {
searchParams.set("limit", options.limit.toString());
}
if (options == null ? void 0 : options.prefix) {
searchParams.set("prefix", options.prefix);
}
if (options == null ? void 0 : options.cursor) {
searchParams.set("cursor", options.cursor);
}
if (options == null ? void 0 : options.mode) {
searchParams.set("mode", options.mode);
}
const response = await _chunk4FOGRTRZcjs.requestApi.call(void 0,
`?${searchParams.toString()}`,
{
method: "GET",
signal: options == null ? void 0 : options.abortSignal
},
options
);
if ((options == null ? void 0 : options.mode) === "folded") {
return {
folders: (_a = response.folders) != null ? _a : [],
cursor: response.cursor,
hasMore: response.hasMore,
blobs: response.blobs.map(mapBlobResult)
};
}
return {
cursor: response.cursor,
hasMore: response.hasMore,
blobs: response.blobs.map(mapBlobResult)
};
}
function mapBlobResult(blobResult) {
return {
url: blobResult.url,
downloadUrl: blobResult.downloadUrl,
pathname: blobResult.pathname,
size: blobResult.size,
uploadedAt: new Date(blobResult.uploadedAt)
};
}
// src/copy.ts
async function copy(fromUrl, toPathname, options) {
if (!options) {
throw new (0, _chunk4FOGRTRZcjs.BlobError)("missing options, see usage");
}
if (options.access !== "public") {
throw new (0, _chunk4FOGRTRZcjs.BlobError)('access must be "public"');
}
if (toPathname.length > _chunk4FOGRTRZcjs.MAXIMUM_PATHNAME_LENGTH) {
throw new (0, _chunk4FOGRTRZcjs.BlobError)(
`pathname is too long, maximum length is ${_chunk4FOGRTRZcjs.MAXIMUM_PATHNAME_LENGTH}`
);
}
for (const invalidCharacter of _chunk4FOGRTRZcjs.disallowedPathnameCharacters) {
if (toPathname.includes(invalidCharacter)) {
throw new (0, _chunk4FOGRTRZcjs.BlobError)(
`pathname cannot contain "${invalidCharacter}", please encode it if needed`
);
}
}
const headers = {};
if (options.addRandomSuffix !== void 0) {
headers["x-add-random-suffix"] = options.addRandomSuffix ? "1" : "0";
}
if (options.contentType) {
headers["x-content-type"] = options.contentType;
}
if (options.cacheControlMaxAge !== void 0) {
headers["x-cache-control-max-age"] = options.cacheControlMaxAge.toString();
}
const params = new URLSearchParams({ pathname: toPathname, fromUrl });
const response = await _chunk4FOGRTRZcjs.requestApi.call(void 0,
`?${params.toString()}`,
{
method: "PUT",
headers,
signal: options.abortSignal
},
options
);
return {
url: response.url,
downloadUrl: response.downloadUrl,
pathname: response.pathname,
contentType: response.contentType,
contentDisposition: response.contentDisposition
};
}
// src/index.ts
var put = _chunk4FOGRTRZcjs.createPutMethod.call(void 0, {
allowedOptions: ["cacheControlMaxAge", "addRandomSuffix", "contentType"]
});
var createMultipartUpload = _chunk4FOGRTRZcjs.createCreateMultipartUploadMethod.call(void 0, {
allowedOptions: ["cacheControlMaxAge", "addRandomSuffix", "contentType"]
});
var createMultipartUploader = _chunk4FOGRTRZcjs.createCreateMultipartUploaderMethod.call(void 0, {
allowedOptions: ["cacheControlMaxAge", "addRandomSuffix", "contentType"]
});
var uploadPart = _chunk4FOGRTRZcjs.createUploadPartMethod.call(void 0, {
allowedOptions: ["cacheControlMaxAge", "addRandomSuffix", "contentType"]
});
var completeMultipartUpload = _chunk4FOGRTRZcjs.createCompleteMultipartUploadMethod.call(void 0, {
allowedOptions: ["cacheControlMaxAge", "addRandomSuffix", "contentType"]
});
exports.BlobAccessError = _chunk4FOGRTRZcjs.BlobAccessError; exports.BlobClientTokenExpiredError = _chunk4FOGRTRZcjs.BlobClientTokenExpiredError; exports.BlobContentTypeNotAllowedError = _chunk4FOGRTRZcjs.BlobContentTypeNotAllowedError; exports.BlobError = _chunk4FOGRTRZcjs.BlobError; exports.BlobFileTooLargeError = _chunk4FOGRTRZcjs.BlobFileTooLargeError; exports.BlobNotFoundError = _chunk4FOGRTRZcjs.BlobNotFoundError; exports.BlobPathnameMismatchError = _chunk4FOGRTRZcjs.BlobPathnameMismatchError; exports.BlobRequestAbortedError = _chunk4FOGRTRZcjs.BlobRequestAbortedError; exports.BlobServiceNotAvailable = _chunk4FOGRTRZcjs.BlobServiceNotAvailable; exports.BlobServiceRateLimited = _chunk4FOGRTRZcjs.BlobServiceRateLimited; exports.BlobStoreNotFoundError = _chunk4FOGRTRZcjs.BlobStoreNotFoundError; exports.BlobStoreSuspendedError = _chunk4FOGRTRZcjs.BlobStoreSuspendedError; exports.BlobUnknownError = _chunk4FOGRTRZcjs.BlobUnknownError; exports.completeMultipartUpload = completeMultipartUpload; exports.copy = copy; exports.createFolder = _chunk4FOGRTRZcjs.createFolder; exports.createMultipartUpload = createMultipartUpload; exports.createMultipartUploader = createMultipartUploader; exports.del = del; exports.getDownloadUrl = _chunk4FOGRTRZcjs.getDownloadUrl; exports.head = head; exports.list = list; exports.put = put; exports.uploadPart = uploadPart;
//# sourceMappingURL=index.cjs.map