use-tus 0.5.0 → 0.7.0
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/README.md +71 -30
- package/dist/TusClientProvider/TusClientProvider.d.ts +6 -3
- package/dist/TusClientProvider/constants.d.ts +4 -0
- package/dist/TusClientProvider/index.d.ts +3 -2
- package/dist/{core → TusClientProvider/store}/contexts.d.ts +3 -3
- package/dist/{core → TusClientProvider/store}/tucClientActions.d.ts +9 -10
- package/dist/{core → TusClientProvider/store}/tusClientReducer.d.ts +5 -5
- package/dist/TusClientProvider/types.d.ts +2 -0
- package/dist/__stories__/Basic.stories.d.ts +1 -1
- package/dist/__stories__/CacheKey.stories.d.ts +1 -1
- package/dist/__stories__/DefaultOptions.stories.d.ts +1 -1
- package/dist/__stories__/components/BasicButton/BasicButton.d.ts +4 -4
- package/dist/__stories__/components/BasicButton/index.d.ts +1 -1
- package/dist/__stories__/components/LoadingCircle/LoadingCircle.d.ts +2 -2
- package/dist/__stories__/components/LoadingCircle/index.d.ts +1 -1
- package/dist/__stories__/components/ProgressBar/ProgressBar.d.ts +2 -2
- package/dist/__stories__/components/ProgressBar/index.d.ts +1 -1
- package/dist/__stories__/components/UploadIcon/UploadIcon.d.ts +2 -2
- package/dist/__stories__/components/UploadIcon/index.d.ts +1 -1
- package/dist/__tests__/useTusStore.test.d.ts +1 -0
- package/dist/__tests__/utils/getDefaultOptions.d.ts +2 -0
- package/dist/__tests__/utils/mock.d.ts +6 -1
- package/dist/index.cjs.js +266 -343
- package/dist/index.d.ts +3 -4
- package/dist/index.esm.js +267 -324
- package/dist/index.js +175 -211
- package/dist/useTus/index.d.ts +3 -2
- package/dist/useTus/types.d.ts +8 -9
- package/dist/useTus/useTus.d.ts +2 -2
- package/dist/useTus/useTusStore.d.ts +2 -0
- package/dist/useTus/utils/createUpload.d.ts +7 -0
- package/dist/useTus/utils/startOrResumeUpload.d.ts +2 -0
- package/dist/useTus/utils/useAutoAbort.d.ts +2 -0
- package/dist/useTus/utils/useMergeTusOptions.d.ts +6 -0
- package/dist/useTusClient/index.d.ts +1 -1
- package/dist/useTusClient/useTusClient.d.ts +1 -1
- package/package.json +9 -10
- package/dist/TusClientProvider/TusController.d.ts +0 -4
- package/dist/core/constants.d.ts +0 -4
- package/dist/core/tusHandler.d.ts +0 -17
- package/dist/core/types.d.ts +0 -8
- package/dist/useTus/utils.d.ts +0 -16
- package/dist/utils/uid.d.ts +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -3,29 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var react = require('react');
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
function _interopNamespace(e) {
|
|
9
|
-
if (e && e.__esModule) return e;
|
|
10
|
-
var n = Object.create(null);
|
|
11
|
-
if (e) {
|
|
12
|
-
Object.keys(e).forEach(function (k) {
|
|
13
|
-
if (k !== 'default') {
|
|
14
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () {
|
|
18
|
-
return e[k];
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
n['default'] = e;
|
|
25
|
-
return Object.freeze(n);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var tus__namespace = /*#__PURE__*/_interopNamespace(tus);
|
|
6
|
+
var tusJsClient = require('tus-js-client');
|
|
29
7
|
|
|
30
8
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
31
9
|
try {
|
|
@@ -63,28 +41,6 @@ function _asyncToGenerator(fn) {
|
|
|
63
41
|
};
|
|
64
42
|
}
|
|
65
43
|
|
|
66
|
-
function _classCallCheck(instance, Constructor) {
|
|
67
|
-
if (!(instance instanceof Constructor)) {
|
|
68
|
-
throw new TypeError("Cannot call a class as a function");
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function _defineProperties(target, props) {
|
|
73
|
-
for (var i = 0; i < props.length; i++) {
|
|
74
|
-
var descriptor = props[i];
|
|
75
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
76
|
-
descriptor.configurable = true;
|
|
77
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
78
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
83
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
84
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
85
|
-
return Constructor;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
44
|
function _defineProperty(obj, key, value) {
|
|
89
45
|
if (key in obj) {
|
|
90
46
|
Object.defineProperty(obj, key, {
|
|
@@ -190,9 +146,204 @@ function _nonIterableRest() {
|
|
|
190
146
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
191
147
|
}
|
|
192
148
|
|
|
149
|
+
var createUpload = function createUpload(file, options, dispatchIsAborted) {
|
|
150
|
+
var upload = new tusJsClient.Upload(file, options);
|
|
151
|
+
var originalStart = upload.start.bind(upload);
|
|
152
|
+
var originalAbort = upload.abort.bind(upload);
|
|
153
|
+
|
|
154
|
+
var start = function start() {
|
|
155
|
+
originalStart();
|
|
156
|
+
dispatchIsAborted(false);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var abort = function () {
|
|
160
|
+
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
161
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
162
|
+
while (1) {
|
|
163
|
+
switch (_context.prev = _context.next) {
|
|
164
|
+
case 0:
|
|
165
|
+
originalAbort();
|
|
166
|
+
dispatchIsAborted(true);
|
|
167
|
+
|
|
168
|
+
case 2:
|
|
169
|
+
case "end":
|
|
170
|
+
return _context.stop();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}, _callee);
|
|
174
|
+
}));
|
|
175
|
+
|
|
176
|
+
return function abort() {
|
|
177
|
+
return _ref.apply(this, arguments);
|
|
178
|
+
};
|
|
179
|
+
}();
|
|
180
|
+
|
|
181
|
+
upload.start = start;
|
|
182
|
+
upload.abort = abort;
|
|
183
|
+
return {
|
|
184
|
+
upload: upload,
|
|
185
|
+
originalStart: originalStart,
|
|
186
|
+
originalAbort: originalAbort
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var startOrResumeUpload = function startOrResumeUpload(upload) {
|
|
191
|
+
upload.findPreviousUploads().then(function (previousUploads) {
|
|
192
|
+
if (previousUploads.length) {
|
|
193
|
+
upload.resumeFromPreviousUpload(previousUploads[0]);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
upload.start();
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
var useAutoAbort = function useAutoAbort(upload, abort, autoAbort) {
|
|
201
|
+
react.useEffect(function () {
|
|
202
|
+
var abortUploading = function () {
|
|
203
|
+
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
204
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
205
|
+
while (1) {
|
|
206
|
+
switch (_context.prev = _context.next) {
|
|
207
|
+
case 0:
|
|
208
|
+
if (!(!upload || !abort)) {
|
|
209
|
+
_context.next = 2;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return _context.abrupt("return");
|
|
214
|
+
|
|
215
|
+
case 2:
|
|
216
|
+
_context.next = 4;
|
|
217
|
+
return abort();
|
|
218
|
+
|
|
219
|
+
case 4:
|
|
220
|
+
case "end":
|
|
221
|
+
return _context.stop();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}, _callee);
|
|
225
|
+
}));
|
|
226
|
+
|
|
227
|
+
return function abortUploading() {
|
|
228
|
+
return _ref.apply(this, arguments);
|
|
229
|
+
};
|
|
230
|
+
}();
|
|
231
|
+
|
|
232
|
+
return function () {
|
|
233
|
+
if (!autoAbort) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
abortUploading();
|
|
238
|
+
};
|
|
239
|
+
}, [autoAbort, upload]);
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
var defaultUseTusOptionsValue = Object.freeze({
|
|
243
|
+
autoAbort: true,
|
|
244
|
+
autoStart: false
|
|
245
|
+
});
|
|
246
|
+
var useMergeTusOptions = function useMergeTusOptions(options) {
|
|
247
|
+
return react.useMemo(function () {
|
|
248
|
+
return _objectSpread2(_objectSpread2({}, defaultUseTusOptionsValue), options || {});
|
|
249
|
+
}, [options]);
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
var initialUseTusState = Object.freeze({
|
|
253
|
+
upload: undefined,
|
|
254
|
+
isSuccess: false,
|
|
255
|
+
isAborted: false,
|
|
256
|
+
error: undefined,
|
|
257
|
+
originalAbort: undefined
|
|
258
|
+
});
|
|
259
|
+
var useTus = function useTus(baseOption) {
|
|
260
|
+
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
261
|
+
autoAbort = _useMergeTusOptions.autoAbort,
|
|
262
|
+
autoStart = _useMergeTusOptions.autoStart,
|
|
263
|
+
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
264
|
+
|
|
265
|
+
var _useState = react.useState(initialUseTusState),
|
|
266
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
267
|
+
tusState = _useState2[0],
|
|
268
|
+
setTusState = _useState2[1];
|
|
269
|
+
|
|
270
|
+
var updateTusState = react.useCallback(function (newOptions) {
|
|
271
|
+
setTusState(function (tus) {
|
|
272
|
+
return _objectSpread2(_objectSpread2({}, tus), newOptions);
|
|
273
|
+
});
|
|
274
|
+
}, []);
|
|
275
|
+
var setUpload = react.useCallback(function (file) {
|
|
276
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
277
|
+
|
|
278
|
+
var targetOptions = _objectSpread2(_objectSpread2({}, uploadOptions), options);
|
|
279
|
+
|
|
280
|
+
var onSuccess = function onSuccess() {
|
|
281
|
+
var _targetOptions$onSucc;
|
|
282
|
+
|
|
283
|
+
updateTusState({
|
|
284
|
+
isSuccess: true
|
|
285
|
+
});
|
|
286
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
var onError = function onError(error) {
|
|
290
|
+
var _targetOptions$onErro;
|
|
291
|
+
|
|
292
|
+
updateTusState({
|
|
293
|
+
error: error
|
|
294
|
+
});
|
|
295
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
299
|
+
onSuccess: onSuccess,
|
|
300
|
+
onError: onError
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
304
|
+
updateTusState({
|
|
305
|
+
isAborted: isAborted
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
310
|
+
upload = _createUpload.upload,
|
|
311
|
+
originalAbort = _createUpload.originalAbort;
|
|
312
|
+
|
|
313
|
+
if (autoStart) {
|
|
314
|
+
startOrResumeUpload(upload);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
updateTusState(_objectSpread2(_objectSpread2({}, initialUseTusState), {}, {
|
|
318
|
+
upload: upload,
|
|
319
|
+
originalAbort: originalAbort
|
|
320
|
+
}));
|
|
321
|
+
}, [autoStart, updateTusState, uploadOptions]);
|
|
322
|
+
var remove = react.useCallback(function () {
|
|
323
|
+
var _tusState$originalAbo;
|
|
324
|
+
|
|
325
|
+
tusState === null || tusState === void 0 ? void 0 : (_tusState$originalAbo = tusState.originalAbort) === null || _tusState$originalAbo === void 0 ? void 0 : _tusState$originalAbo.call(tusState);
|
|
326
|
+
setTusState(initialUseTusState);
|
|
327
|
+
}, [tusState]);
|
|
328
|
+
var tusResult = react.useMemo(function () {
|
|
329
|
+
var _tusState$isSuccess, _tusState$isAborted;
|
|
330
|
+
|
|
331
|
+
return {
|
|
332
|
+
upload: tusState === null || tusState === void 0 ? void 0 : tusState.upload,
|
|
333
|
+
isSuccess: (_tusState$isSuccess = tusState === null || tusState === void 0 ? void 0 : tusState.isSuccess) !== null && _tusState$isSuccess !== void 0 ? _tusState$isSuccess : false,
|
|
334
|
+
error: tusState === null || tusState === void 0 ? void 0 : tusState.error,
|
|
335
|
+
isAborted: (_tusState$isAborted = tusState === null || tusState === void 0 ? void 0 : tusState.isAborted) !== null && _tusState$isAborted !== void 0 ? _tusState$isAborted : false,
|
|
336
|
+
setUpload: setUpload,
|
|
337
|
+
remove: remove
|
|
338
|
+
};
|
|
339
|
+
}, [tusState, setUpload, remove]);
|
|
340
|
+
useAutoAbort(tusResult.upload, tusState.originalAbort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
341
|
+
return tusResult;
|
|
342
|
+
};
|
|
343
|
+
|
|
193
344
|
var ERROR_MESSAGES = {
|
|
194
|
-
tusClientHasNotFounded:
|
|
195
|
-
tusIsNotSupported:
|
|
345
|
+
tusClientHasNotFounded: "No TusClient set, use TusClientProvider to set one",
|
|
346
|
+
tusIsNotSupported: "This browser does not support uploads. Please use a modern browser instead."
|
|
196
347
|
};
|
|
197
348
|
|
|
198
349
|
var TusClientStateContext = react.createContext(undefined);
|
|
@@ -200,7 +351,7 @@ var TusClientDispatchContext = react.createContext(undefined);
|
|
|
200
351
|
var useTusClientState = function useTusClientState() {
|
|
201
352
|
var tusClientState = react.useContext(TusClientStateContext);
|
|
202
353
|
|
|
203
|
-
if (!tusClientState && process.env.NODE_ENV !==
|
|
354
|
+
if (!tusClientState && process.env.NODE_ENV !== "production") {
|
|
204
355
|
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
205
356
|
}
|
|
206
357
|
|
|
@@ -211,7 +362,7 @@ var useTusClientState = function useTusClientState() {
|
|
|
211
362
|
var useTusClientDispatch = function useTusClientDispatch() {
|
|
212
363
|
var tusClientDispatch = react.useContext(TusClientDispatchContext);
|
|
213
364
|
|
|
214
|
-
if (!tusClientDispatch && process.env.NODE_ENV !==
|
|
365
|
+
if (!tusClientDispatch && process.env.NODE_ENV !== "production") {
|
|
215
366
|
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
216
367
|
}
|
|
217
368
|
|
|
@@ -222,7 +373,7 @@ var useTusClientDispatch = function useTusClientDispatch() {
|
|
|
222
373
|
|
|
223
374
|
var insertUploadInstance = function insertUploadInstance(cacheKey, upload) {
|
|
224
375
|
return {
|
|
225
|
-
type:
|
|
376
|
+
type: "INSERT_UPLOAD_INSTANCE",
|
|
226
377
|
payload: {
|
|
227
378
|
cacheKey: cacheKey,
|
|
228
379
|
uploadState: {
|
|
@@ -235,7 +386,7 @@ var insertUploadInstance = function insertUploadInstance(cacheKey, upload) {
|
|
|
235
386
|
};
|
|
236
387
|
var updateSuccessUpload = function updateSuccessUpload(cacheKey) {
|
|
237
388
|
return {
|
|
238
|
-
type:
|
|
389
|
+
type: "UPDATE_SUCCESS_UPLOAD",
|
|
239
390
|
payload: {
|
|
240
391
|
cacheKey: cacheKey
|
|
241
392
|
}
|
|
@@ -243,7 +394,7 @@ var updateSuccessUpload = function updateSuccessUpload(cacheKey) {
|
|
|
243
394
|
};
|
|
244
395
|
var updateErrorUpload = function updateErrorUpload(cacheKey, error) {
|
|
245
396
|
return {
|
|
246
|
-
type:
|
|
397
|
+
type: "UPDATE_ERROR_UPLOAD",
|
|
247
398
|
payload: {
|
|
248
399
|
cacheKey: cacheKey,
|
|
249
400
|
error: error
|
|
@@ -252,7 +403,7 @@ var updateErrorUpload = function updateErrorUpload(cacheKey, error) {
|
|
|
252
403
|
};
|
|
253
404
|
var updateIsAbortedUpload = function updateIsAbortedUpload(cacheKey, isAborted) {
|
|
254
405
|
return {
|
|
255
|
-
type:
|
|
406
|
+
type: "UPDATE_IS_ABORTED_UPLOAD",
|
|
256
407
|
payload: {
|
|
257
408
|
cacheKey: cacheKey,
|
|
258
409
|
isAborted: isAborted
|
|
@@ -261,202 +412,78 @@ var updateIsAbortedUpload = function updateIsAbortedUpload(cacheKey, isAborted)
|
|
|
261
412
|
};
|
|
262
413
|
var removeUploadInstance = function removeUploadInstance(cacheKey) {
|
|
263
414
|
return {
|
|
264
|
-
type:
|
|
415
|
+
type: "REMOVE_UPLOAD_INSTANCE",
|
|
265
416
|
payload: {
|
|
266
417
|
cacheKey: cacheKey
|
|
267
418
|
}
|
|
268
419
|
};
|
|
269
420
|
};
|
|
270
|
-
var
|
|
421
|
+
var updateDefaultOptions = function updateDefaultOptions(defaultOptions) {
|
|
271
422
|
return {
|
|
272
|
-
type:
|
|
273
|
-
payload:
|
|
274
|
-
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
var createOptionHandler = function createOptionHandler(handlers, _ref) {
|
|
278
|
-
var dispatch = _ref.dispatch,
|
|
279
|
-
internalDispatch = _ref.internalDispatch,
|
|
280
|
-
cacheKey = _ref.cacheKey;
|
|
281
|
-
|
|
282
|
-
var onSuccess = function onSuccess() {
|
|
283
|
-
if (cacheKey) {
|
|
284
|
-
dispatch(updateSuccessUpload(cacheKey));
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
if (!cacheKey) {
|
|
288
|
-
internalDispatch(function (internalTusState) {
|
|
289
|
-
return _objectSpread2(_objectSpread2({}, internalTusState), {}, {
|
|
290
|
-
isSuccess: true
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
if (handlers.onSuccess) {
|
|
296
|
-
handlers.onSuccess();
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
var onError = function onError(err) {
|
|
301
|
-
if (cacheKey) {
|
|
302
|
-
dispatch(updateErrorUpload(cacheKey, err));
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
if (!cacheKey) {
|
|
306
|
-
internalDispatch(function (internalTusState) {
|
|
307
|
-
return _objectSpread2(_objectSpread2({}, internalTusState), {}, {
|
|
308
|
-
error: err
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
if (handlers.onError) {
|
|
314
|
-
handlers.onError(err);
|
|
423
|
+
type: "UPDATE_DEFAULT_OPTIONS",
|
|
424
|
+
payload: {
|
|
425
|
+
defaultOptions: defaultOptions
|
|
315
426
|
}
|
|
316
427
|
};
|
|
317
|
-
|
|
318
|
-
return {
|
|
319
|
-
onSuccess: onSuccess,
|
|
320
|
-
onError: onError
|
|
321
|
-
};
|
|
322
428
|
};
|
|
323
|
-
var startOrResumeUpload = function startOrResumeUpload(upload) {
|
|
324
|
-
upload.findPreviousUploads().then(function (previousUploads) {
|
|
325
|
-
if (previousUploads.length) {
|
|
326
|
-
upload.resumeFromPreviousUpload(previousUploads[0]);
|
|
327
|
-
}
|
|
328
429
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
};
|
|
332
|
-
var createUpload = function createUpload(file, options, _ref2) {
|
|
333
|
-
var dispatch = _ref2.dispatch,
|
|
334
|
-
internalDispatch = _ref2.internalDispatch,
|
|
335
|
-
cacheKey = _ref2.cacheKey;
|
|
336
|
-
var upload = new tus.Upload(file, options);
|
|
337
|
-
var originalStart = upload.start.bind(upload);
|
|
338
|
-
var originalAbort = upload.abort.bind(upload);
|
|
430
|
+
var useTusStore = function useTusStore(cacheKey, baseOption) {
|
|
431
|
+
var _tusResult$upload;
|
|
339
432
|
|
|
340
|
-
var
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}
|
|
433
|
+
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
434
|
+
autoAbort = _useMergeTusOptions.autoAbort,
|
|
435
|
+
autoStart = _useMergeTusOptions.autoStart,
|
|
436
|
+
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
345
437
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
});
|
|
350
|
-
});
|
|
351
|
-
};
|
|
438
|
+
var _useTusClientState = useTusClientState(),
|
|
439
|
+
defaultOptions = _useTusClientState.defaultOptions,
|
|
440
|
+
uploads = _useTusClientState.uploads;
|
|
352
441
|
|
|
353
|
-
var
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
};
|
|
442
|
+
var tusClientDispatch = useTusClientDispatch();
|
|
443
|
+
var setUpload = react.useCallback(function (file) {
|
|
444
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
357
445
|
|
|
358
|
-
|
|
359
|
-
var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
360
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
361
|
-
while (1) {
|
|
362
|
-
switch (_context.prev = _context.next) {
|
|
363
|
-
case 0:
|
|
364
|
-
originalAbort();
|
|
365
|
-
dispatchIsAborted(true);
|
|
446
|
+
var targetOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions(file)), uploadOptions), options);
|
|
366
447
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
return _context.stop();
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}, _callee);
|
|
373
|
-
}));
|
|
448
|
+
var onSuccess = function onSuccess() {
|
|
449
|
+
var _targetOptions$onSucc;
|
|
374
450
|
|
|
375
|
-
|
|
376
|
-
|
|
451
|
+
tusClientDispatch(updateSuccessUpload(cacheKey));
|
|
452
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
377
453
|
};
|
|
378
|
-
}();
|
|
379
|
-
|
|
380
|
-
upload.start = start;
|
|
381
|
-
upload.abort = abort;
|
|
382
|
-
return upload;
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
var defaultUseTusOptionsValue = Object.freeze({
|
|
386
|
-
cacheKey: undefined,
|
|
387
|
-
autoAbort: true,
|
|
388
|
-
autoStart: false
|
|
389
|
-
});
|
|
390
|
-
var initialUseTusState = Object.freeze({
|
|
391
|
-
upload: undefined,
|
|
392
|
-
isSuccess: false,
|
|
393
|
-
isAborted: false,
|
|
394
|
-
error: undefined
|
|
395
|
-
});
|
|
396
|
-
var useTus = function useTus(useTusOptions) {
|
|
397
|
-
var _defaultUseTusOptions = _objectSpread2(_objectSpread2({}, defaultUseTusOptionsValue), useTusOptions || {}),
|
|
398
|
-
cacheKey = _defaultUseTusOptions.cacheKey,
|
|
399
|
-
autoAbort = _defaultUseTusOptions.autoAbort,
|
|
400
|
-
autoStart = _defaultUseTusOptions.autoStart;
|
|
401
454
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
internalTusState = _useState2[0],
|
|
405
|
-
setInternalTusState = _useState2[1];
|
|
455
|
+
var onError = function onError(error) {
|
|
456
|
+
var _targetOptions$onErro;
|
|
406
457
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
var tus = tusClientState.tusHandler.getTus;
|
|
410
|
-
var setUpload = react.useCallback(function (file) {
|
|
411
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
412
|
-
var dispatcher = {
|
|
413
|
-
cacheKey: cacheKey,
|
|
414
|
-
dispatch: tusClientDispatch,
|
|
415
|
-
internalDispatch: setInternalTusState
|
|
458
|
+
tusClientDispatch(updateErrorUpload(cacheKey, error));
|
|
459
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
416
460
|
};
|
|
417
461
|
|
|
418
|
-
var
|
|
419
|
-
|
|
420
|
-
var _createOptionHandler = createOptionHandler({
|
|
421
|
-
onError: targetOptions.onError,
|
|
422
|
-
onSuccess: targetOptions.onSuccess
|
|
423
|
-
}, dispatcher),
|
|
424
|
-
onSuccess = _createOptionHandler.onSuccess,
|
|
425
|
-
onError = _createOptionHandler.onError;
|
|
426
|
-
|
|
427
|
-
var uploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
462
|
+
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
428
463
|
onSuccess: onSuccess,
|
|
429
464
|
onError: onError
|
|
430
465
|
});
|
|
431
466
|
|
|
432
|
-
var
|
|
467
|
+
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
468
|
+
tusClientDispatch(updateIsAbortedUpload(cacheKey, isAborted));
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
472
|
+
upload = _createUpload.upload;
|
|
433
473
|
|
|
434
474
|
if (autoStart) {
|
|
435
475
|
startOrResumeUpload(upload);
|
|
436
476
|
}
|
|
437
477
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
return;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
setInternalTusState(_objectSpread2(_objectSpread2({}, initialUseTusState), {}, {
|
|
444
|
-
upload: upload
|
|
445
|
-
}));
|
|
446
|
-
}, [tusClientDispatch, cacheKey, tus, autoStart]);
|
|
478
|
+
tusClientDispatch(insertUploadInstance(cacheKey, upload));
|
|
479
|
+
}, [autoStart, cacheKey, defaultOptions, tusClientDispatch, uploadOptions]);
|
|
447
480
|
var targetTusState = react.useMemo(function () {
|
|
448
|
-
return
|
|
449
|
-
}, [cacheKey,
|
|
481
|
+
return uploads[cacheKey];
|
|
482
|
+
}, [cacheKey, uploads]);
|
|
450
483
|
var remove = react.useCallback(function () {
|
|
451
484
|
var _targetTusState$uploa;
|
|
452
485
|
|
|
453
486
|
targetTusState === null || targetTusState === void 0 ? void 0 : (_targetTusState$uploa = targetTusState.upload) === null || _targetTusState$uploa === void 0 ? void 0 : _targetTusState$uploa.abort();
|
|
454
|
-
|
|
455
|
-
if (!cacheKey) {
|
|
456
|
-
setInternalTusState(initialUseTusState);
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
487
|
tusClientDispatch(removeUploadInstance(cacheKey));
|
|
461
488
|
}, [targetTusState, tusClientDispatch, cacheKey]);
|
|
462
489
|
var tusResult = react.useMemo(function () {
|
|
@@ -471,80 +498,13 @@ var useTus = function useTus(useTusOptions) {
|
|
|
471
498
|
remove: remove
|
|
472
499
|
};
|
|
473
500
|
}, [targetTusState, setUpload, remove]);
|
|
474
|
-
|
|
475
|
-
var abortUploading = function () {
|
|
476
|
-
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
477
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
478
|
-
while (1) {
|
|
479
|
-
switch (_context.prev = _context.next) {
|
|
480
|
-
case 0:
|
|
481
|
-
if (tusResult.upload) {
|
|
482
|
-
_context.next = 2;
|
|
483
|
-
break;
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
return _context.abrupt("return");
|
|
487
|
-
|
|
488
|
-
case 2:
|
|
489
|
-
_context.next = 4;
|
|
490
|
-
return tusResult.upload.abort();
|
|
491
|
-
|
|
492
|
-
case 4:
|
|
493
|
-
case "end":
|
|
494
|
-
return _context.stop();
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
}, _callee);
|
|
498
|
-
}));
|
|
499
|
-
|
|
500
|
-
return function abortUploading() {
|
|
501
|
-
return _ref.apply(this, arguments);
|
|
502
|
-
};
|
|
503
|
-
}();
|
|
504
|
-
|
|
505
|
-
return function () {
|
|
506
|
-
if (!autoAbort) {
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
abortUploading();
|
|
511
|
-
};
|
|
512
|
-
}, [autoAbort, tusResult.upload]);
|
|
501
|
+
useAutoAbort(tusResult.upload, (_tusResult$upload = tusResult.upload) === null || _tusResult$upload === void 0 ? void 0 : _tusResult$upload.abort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
513
502
|
return tusResult;
|
|
514
503
|
};
|
|
515
504
|
|
|
516
|
-
var initialDefaultOptions = function initialDefaultOptions() {
|
|
517
|
-
return tus__namespace.defaultOptions;
|
|
518
|
-
};
|
|
519
|
-
var TusHandler = function () {
|
|
520
|
-
function TusHandler(tusConfigs) {
|
|
521
|
-
_classCallCheck(this, TusHandler);
|
|
522
|
-
|
|
523
|
-
var _ref = tusConfigs || {},
|
|
524
|
-
_ref$canStoreURLs = _ref.canStoreURLs,
|
|
525
|
-
canStoreURLs = _ref$canStoreURLs === void 0 ? tus__namespace.canStoreURLs : _ref$canStoreURLs,
|
|
526
|
-
_ref$defaultOptions = _ref.defaultOptions,
|
|
527
|
-
defaultOptions = _ref$defaultOptions === void 0 ? initialDefaultOptions : _ref$defaultOptions;
|
|
528
|
-
|
|
529
|
-
this.tus = _objectSpread2(_objectSpread2({}, tus__namespace), {}, {
|
|
530
|
-
canStoreURLs: canStoreURLs,
|
|
531
|
-
defaultOptions: defaultOptions
|
|
532
|
-
});
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
_createClass(TusHandler, [{
|
|
536
|
-
key: "getTus",
|
|
537
|
-
get: function get() {
|
|
538
|
-
return this.tus;
|
|
539
|
-
}
|
|
540
|
-
}]);
|
|
541
|
-
|
|
542
|
-
return TusHandler;
|
|
543
|
-
}();
|
|
544
|
-
|
|
545
505
|
var tusClientReducer = function tusClientReducer(state, actions) {
|
|
546
506
|
switch (actions.type) {
|
|
547
|
-
case
|
|
507
|
+
case "INSERT_UPLOAD_INSTANCE":
|
|
548
508
|
{
|
|
549
509
|
var _actions$payload = actions.payload,
|
|
550
510
|
_cacheKey = _actions$payload.cacheKey,
|
|
@@ -554,7 +514,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
554
514
|
});
|
|
555
515
|
}
|
|
556
516
|
|
|
557
|
-
case
|
|
517
|
+
case "UPDATE_SUCCESS_UPLOAD":
|
|
558
518
|
{
|
|
559
519
|
var _cacheKey2 = actions.payload.cacheKey;
|
|
560
520
|
var target = state.uploads[_cacheKey2];
|
|
@@ -570,7 +530,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
570
530
|
});
|
|
571
531
|
}
|
|
572
532
|
|
|
573
|
-
case
|
|
533
|
+
case "UPDATE_ERROR_UPLOAD":
|
|
574
534
|
{
|
|
575
535
|
var _actions$payload2 = actions.payload,
|
|
576
536
|
_cacheKey3 = _actions$payload2.cacheKey,
|
|
@@ -588,7 +548,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
588
548
|
});
|
|
589
549
|
}
|
|
590
550
|
|
|
591
|
-
case
|
|
551
|
+
case "UPDATE_IS_ABORTED_UPLOAD":
|
|
592
552
|
{
|
|
593
553
|
var _actions$payload3 = actions.payload,
|
|
594
554
|
_cacheKey4 = _actions$payload3.cacheKey,
|
|
@@ -606,7 +566,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
606
566
|
});
|
|
607
567
|
}
|
|
608
568
|
|
|
609
|
-
case
|
|
569
|
+
case "REMOVE_UPLOAD_INSTANCE":
|
|
610
570
|
{
|
|
611
571
|
var _cacheKey5 = actions.payload.cacheKey;
|
|
612
572
|
var newUploads = state.uploads;
|
|
@@ -616,24 +576,11 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
616
576
|
});
|
|
617
577
|
}
|
|
618
578
|
|
|
619
|
-
case
|
|
579
|
+
case "UPDATE_DEFAULT_OPTIONS":
|
|
620
580
|
{
|
|
621
|
-
|
|
622
|
-
tusHandler: new TusHandler(),
|
|
623
|
-
uploads: {}
|
|
624
|
-
};
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
case 'UPDATE_TUS_HANDLER_OPTIONS':
|
|
628
|
-
{
|
|
629
|
-
var _actions$payload4 = actions.payload,
|
|
630
|
-
canStoreURLs = _actions$payload4.canStoreURLs,
|
|
631
|
-
defaultOptions = _actions$payload4.defaultOptions;
|
|
581
|
+
var defaultOptions = actions.payload.defaultOptions;
|
|
632
582
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
633
|
-
|
|
634
|
-
canStoreURLs: canStoreURLs,
|
|
635
|
-
defaultOptions: defaultOptions
|
|
636
|
-
})
|
|
583
|
+
defaultOptions: defaultOptions
|
|
637
584
|
});
|
|
638
585
|
}
|
|
639
586
|
|
|
@@ -643,62 +590,37 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
643
590
|
};
|
|
644
591
|
var tusClientInitialState = {
|
|
645
592
|
uploads: {},
|
|
646
|
-
|
|
593
|
+
defaultOptions: undefined
|
|
647
594
|
};
|
|
648
595
|
|
|
649
|
-
var
|
|
650
|
-
var
|
|
651
|
-
_ref$defaultOptions = _ref.defaultOptions,
|
|
652
|
-
defaultOptions = _ref$defaultOptions === void 0 ? initialDefaultOptions : _ref$defaultOptions,
|
|
596
|
+
var TusClientProvider = function TusClientProvider(_ref) {
|
|
597
|
+
var defaultOptions = _ref.defaultOptions,
|
|
653
598
|
children = _ref.children;
|
|
654
599
|
|
|
655
|
-
var
|
|
656
|
-
|
|
600
|
+
var _useReducer = react.useReducer(tusClientReducer, _objectSpread2(_objectSpread2({}, tusClientInitialState), {}, {
|
|
601
|
+
defaultOptions: defaultOptions
|
|
602
|
+
})),
|
|
603
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
604
|
+
tusClientState = _useReducer2[0],
|
|
605
|
+
tusClientDispatch = _useReducer2[1];
|
|
657
606
|
|
|
658
|
-
var tus = tusHandler.getTus;
|
|
659
|
-
var tusClientDispatch = useTusClientDispatch();
|
|
660
607
|
react.useEffect(function () {
|
|
661
|
-
if (
|
|
608
|
+
if (tusJsClient.isSupported || process.env.NODE_ENV === "production") {
|
|
662
609
|
return;
|
|
663
610
|
}
|
|
664
611
|
|
|
665
612
|
console.error(ERROR_MESSAGES.tusIsNotSupported);
|
|
666
|
-
}, [
|
|
613
|
+
}, []);
|
|
667
614
|
react.useEffect(function () {
|
|
668
|
-
if (
|
|
615
|
+
if (tusClientState.defaultOptions === defaultOptions) {
|
|
669
616
|
return;
|
|
670
617
|
}
|
|
671
618
|
|
|
672
|
-
tusClientDispatch(
|
|
673
|
-
|
|
674
|
-
defaultOptions: defaultOptions
|
|
675
|
-
}));
|
|
676
|
-
}, [tusClientDispatch, canStoreURLs, defaultOptions, tus.canStoreURLs, tus.defaultOptions]);
|
|
677
|
-
return react.createElement(react.Fragment, {}, children);
|
|
678
|
-
};
|
|
679
|
-
|
|
680
|
-
var TusClientProvider = function TusClientProvider(_ref) {
|
|
681
|
-
var canStoreURLs = _ref.canStoreURLs,
|
|
682
|
-
defaultOptions = _ref.defaultOptions,
|
|
683
|
-
children = _ref.children;
|
|
684
|
-
|
|
685
|
-
var _useReducer = react.useReducer(tusClientReducer, _objectSpread2(_objectSpread2({}, tusClientInitialState), {}, {
|
|
686
|
-
tusHandler: new TusHandler({
|
|
687
|
-
canStoreURLs: canStoreURLs,
|
|
688
|
-
defaultOptions: defaultOptions
|
|
689
|
-
})
|
|
690
|
-
})),
|
|
691
|
-
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
692
|
-
tusClientState = _useReducer2[0],
|
|
693
|
-
tusClientDispatch = _useReducer2[1];
|
|
694
|
-
|
|
695
|
-
var tusControllerElement = react.createElement(TusController, {
|
|
696
|
-
canStoreURLs: canStoreURLs,
|
|
697
|
-
defaultOptions: defaultOptions
|
|
698
|
-
}, children);
|
|
619
|
+
tusClientDispatch(updateDefaultOptions(defaultOptions));
|
|
620
|
+
}, [defaultOptions, tusClientState.defaultOptions]);
|
|
699
621
|
var tusClientDispatchContextProviderElement = react.createElement(TusClientDispatchContext.Provider, {
|
|
700
622
|
value: tusClientDispatch
|
|
701
|
-
},
|
|
623
|
+
}, children);
|
|
702
624
|
return react.createElement(TusClientStateContext.Provider, {
|
|
703
625
|
value: tusClientState
|
|
704
626
|
}, tusClientDispatchContextProviderElement);
|
|
@@ -706,3 +628,4 @@ var TusClientProvider = function TusClientProvider(_ref) {
|
|
|
706
628
|
|
|
707
629
|
exports.TusClientProvider = TusClientProvider;
|
|
708
630
|
exports.useTus = useTus;
|
|
631
|
+
exports.useTusStore = useTusStore;
|