partial-uploader 0.0.3 → 0.0.5
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.js +74 -60
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
12
|
+
var _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -48,7 +48,7 @@ var uploadWithPartialFile = function (url, file, headers, chunkSize) {
|
|
|
48
48
|
_a.sent();
|
|
49
49
|
id = generateGuid();
|
|
50
50
|
if (!(file.size <= chunkSize)) return [3 /*break*/, 3];
|
|
51
|
-
return [4 /*yield*/, upload(url, file, 1, file.size, file.name, id,
|
|
51
|
+
return [4 /*yield*/, upload(url, file, 1, file.size, file.name, id, 0, headers)];
|
|
52
52
|
case 2:
|
|
53
53
|
res = _a.sent();
|
|
54
54
|
if (!res)
|
|
@@ -56,14 +56,14 @@ var uploadWithPartialFile = function (url, file, headers, chunkSize) {
|
|
|
56
56
|
return [3 /*break*/, 9];
|
|
57
57
|
case 3:
|
|
58
58
|
chunks = splitFileIntoChunks(file, chunkSize);
|
|
59
|
-
i =
|
|
59
|
+
i = 0;
|
|
60
60
|
_a.label = 4;
|
|
61
61
|
case 4:
|
|
62
|
-
if (!(i < chunks.length
|
|
63
|
-
chunk = chunks[i
|
|
62
|
+
if (!(i < chunks.length)) return [3 /*break*/, 8];
|
|
63
|
+
chunk = chunks[i];
|
|
64
64
|
if (!chunk)
|
|
65
65
|
return [2 /*return*/, { success: false, id: id, message: "chunk is undefined" }];
|
|
66
|
-
return [4 /*yield*/, upload(url,
|
|
66
|
+
return [4 /*yield*/, upload(url, chunk, chunks.length, file.size, file.name, id, i, headers)];
|
|
67
67
|
case 5:
|
|
68
68
|
res = _a.sent();
|
|
69
69
|
if (!res)
|
|
@@ -86,61 +86,75 @@ var uploadWithPartialFile = function (url, file, headers, chunkSize) {
|
|
|
86
86
|
});
|
|
87
87
|
};
|
|
88
88
|
exports.uploadWithPartialFile = uploadWithPartialFile;
|
|
89
|
-
var upload = function (url, chunk, chunksLength, fileSize, filename, fileGuid, index, headers) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
var upload = function (url, chunk, chunksLength, fileSize, filename, fileGuid, index, headers) {
|
|
90
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
+
var formData, isDone;
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
formData = new FormData();
|
|
94
|
+
formData.append('file', chunk, "".concat(filename, "_chunk_").concat(index));
|
|
95
|
+
formData.append('fileGuid', fileGuid);
|
|
96
|
+
isDone = chunksLength === index + 1;
|
|
97
|
+
formData.append('isDone', isDone.toString());
|
|
98
|
+
formData.append('totalSize', fileSize.toString());
|
|
99
|
+
formData.append('totalChunks', chunksLength.toString());
|
|
100
|
+
formData.append('filename', filename);
|
|
101
|
+
return [2 /*return*/, getRes(url, formData, headers)];
|
|
102
|
+
});
|
|
101
103
|
});
|
|
102
|
-
}
|
|
103
|
-
var getRes = function (url, formData, headers) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
104
|
+
};
|
|
105
|
+
var getRes = function (url, formData, headers) {
|
|
106
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
107
|
+
var res, e_1, res;
|
|
108
|
+
return __generator(this, function (_a) {
|
|
109
|
+
switch (_a.label) {
|
|
110
|
+
case 0:
|
|
111
|
+
_a.trys.push([0, 2, , 5]);
|
|
112
|
+
return [4 /*yield*/, uploadSubscribe(url, formData, headers)];
|
|
113
|
+
case 1:
|
|
114
|
+
res = _a.sent();
|
|
115
|
+
if (res.status === 406 || res.status === 401)
|
|
116
|
+
return [2 /*return*/, false];
|
|
117
|
+
return [3 /*break*/, 5];
|
|
118
|
+
case 2:
|
|
119
|
+
e_1 = _a.sent();
|
|
120
|
+
return [4 /*yield*/, delay(500)];
|
|
121
|
+
case 3:
|
|
122
|
+
_a.sent();
|
|
123
|
+
return [4 /*yield*/, uploadSubscribe(url, formData, headers)];
|
|
124
|
+
case 4:
|
|
125
|
+
res = _a.sent();
|
|
126
|
+
if (!res.ok)
|
|
127
|
+
return [2 /*return*/, false];
|
|
128
|
+
return [3 /*break*/, 5];
|
|
129
|
+
case 5:
|
|
130
|
+
;
|
|
131
|
+
return [2 /*return*/, true];
|
|
132
|
+
}
|
|
133
|
+
});
|
|
130
134
|
});
|
|
131
|
-
}
|
|
132
|
-
var delay = function (ms) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
}
|
|
135
|
+
};
|
|
136
|
+
var delay = function (ms) {
|
|
137
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
138
|
+
return __generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0: return [4 /*yield*/, new Promise(function (f) { return setTimeout(f, ms); })];
|
|
141
|
+
case 1:
|
|
142
|
+
_a.sent();
|
|
143
|
+
return [2 /*return*/];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
var uploadSubscribe = function (url, formData, headers) {
|
|
149
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
150
|
+
return __generator(this, function (_a) {
|
|
151
|
+
switch (_a.label) {
|
|
152
|
+
case 0: return [4 /*yield*/, fetch(url, { method: 'POST', body: formData, headers: headers ? headers : {} })];
|
|
153
|
+
case 1: return [2 /*return*/, (_a.sent())];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
};
|
|
144
158
|
var splitFileIntoChunks = function (file, chunkSize) {
|
|
145
159
|
var chunks = [];
|
|
146
160
|
var start = 0;
|