matrix-react-sdk
Version:
SDK for matrix.org using React
50 lines (48 loc) • 6.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prepEventContentAsMedia = prepEventContentAsMedia;
/*
* Copyright 2024 New Vector Ltd.
* Copyright 2021 The Matrix.org Foundation C.I.C.
*
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
* Please see LICENSE files in the repository root for full details.
*/
/**
* Parses an event content body into a prepared media object. This prepared media object
* can be used with other functions to manipulate the media.
* @param {MediaEventContent} content Unredacted media event content. See interface.
* @returns {IPreparedMedia} A prepared media object.
* @throws Throws if the given content cannot be packaged into a prepared media object.
*/
function prepEventContentAsMedia(content) {
let thumbnail;
if (typeof content?.info === "object" && "thumbnail_url" in content.info && content.info.thumbnail_url) {
thumbnail = {
mxc: content.info.thumbnail_url,
file: content.info.thumbnail_file
};
} else if (typeof content?.info === "object" && "thumbnail_file" in content.info && typeof content?.info?.thumbnail_file === "object" && content?.info?.thumbnail_file?.url) {
thumbnail = {
mxc: content.info.thumbnail_file.url,
file: content.info.thumbnail_file
};
}
if (content?.url) {
return {
thumbnail,
mxc: content.url,
file: content.file
};
} else if (content?.file?.url) {
return {
thumbnail,
mxc: content.file.url,
file: content.file
};
}
throw new Error("Invalid file provided: cannot determine MXC URI. Has it been redacted?");
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmVwRXZlbnRDb250ZW50QXNNZWRpYSIsImNvbnRlbnQiLCJ0aHVtYm5haWwiLCJpbmZvIiwidGh1bWJuYWlsX3VybCIsIm14YyIsImZpbGUiLCJ0aHVtYm5haWxfZmlsZSIsInVybCIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWlzYXRpb25zL21vZGVscy9JTWVkaWFFdmVudENvbnRlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuaW1wb3J0IHsgRW5jcnlwdGVkRmlsZSwgTWVkaWFFdmVudENvbnRlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUHJlcGFyZWRNZWRpYSBleHRlbmRzIElNZWRpYU9iamVjdCB7XG4gICAgdGh1bWJuYWlsPzogSU1lZGlhT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNZWRpYU9iamVjdCB7XG4gICAgbXhjOiBzdHJpbmc7XG4gICAgZmlsZT86IEVuY3J5cHRlZEZpbGU7XG59XG5cbi8qKlxuICogUGFyc2VzIGFuIGV2ZW50IGNvbnRlbnQgYm9keSBpbnRvIGEgcHJlcGFyZWQgbWVkaWEgb2JqZWN0LiBUaGlzIHByZXBhcmVkIG1lZGlhIG9iamVjdFxuICogY2FuIGJlIHVzZWQgd2l0aCBvdGhlciBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGUgbWVkaWEuXG4gKiBAcGFyYW0ge01lZGlhRXZlbnRDb250ZW50fSBjb250ZW50IFVucmVkYWN0ZWQgbWVkaWEgZXZlbnQgY29udGVudC4gU2VlIGludGVyZmFjZS5cbiAqIEByZXR1cm5zIHtJUHJlcGFyZWRNZWRpYX0gQSBwcmVwYXJlZCBtZWRpYSBvYmplY3QuXG4gKiBAdGhyb3dzIFRocm93cyBpZiB0aGUgZ2l2ZW4gY29udGVudCBjYW5ub3QgYmUgcGFja2FnZWQgaW50byBhIHByZXBhcmVkIG1lZGlhIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXBFdmVudENvbnRlbnRBc01lZGlhKGNvbnRlbnQ6IFBhcnRpYWw8TWVkaWFFdmVudENvbnRlbnQ+KTogSVByZXBhcmVkTWVkaWEge1xuICAgIGxldCB0aHVtYm5haWw6IElNZWRpYU9iamVjdCB8IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQ/LmluZm8gPT09IFwib2JqZWN0XCIgJiYgXCJ0aHVtYm5haWxfdXJsXCIgaW4gY29udGVudC5pbmZvICYmIGNvbnRlbnQuaW5mby50aHVtYm5haWxfdXJsKSB7XG4gICAgICAgIHRodW1ibmFpbCA9IHtcbiAgICAgICAgICAgIG14YzogY29udGVudC5pbmZvLnRodW1ibmFpbF91cmwsXG4gICAgICAgICAgICBmaWxlOiBjb250ZW50LmluZm8udGh1bWJuYWlsX2ZpbGUsXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIGNvbnRlbnQ/LmluZm8gPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgXCJ0aHVtYm5haWxfZmlsZVwiIGluIGNvbnRlbnQuaW5mbyAmJlxuICAgICAgICB0eXBlb2YgY29udGVudD8uaW5mbz8udGh1bWJuYWlsX2ZpbGUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgY29udGVudD8uaW5mbz8udGh1bWJuYWlsX2ZpbGU/LnVybFxuICAgICkge1xuICAgICAgICB0aHVtYm5haWwgPSB7XG4gICAgICAgICAgICBteGM6IGNvbnRlbnQuaW5mby50aHVtYm5haWxfZmlsZS51cmwsXG4gICAgICAgICAgICBmaWxlOiBjb250ZW50LmluZm8udGh1bWJuYWlsX2ZpbGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQ/LnVybCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGh1bWJuYWlsLFxuICAgICAgICAgICAgbXhjOiBjb250ZW50LnVybCxcbiAgICAgICAgICAgIGZpbGU6IGNvbnRlbnQuZmlsZSxcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGNvbnRlbnQ/LmZpbGU/LnVybCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGh1bWJuYWlsLFxuICAgICAgICAgICAgbXhjOiBjb250ZW50LmZpbGUudXJsLFxuICAgICAgICAgICAgZmlsZTogY29udGVudC5maWxlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZmlsZSBwcm92aWRlZDogY2Fubm90IGRldGVybWluZSBNWEMgVVJJLiBIYXMgaXQgYmVlbiByZWRhY3RlZD9cIik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsdUJBQXVCQSxDQUFDQyxPQUFtQyxFQUFrQjtFQUN6RixJQUFJQyxTQUFtQztFQUN2QyxJQUFJLE9BQU9ELE9BQU8sRUFBRUUsSUFBSSxLQUFLLFFBQVEsSUFBSSxlQUFlLElBQUlGLE9BQU8sQ0FBQ0UsSUFBSSxJQUFJRixPQUFPLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxFQUFFO0lBQ3BHRixTQUFTLEdBQUc7TUFDUkcsR0FBRyxFQUFFSixPQUFPLENBQUNFLElBQUksQ0FBQ0MsYUFBYTtNQUMvQkUsSUFBSSxFQUFFTCxPQUFPLENBQUNFLElBQUksQ0FBQ0k7SUFDdkIsQ0FBQztFQUNMLENBQUMsTUFBTSxJQUNILE9BQU9OLE9BQU8sRUFBRUUsSUFBSSxLQUFLLFFBQVEsSUFDakMsZ0JBQWdCLElBQUlGLE9BQU8sQ0FBQ0UsSUFBSSxJQUNoQyxPQUFPRixPQUFPLEVBQUVFLElBQUksRUFBRUksY0FBYyxLQUFLLFFBQVEsSUFDakROLE9BQU8sRUFBRUUsSUFBSSxFQUFFSSxjQUFjLEVBQUVDLEdBQUcsRUFDcEM7SUFDRU4sU0FBUyxHQUFHO01BQ1JHLEdBQUcsRUFBRUosT0FBTyxDQUFDRSxJQUFJLENBQUNJLGNBQWMsQ0FBQ0MsR0FBRztNQUNwQ0YsSUFBSSxFQUFFTCxPQUFPLENBQUNFLElBQUksQ0FBQ0k7SUFDdkIsQ0FBQztFQUNMO0VBRUEsSUFBSU4sT0FBTyxFQUFFTyxHQUFHLEVBQUU7SUFDZCxPQUFPO01BQ0hOLFNBQVM7TUFDVEcsR0FBRyxFQUFFSixPQUFPLENBQUNPLEdBQUc7TUFDaEJGLElBQUksRUFBRUwsT0FBTyxDQUFDSztJQUNsQixDQUFDO0VBQ0wsQ0FBQyxNQUFNLElBQUlMLE9BQU8sRUFBRUssSUFBSSxFQUFFRSxHQUFHLEVBQUU7SUFDM0IsT0FBTztNQUNITixTQUFTO01BQ1RHLEdBQUcsRUFBRUosT0FBTyxDQUFDSyxJQUFJLENBQUNFLEdBQUc7TUFDckJGLElBQUksRUFBRUwsT0FBTyxDQUFDSztJQUNsQixDQUFDO0VBQ0w7RUFFQSxNQUFNLElBQUlHLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQztBQUM3RiIsImlnbm9yZUxpc3QiOltdfQ==