use-tus 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +4 -4
- package/package.json +3 -3
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),h=require("tus-js-client");const V=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:h.Upload}),D=o=>({...V,...o}),m=({upload:o,abort:t,autoAbort:e})=>{n.useEffect(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},q=(o,t,e)=>{let s=o[e];const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){return a?.get?.()??s},set(r){a?.set?a.set.call(o,r):s=r,t(this)}})},I=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:a,onStart:r,onAbort:p})=>{const u=new o(t,e),i=u.start.bind(u),l=u.abort.bind(u),A=(...d)=>{i(...d),r()},E=async(...d)=>{l(...d),p()};return u.start=A,u.abort=E,q(u,a,"url"),Object.entries(s).forEach(([d,c])=>{if(typeof c!="function")return;const O=(...b)=>c(...b,u);u.options[d]=O}),{upload:u,originalStart:i,originalAbort:l}};function R(o){const t=Object.entries(o).reduce((s,[a,r])=>({...s,[a]:typeof r!="function"?r:void 0}),{}),e=Object.entries(o).reduce((s,[a,r])=>({...s,[a]:typeof r=="function"?r:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const F=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},w=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:a}=D(o),[r,p]=n.useState(w),[u,i]=n.useState({originalAbort:void 0}),l=c=>{p(O=>O.upload===void 0?O:{...O,...c})},A=n.useCallback((c,O={})=>{const b={...s,...O};function T(){l({isSuccess:!0,isUploading:!1}),b?.onSuccess?.(U)}const v={...b,onSuccess:T,onError:f=>{l({error:f,isUploading:!1}),b?.onError?.(f,U)}},y=f=>{p(K=>({...K,upload:f}))},g=()=>{l({isUploading:!0,isAborted:!1})},N=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:_,uploadFnOptions:S}=R(v),{upload:U,originalAbort:H}=I({Upload:a,file:c,uploadOptions:_,uploadFnOptions:S,onChange:y,onStart:g,onAbort:N});e&&F(U),p({upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),i({originalAbort:H})},[a,e,s]),E=n.useCallback(()=>{u?.originalAbort?.(),p(w),i({originalAbort:void 0})},[u]),d={...r,setUpload:A,remove:E};return m({upload:d.upload,abort:u.originalAbort,autoAbort:t??!1}),d},P={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},x=n.createContext(void 0),L=n.createContext(void 0),k=()=>{const o=n.useContext(x);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return n.useMemo(()=>o,[o])},j=()=>{const o=n.useContext(L);if(!o&&process.env.NODE_ENV!=="production")throw new Error(P.tusClientHasNotFounded);return n.useMemo(()=>o,[o])},X=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),C=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),M=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),G=()=>({type:"RESET_CLIENT"}),J=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),B=(o,t={})=>{const{autoAbort:e,autoStart:s,uploadOptions:a,Upload:r}=D(t),{defaultOptions:p,uploads:u}=k(),i=j(),l=n.useCallback((c,O={})=>{const b={...p?.(c),...a,...O},T={...b,onSuccess:()=>{i(C(o,{isSuccess:!0,isUploading:!1})),b?.onSuccess?.(S)},onError:U=>{i(C(o,{error:U,isUploading:!1})),b?.onError?.(U,S)}},v=U=>{i(C(o,{upload:U}))},y=()=>{i(C(o,{isAborted:!1,isUploading:!0}))},g=()=>{i(C(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:N,uploadFnOptions:_}=R(T),{upload:S}=I({Upload:r,file:c,uploadOptions:N,uploadFnOptions:_,onChange:v,onStart:y,onAbort:g});s&&F(S),i(X(o,{upload:S,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[r,s,o,p,a,i]),A=n.useMemo(()=>u[o],[o,u]),E=n.useCallback(()=>{A?.upload?.abort(),i(M(o))},[A,i,o]),d=A?{...A,setUpload:l,remove:E}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:l,remove:E};return m({upload:d.upload,abort:d.upload?.abort,autoAbort:e??!1}),d},Q=()=>{const o=k(),t=j(),e=o.uploads,s=n.useCallback(r=>{t(M(r))},[t]),a=n.useCallback(()=>t(G()),[t]);return{state:e,removeUpload:s,reset:a}},W=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,a=o.uploads[e];return a?{...o,uploads:{...o.uploads,[e]:{...a,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},Y={uploads:{},defaultOptions:void 0},Z=({defaultOptions:o,children:t})=>{const[e,s]=n.useReducer(W,{...Y,defaultOptions:o});n.useEffect(()=>{h.isSupported||process.env.NODE_ENV==="production"||console.error(P.tusIsNotSupported)},[]),n.useEffect(()=>{e.defaultOptions!==o&&s(J(o))},[o,e.defaultOptions]);const a=n.createElement(L.Provider,{value:s},t);return n.createElement(x.Provider,{value:e},a)};exports.TusClientProvider=Z,exports.useTus=z,exports.useTusClient=Q,exports.useTusStore=B;
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEffect as D,useState as R,useCallback as T,createContext as F,useContext as w,useMemo as m,useReducer as B,createElement as L}from"react";import{Upload as J,isSupported as Q}from"tus-js-client";const W=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:J}),x=o=>({...W,...o}),j=({upload:o,abort:t,autoAbort:e})=>{D(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},Y=(o,t,e)=>{let s=o[e];const n=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){var r,d;return(d=(r=n==null?void 0:n.get)==null?void 0:r.call(n))!=null?d:s},set(r){n!=null&&n.set?n.set.call(o,r):s=r,t(this)}})},K=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:n,onStart:r,onAbort:d})=>{const a=new o(t,e),
|
|
1
|
+
import{useEffect as D,useState as R,useCallback as T,createContext as F,useContext as w,useMemo as m,useReducer as B,createElement as L}from"react";import{Upload as J,isSupported as Q}from"tus-js-client";const W=Object.freeze({autoAbort:!0,autoStart:!1,uploadOptions:void 0,Upload:J}),x=o=>({...W,...o}),j=({upload:o,abort:t,autoAbort:e})=>{D(()=>{const s=async()=>{!o||!t||await t()};return()=>{e&&s()}},[e,o])},Y=(o,t,e)=>{let s=o[e];const n=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(o,e,{get(){var r,d;return(d=(r=n==null?void 0:n.get)==null?void 0:r.call(n))!=null?d:s},set(r){n!=null&&n.set?n.set.call(o,r):s=r,t(this)}})},K=({Upload:o,file:t,uploadOptions:e,uploadFnOptions:s,onChange:n,onStart:r,onAbort:d})=>{const a=new o(t,e),A=a.start.bind(a),l=a.abort.bind(a),S=(...p)=>{A(...p),r()},v=async(...p)=>{l(...p),d()};return a.start=S,a.abort=v,Y(a,n,"url"),Object.entries(s).forEach(([p,u])=>{if(typeof u!="function")return;const i=(...c)=>u(...c,a);a.options[p]=i}),{upload:a,originalStart:A,originalAbort:l}};function H(o){const t=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r!="function"?r:void 0}),{}),e=Object.entries(o).reduce((s,[n,r])=>({...s,[n]:typeof r=="function"?r:void 0}),{});return{uploadOptions:t,uploadFnOptions:e}}const V=o=>{o.findPreviousUploads().then(t=>{t.length&&o.resumeFromPreviousUpload(t[0]),o.start()})},k=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,error:void 0}),Z=(o={})=>{const{autoAbort:t,autoStart:e,uploadOptions:s,Upload:n}=x(o),[r,d]=R(k),[a,A]=R({originalAbort:void 0}),l=u=>{d(i=>i.upload===void 0?i:{...i,...u})},S=T((u,i={})=>{const c={...s,...i};function b(){var O;l({isSuccess:!0,isUploading:!1}),(O=c==null?void 0:c.onSuccess)==null||O.call(c,U)}const g={...c,onSuccess:b,onError:O=>{var C;l({error:O,isUploading:!1}),(C=c==null?void 0:c.onError)==null||C.call(c,O,U)}},y=O=>{d(C=>({...C,upload:O}))},N=()=>{l({isUploading:!0,isAborted:!1})},_=()=>{l({isUploading:!1,isAborted:!0})},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:U,originalAbort:E}=K({Upload:n,file:u,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});e&&V(U),d({upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}),A({originalAbort:E})},[n,e,s]),v=T(()=>{var u;(u=a==null?void 0:a.originalAbort)==null||u.call(a),d(k),A({originalAbort:void 0})},[a]),p={...r,setUpload:S,remove:v};return j({upload:p.upload,abort:a.originalAbort,autoAbort:t!=null?t:!1}),p},I={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},M=F(void 0),z=F(void 0),X=()=>{const o=w(M);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},G=()=>{const o=w(z);if(!o&&process.env.NODE_ENV!=="production")throw new Error(I.tusClientHasNotFounded);return m(()=>o,[o])},$=(o,t)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:o,uploadState:t}}),f=(o,t)=>({type:"UPDATE_UPLOAD_CONTEXT",payload:{cacheKey:o,context:t}}),q=o=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:o}}),oo=()=>({type:"RESET_CLIENT"}),to=o=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:o}}),eo=(o,t={})=>{var e;const{autoAbort:s,autoStart:n,uploadOptions:r,Upload:d}=x(t),{defaultOptions:a,uploads:A}=X(),l=G(),S=T((i,c={})=>{const b={...a==null?void 0:a(i),...r,...c},g={...b,onSuccess:()=>{var E;l(f(o,{isSuccess:!0,isUploading:!1})),(E=b==null?void 0:b.onSuccess)==null||E.call(b,U)},onError:E=>{var O;l(f(o,{error:E,isUploading:!1})),(O=b==null?void 0:b.onError)==null||O.call(b,E,U)}},y=E=>{l(f(o,{upload:E}))},N=()=>{l(f(o,{isAborted:!1,isUploading:!0}))},_=()=>{l(f(o,{isAborted:!0,isUploading:!1}))},{uploadOptions:h,uploadFnOptions:P}=H(g),{upload:U}=K({Upload:d,file:i,uploadOptions:h,uploadFnOptions:P,onChange:y,onStart:N,onAbort:_});n&&V(U),l($(o,{upload:U,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1}))},[d,n,o,a,r,l]),v=m(()=>A[o],[o,A]),p=T(()=>{var i;(i=v==null?void 0:v.upload)==null||i.abort(),l(q(o))},[v,l,o]),u=v?{...v,setUpload:S,remove:p}:{upload:void 0,error:void 0,isSuccess:!1,isAborted:!1,isUploading:!1,setUpload:S,remove:p};return j({upload:u.upload,abort:(e=u.upload)==null?void 0:e.abort,autoAbort:s!=null?s:!1}),u},so=()=>{const o=X(),t=G(),e=o.uploads,s=T(r=>{t(q(r))},[t]),n=T(()=>t(oo()),[t]);return{state:e,removeUpload:s,reset:n}},no=(o,t)=>{switch(t.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:e,uploadState:s}=t.payload;return{...o,uploads:{...o.uploads,[e]:s}}}case"UPDATE_UPLOAD_CONTEXT":{const{cacheKey:e,context:s}=t.payload,n=o.uploads[e];return n?{...o,uploads:{...o.uploads,[e]:{...n,...s}}}:o}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:e}=t.payload,s=o.uploads;return delete s[e],{...o,uploads:s}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:e}=t.payload;return{...o,defaultOptions:e}}case"RESET_CLIENT":return{...o,uploads:{}};default:return o}},ro={uploads:{},defaultOptions:void 0},ao=({defaultOptions:o,children:t})=>{const[e,s]=B(no,{...ro,defaultOptions:o});D(()=>{Q||process.env.NODE_ENV==="production"||console.error(I.tusIsNotSupported)},[]),D(()=>{e.defaultOptions!==o&&s(to(o))},[o,e.defaultOptions]);const n=L(z.Provider,{value:s},t);return L(M.Provider,{value:e},n)};export{ao as TusClientProvider,Z as useTus,so as useTusClient,eo as useTusStore};
|
package/dist/index.js
CHANGED
|
@@ -52,12 +52,12 @@ const createUpload = ({ Upload, file, uploadOptions, uploadFnOptions, onChange,
|
|
|
52
52
|
const upload = new Upload(file, uploadOptions);
|
|
53
53
|
const originalStart = upload.start.bind(upload);
|
|
54
54
|
const originalAbort = upload.abort.bind(upload);
|
|
55
|
-
const start = () => {
|
|
56
|
-
originalStart();
|
|
55
|
+
const start = (...args) => {
|
|
56
|
+
originalStart(...args);
|
|
57
57
|
onStart();
|
|
58
58
|
};
|
|
59
|
-
const abort = async () => {
|
|
60
|
-
originalAbort();
|
|
59
|
+
const abort = async (...args) => {
|
|
60
|
+
originalAbort(...args);
|
|
61
61
|
onAbort();
|
|
62
62
|
};
|
|
63
63
|
upload.start = start;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "use-tus",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "React hooks for resumable file uploads using tus-js-client",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -73,13 +73,13 @@
|
|
|
73
73
|
"storybook": "^7.5.1",
|
|
74
74
|
"tailwindcss": "npm:@tailwindcss/postcss7-compat",
|
|
75
75
|
"ts-jest": "^29.1.1",
|
|
76
|
-
"tus-js-client": "^
|
|
76
|
+
"tus-js-client": "^4.0.0",
|
|
77
77
|
"typescript": "^5.2.2",
|
|
78
78
|
"vite": "^4.5.0"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"react": ">=16.8",
|
|
82
|
-
"tus-js-client": "
|
|
82
|
+
"tus-js-client": ">=2.2.0"
|
|
83
83
|
},
|
|
84
84
|
"packageManager": "pnpm@8.8.0",
|
|
85
85
|
"scripts": {
|