react-filerobot-video-editor
Version:
React component version of filerobot video editor (FVE).
1 lines • 3.75 kB
JavaScript
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";var _import$meta;import _regeneratorRuntime from"@babel/runtime/regenerator";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import isBlobFile from"../../utils/isBlobFile";var getDefaultHeaders=function(a){var b=a.key,c=a.token,d=a.headers;return _objectSpread(_objectSpread(_objectSpread({},d),b&&{"X-Filerobot-Key":b}),c&&{"Filerobot-Token":c})},getQueryParams=function(a){var b=Object.entries(a).filter(function(a){var b=_slicedToArray(a,2),c=b[1];return c!==void 0}).reduce(function(a,b){var c=_slicedToArray(b,2),d=c[0],e=c[1];return a[d]=e,a},{});return new URLSearchParams(b).toString()},getData=function(a){if(isBlobFile(null===a||void 0===a?void 0:a.source)){var b=new FormData;return b.append("file",a.source,a.name),a.time_data&&b.append("time_data",a.time_data),b}return JSON.stringify([a])},transformResponse=function(){var a=_asyncToGenerator(_regeneratorRuntime.mark(function b(a){var c,d,e,f,g;return _regeneratorRuntime.wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(c=a.headers.get("content-type"),!a.ok){b.next=6;break}if("application/json"!==c){b.next=4;break}return b.abrupt("return",a.json().then(function(a){return a}));case 4:if(!(null!==c&&void 0!==c&&c.includes("video/mp4"))){b.next=6;break}return b.abrupt("return",a.blob());case 6:if(a.ok){b.next=12;break}return b.next=9,a.json();case 9:return f=b.sent,g=(null===f||void 0===f?void 0:f.message)||(null===f||void 0===f||null===(d=f.result)||void 0===d?void 0:d.msg)||(null===f||void 0===f||null===(e=f.result)||void 0===e?void 0:e.hint),b.abrupt("return",Promise.reject(g));case 12:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}(),baseUrl=null!==(_import$meta=import.meta)&&void 0!==_import$meta&&null!==(_import$meta=_import$meta.env)&&void 0!==_import$meta&&_import$meta.DEV?"http://ask-dev.filerobot.com:8732":"https://api.filerobot.com/videos/v2";export var trimVideo=function(a){var b=a.key,c=a.token,d=a.data,e=a.path,f=void 0===e?"url":e,g=a.crop,h=a.resize,i=a.rotation,j=a.flip,k=a.onError,l=a.signal;return fetch("".concat(baseUrl,"/trim/").concat(f,"?").concat(getQueryParams({include_cdn:!1,crop:g,resize:h,rotate:i,flip:j})),{body:getData(d),headers:getDefaultHeaders(_objectSpread({key:b,token:c},!isBlobFile(null===d||void 0===d?void 0:d.source)&&{"Content-Type":"application/json"})),method:"POST",signal:l}).then(transformResponse)["catch"](k)};export var transformVideo=function(a){var b=a.key,c=a.token,d=a.data,e=a.path,f=void 0===e?"url":e,g=a.crop,h=a.resize,i=a.rotation,j=a.flip,k=a.signal;return fetch("".concat(baseUrl,"/transformations/").concat(f,"?").concat(getQueryParams({include_cdn:!1,crop:g,resize:h,rotate:i,flip:j})),{body:getData(d),headers:getDefaultHeaders(_objectSpread({key:b,token:c},!isBlobFile(null===d||void 0===d?void 0:d.source)&&{"Content-Type":"application/json"})),method:"POST",signal:k}).then(transformResponse)};export var get=function(a,b){return fetch(a,{method:"GET",signal:b}).then(transformResponse)};