@wordpress/media-utils
Version:
WordPress Media Upload Utils.
52 lines (50 loc) • 1.5 kB
JavaScript
/**
* WordPress dependencies
*/
import { __, sprintf } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import { sideloadToServer } from './sideload-to-server';
import { UploadError } from './upload-error';
const noop = () => {};
/**
* Uploads a file to the server without creating an attachment.
*
* @param $0 Parameters object passed to the function.
* @param $0.file Media File to Save.
* @param $0.attachmentId Parent attachment ID.
* @param $0.additionalData Additional data to include in the request.
* @param $0.signal Abort signal.
* @param $0.onFileChange Function called each time a file or a temporary representation of the file is available.
* @param $0.onError Function called when an error happens.
*/
export async function sideloadMedia({
file,
attachmentId,
additionalData = {},
signal,
onFileChange,
onError = noop
}) {
try {
const attachment = await sideloadToServer(file, attachmentId, additionalData, signal);
onFileChange?.([attachment]);
} catch (error) {
let message;
if (error instanceof Error) {
message = error.message;
} else {
message = sprintf(
// translators: %s: file name
__('Error while sideloading file %s to the server.'), file.name);
}
onError(new UploadError({
code: 'GENERAL',
message,
file,
cause: error instanceof Error ? error : undefined
}));
}
}
//# sourceMappingURL=sideload-media.js.map