files.com 1.0.212 → 1.0.214
Sign up to get free protection for your applications and to get access to all the features.
- package/_VERSION +1 -1
- package/docs/Errors.md +1 -0
- package/lib/Api.js +9 -3
- package/lib/Errors.js +728 -708
- package/lib/Files.js +7 -0
- package/lib/models/File.js +35 -33
- package/package.json +1 -1
- package/src/Api.js +10 -3
- package/src/Errors.js +1 -0
- package/src/Files.js +4 -0
- package/src/models/File.js +20 -20
- package/test/src/index.js +2 -0
package/lib/Files.js
CHANGED
@@ -17,6 +17,7 @@ var endpointPrefix = '/api/rest/v1';
|
|
17
17
|
var apiKey;
|
18
18
|
var baseUrl = 'https://app.files.com';
|
19
19
|
var sessionId = null;
|
20
|
+
var userAgent = 'Files.com JavaScript SDK v1.0';
|
20
21
|
var logLevel = _Logger.LogLevel.INFO;
|
21
22
|
var debugRequest = false;
|
22
23
|
var debugResponseHeaders = false;
|
@@ -28,6 +29,12 @@ var autoPaginate = true;
|
|
28
29
|
var Files = /*#__PURE__*/(0, _createClass2.default)(function Files() {
|
29
30
|
(0, _classCallCheck2.default)(this, Files);
|
30
31
|
});
|
32
|
+
(0, _defineProperty2.default)(Files, "setUserAgent", function (value) {
|
33
|
+
return userAgent = value;
|
34
|
+
});
|
35
|
+
(0, _defineProperty2.default)(Files, "getUserAgent", function () {
|
36
|
+
return userAgent;
|
37
|
+
});
|
31
38
|
(0, _defineProperty2.default)(Files, "setApiKey", function (value) {
|
32
39
|
return apiKey = value;
|
33
40
|
});
|
package/lib/models/File.js
CHANGED
@@ -50,7 +50,9 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
50
50
|
var _this = this;
|
51
51
|
|
52
52
|
var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
53
|
-
|
53
|
+
|
54
|
+
var _options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
55
|
+
|
54
56
|
(0, _classCallCheck2.default)(this, File);
|
55
57
|
(0, _defineProperty2.default)(this, "attributes", {});
|
56
58
|
(0, _defineProperty2.default)(this, "options", {});
|
@@ -140,7 +142,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
140
142
|
};
|
141
143
|
}());
|
142
144
|
(0, _defineProperty2.default)(this, "copyTo", /*#__PURE__*/function () {
|
143
|
-
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(destinationFilePath) {
|
145
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(destinationFilePath, options) {
|
144
146
|
var params;
|
145
147
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
146
148
|
while (1) {
|
@@ -149,7 +151,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
149
151
|
params = {
|
150
152
|
destination: destinationFilePath
|
151
153
|
};
|
152
|
-
return _context3.abrupt("return", _Api.default.sendRequest("/file_actions/copy/".concat(encodeURIComponent(_this.path)), 'POST', params));
|
154
|
+
return _context3.abrupt("return", _Api.default.sendRequest("/file_actions/copy/".concat(encodeURIComponent(_this.path)), 'POST', params, options));
|
153
155
|
|
154
156
|
case 2:
|
155
157
|
case "end":
|
@@ -159,12 +161,12 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
159
161
|
}, _callee3);
|
160
162
|
}));
|
161
163
|
|
162
|
-
return function (_x3) {
|
164
|
+
return function (_x3, _x4) {
|
163
165
|
return _ref3.apply(this, arguments);
|
164
166
|
};
|
165
167
|
}());
|
166
168
|
(0, _defineProperty2.default)(this, "moveTo", /*#__PURE__*/function () {
|
167
|
-
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(destinationFilePath) {
|
169
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(destinationFilePath, options) {
|
168
170
|
var params;
|
169
171
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
170
172
|
while (1) {
|
@@ -173,7 +175,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
173
175
|
params = {
|
174
176
|
destination: destinationFilePath
|
175
177
|
};
|
176
|
-
return _context4.abrupt("return", _Api.default.sendRequest("/file_actions/move/".concat(encodeURIComponent(_this.path)), 'POST', params));
|
178
|
+
return _context4.abrupt("return", _Api.default.sendRequest("/file_actions/move/".concat(encodeURIComponent(_this.path)), 'POST', params, options));
|
177
179
|
|
178
180
|
case 2:
|
179
181
|
case "end":
|
@@ -183,7 +185,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
183
185
|
}, _callee4);
|
184
186
|
}));
|
185
187
|
|
186
|
-
return function (
|
188
|
+
return function (_x5, _x6) {
|
187
189
|
return _ref4.apply(this, arguments);
|
188
190
|
};
|
189
191
|
}());
|
@@ -897,10 +899,10 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
897
899
|
writable: false
|
898
900
|
});
|
899
901
|
});
|
900
|
-
this.options = _objectSpread({},
|
902
|
+
this.options = _objectSpread({}, _options);
|
901
903
|
});
|
902
904
|
(0, _defineProperty2.default)(File, "_openUpload", /*#__PURE__*/function () {
|
903
|
-
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(path, paramsRaw) {
|
905
|
+
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(path, paramsRaw, options) {
|
904
906
|
var params, response, partData;
|
905
907
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
906
908
|
while (1) {
|
@@ -910,7 +912,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
910
912
|
action: 'put'
|
911
913
|
});
|
912
914
|
_context11.next = 3;
|
913
|
-
return _Api.default.sendRequest("/files/".concat(encodeURIComponent(path)), 'POST', params);
|
915
|
+
return _Api.default.sendRequest("/files/".concat(encodeURIComponent(path)), 'POST', params, options);
|
914
916
|
|
915
917
|
case 3:
|
916
918
|
response = _context11.sent;
|
@@ -937,12 +939,12 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
937
939
|
}, _callee11);
|
938
940
|
}));
|
939
941
|
|
940
|
-
return function (
|
942
|
+
return function (_x7, _x8, _x9) {
|
941
943
|
return _ref13.apply(this, arguments);
|
942
944
|
};
|
943
945
|
}());
|
944
946
|
(0, _defineProperty2.default)(File, "_continueUpload", /*#__PURE__*/function () {
|
945
|
-
var _ref14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(path, partNumber, firstFileUploadPart) {
|
947
|
+
var _ref14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(path, partNumber, firstFileUploadPart, options) {
|
946
948
|
var params, response, partData;
|
947
949
|
return _regenerator.default.wrap(function _callee12$(_context12) {
|
948
950
|
while (1) {
|
@@ -954,7 +956,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
954
956
|
ref: firstFileUploadPart.ref
|
955
957
|
};
|
956
958
|
_context12.next = 3;
|
957
|
-
return _Api.default.sendRequest("/files/".concat(encodeURIComponent(path)), 'POST', params);
|
959
|
+
return _Api.default.sendRequest("/files/".concat(encodeURIComponent(path)), 'POST', params, options);
|
958
960
|
|
959
961
|
case 3:
|
960
962
|
response = _context12.sent;
|
@@ -981,12 +983,12 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
981
983
|
}, _callee12);
|
982
984
|
}));
|
983
985
|
|
984
|
-
return function (
|
986
|
+
return function (_x10, _x11, _x12, _x13) {
|
985
987
|
return _ref14.apply(this, arguments);
|
986
988
|
};
|
987
989
|
}());
|
988
990
|
(0, _defineProperty2.default)(File, "_completeUpload", /*#__PURE__*/function () {
|
989
|
-
var _ref15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(firstFileUploadPart) {
|
991
|
+
var _ref15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(firstFileUploadPart, options) {
|
990
992
|
var params;
|
991
993
|
return _regenerator.default.wrap(function _callee13$(_context13) {
|
992
994
|
while (1) {
|
@@ -996,7 +998,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
996
998
|
action: 'end',
|
997
999
|
ref: firstFileUploadPart.ref
|
998
1000
|
};
|
999
|
-
return _context13.abrupt("return", _Api.default.sendRequest("/files/".concat(encodeURIComponent(firstFileUploadPart.path)), 'POST', params));
|
1001
|
+
return _context13.abrupt("return", _Api.default.sendRequest("/files/".concat(encodeURIComponent(firstFileUploadPart.path)), 'POST', params, options));
|
1000
1002
|
|
1001
1003
|
case 2:
|
1002
1004
|
case "end":
|
@@ -1006,19 +1008,19 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1006
1008
|
}, _callee13);
|
1007
1009
|
}));
|
1008
1010
|
|
1009
|
-
return function (
|
1011
|
+
return function (_x14, _x15) {
|
1010
1012
|
return _ref15.apply(this, arguments);
|
1011
1013
|
};
|
1012
1014
|
}());
|
1013
1015
|
(0, _defineProperty2.default)(File, "uploadStream", /*#__PURE__*/function () {
|
1014
|
-
var _ref16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(destinationPath, readableStream, params) {
|
1016
|
+
var _ref16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(destinationPath, readableStream, params, options) {
|
1015
1017
|
var firstFileUploadPart, file;
|
1016
1018
|
return _regenerator.default.wrap(function _callee16$(_context16) {
|
1017
1019
|
while (1) {
|
1018
1020
|
switch (_context16.prev = _context16.next) {
|
1019
1021
|
case 0:
|
1020
1022
|
_context16.next = 2;
|
1021
|
-
return File._openUpload(destinationPath, params);
|
1023
|
+
return File._openUpload(destinationPath, params, options);
|
1022
1024
|
|
1023
1025
|
case 2:
|
1024
1026
|
firstFileUploadPart = _context16.sent;
|
@@ -1064,7 +1066,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1064
1066
|
chunks.push(lastChunkForPart);
|
1065
1067
|
buffer = _safeBuffer.Buffer.concat(chunks);
|
1066
1068
|
_context14.next = 12;
|
1067
|
-
return File._continueUpload(destinationPath, ++part, firstFileUploadPart);
|
1069
|
+
return File._continueUpload(destinationPath, ++part, firstFileUploadPart, options);
|
1068
1070
|
|
1069
1071
|
case 12:
|
1070
1072
|
nextFileUploadPart = _context14.sent;
|
@@ -1096,7 +1098,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1096
1098
|
}, _callee14, null, [[0, 23]]);
|
1097
1099
|
}));
|
1098
1100
|
|
1099
|
-
return function (
|
1101
|
+
return function (_x20) {
|
1100
1102
|
return _ref17.apply(this, arguments);
|
1101
1103
|
};
|
1102
1104
|
}());
|
@@ -1115,7 +1117,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1115
1117
|
|
1116
1118
|
buffer = _safeBuffer.Buffer.concat(chunks);
|
1117
1119
|
_context15.next = 5;
|
1118
|
-
return File._continueUpload(destinationPath, ++part, firstFileUploadPart);
|
1120
|
+
return File._continueUpload(destinationPath, ++part, firstFileUploadPart, options);
|
1119
1121
|
|
1120
1122
|
case 5:
|
1121
1123
|
nextFileUploadPart = _context15.sent;
|
@@ -1127,11 +1129,11 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1127
1129
|
|
1128
1130
|
case 9:
|
1129
1131
|
_context15.next = 11;
|
1130
|
-
return File._completeUpload(firstFileUploadPart);
|
1132
|
+
return File._completeUpload(firstFileUploadPart, options);
|
1131
1133
|
|
1132
1134
|
case 11:
|
1133
1135
|
response = _context15.sent;
|
1134
|
-
createdFile = new File(response.data);
|
1136
|
+
createdFile = new File(response.data, options);
|
1135
1137
|
resolve(createdFile);
|
1136
1138
|
_context15.next = 19;
|
1137
1139
|
break;
|
@@ -1167,12 +1169,12 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1167
1169
|
}, _callee16, null, [[5, 12]]);
|
1168
1170
|
}));
|
1169
1171
|
|
1170
|
-
return function (
|
1172
|
+
return function (_x16, _x17, _x18, _x19) {
|
1171
1173
|
return _ref16.apply(this, arguments);
|
1172
1174
|
};
|
1173
1175
|
}());
|
1174
1176
|
(0, _defineProperty2.default)(File, "uploadData", /*#__PURE__*/function () {
|
1175
|
-
var _ref19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(destinationPath, data, params) {
|
1177
|
+
var _ref19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(destinationPath, data, params, options) {
|
1176
1178
|
return _regenerator.default.wrap(function _callee17$(_context17) {
|
1177
1179
|
while (1) {
|
1178
1180
|
switch (_context17.prev = _context17.next) {
|
@@ -1185,7 +1187,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1185
1187
|
throw new errors.MissingParameterError('Upload data was not provided');
|
1186
1188
|
|
1187
1189
|
case 2:
|
1188
|
-
return _context17.abrupt("return", File.uploadStream(destinationPath, _readableStream.default.from(data), params));
|
1190
|
+
return _context17.abrupt("return", File.uploadStream(destinationPath, _readableStream.default.from(data), params, options));
|
1189
1191
|
|
1190
1192
|
case 3:
|
1191
1193
|
case "end":
|
@@ -1195,12 +1197,12 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1195
1197
|
}, _callee17);
|
1196
1198
|
}));
|
1197
1199
|
|
1198
|
-
return function (
|
1200
|
+
return function (_x21, _x22, _x23, _x24) {
|
1199
1201
|
return _ref19.apply(this, arguments);
|
1200
1202
|
};
|
1201
1203
|
}());
|
1202
1204
|
(0, _defineProperty2.default)(File, "uploadFile", /*#__PURE__*/function () {
|
1203
|
-
var _ref20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(destinationPath, sourceFilePath, params) {
|
1205
|
+
var _ref20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(destinationPath, sourceFilePath, params, options) {
|
1204
1206
|
var _require3, openDiskFileReadStream, stream;
|
1205
1207
|
|
1206
1208
|
return _regenerator.default.wrap(function _callee18$(_context18) {
|
@@ -1217,7 +1219,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1217
1219
|
case 2:
|
1218
1220
|
_require3 = require('../isomorphic/File.node.js'), openDiskFileReadStream = _require3.openDiskFileReadStream;
|
1219
1221
|
stream = openDiskFileReadStream(sourceFilePath);
|
1220
|
-
return _context18.abrupt("return", File.uploadStream(destinationPath, stream, params));
|
1222
|
+
return _context18.abrupt("return", File.uploadStream(destinationPath, stream, params, options));
|
1221
1223
|
|
1222
1224
|
case 5:
|
1223
1225
|
case "end":
|
@@ -1227,7 +1229,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1227
1229
|
}, _callee18);
|
1228
1230
|
}));
|
1229
1231
|
|
1230
|
-
return function (
|
1232
|
+
return function (_x25, _x26, _x27, _x28) {
|
1231
1233
|
return _ref20.apply(this, arguments);
|
1232
1234
|
};
|
1233
1235
|
}());
|
@@ -1357,7 +1359,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1357
1359
|
}, _callee19);
|
1358
1360
|
}));
|
1359
1361
|
|
1360
|
-
return function (
|
1362
|
+
return function (_x29) {
|
1361
1363
|
return _ref21.apply(this, arguments);
|
1362
1364
|
};
|
1363
1365
|
}());
|
@@ -1423,7 +1425,7 @@ var File = /*#__PURE__*/(0, _createClass2.default)(function File() {
|
|
1423
1425
|
}, _callee20);
|
1424
1426
|
}));
|
1425
1427
|
|
1426
|
-
return function (
|
1428
|
+
return function (_x30) {
|
1427
1429
|
return _ref22.apply(this, arguments);
|
1428
1430
|
};
|
1429
1431
|
}());
|
package/package.json
CHANGED
package/src/Api.js
CHANGED
@@ -37,7 +37,14 @@ class Api {
|
|
37
37
|
: `${baseUrl}${Files.getEndpointPrefix()}${path}`
|
38
38
|
|
39
39
|
Logger.debug(`Sending request: ${verb} ${url}`)
|
40
|
-
|
40
|
+
|
41
|
+
Logger.debug('Sending options:', {
|
42
|
+
...options,
|
43
|
+
headers: {
|
44
|
+
...options.headers,
|
45
|
+
'X-FilesAPI-Key': '<redacted>',
|
46
|
+
},
|
47
|
+
})
|
41
48
|
|
42
49
|
Api._configureAutoRetry()
|
43
50
|
|
@@ -78,7 +85,7 @@ class Api {
|
|
78
85
|
}
|
79
86
|
|
80
87
|
static _autoPaginate = async (path, verb, params, options, response, metadata) => {
|
81
|
-
if (Files.getAutoPaginate()) {
|
88
|
+
if (options.autoPaginate ?? Files.getAutoPaginate()) {
|
82
89
|
const nextCursor = response?.headers?.['x-files-cursor']
|
83
90
|
|
84
91
|
const {
|
@@ -119,7 +126,7 @@ class Api {
|
|
119
126
|
const headers = {
|
120
127
|
Accept: 'application/json',
|
121
128
|
...options.headers,
|
122
|
-
'User-Agent':
|
129
|
+
'User-Agent': Files.getUserAgent(),
|
123
130
|
}
|
124
131
|
|
125
132
|
const isExternal = /^[a-zA-Z]+:\/\//.test(path)
|
package/src/Errors.js
CHANGED
@@ -94,6 +94,7 @@ export class BadRequest_DestinationSameError extends BadRequestError { construct
|
|
94
94
|
export class BadRequest_FolderMustNotBeAFileError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_FolderMustNotBeAFileError' } } errorClasses.BadRequest_FolderMustNotBeAFileError = BadRequest_FolderMustNotBeAFileError
|
95
95
|
export class BadRequest_InvalidBodyError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidBodyError' } } errorClasses.BadRequest_InvalidBodyError = BadRequest_InvalidBodyError
|
96
96
|
export class BadRequest_InvalidCursorError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidCursorError' } } errorClasses.BadRequest_InvalidCursorError = BadRequest_InvalidCursorError
|
97
|
+
export class BadRequest_InvalidCursorTypeForSortError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidCursorTypeForSortError' } } errorClasses.BadRequest_InvalidCursorTypeForSortError = BadRequest_InvalidCursorTypeForSortError
|
97
98
|
export class BadRequest_InvalidEtagsError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidEtagsError' } } errorClasses.BadRequest_InvalidEtagsError = BadRequest_InvalidEtagsError
|
98
99
|
export class BadRequest_InvalidFilterCombinationError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidFilterCombinationError' } } errorClasses.BadRequest_InvalidFilterCombinationError = BadRequest_InvalidFilterCombinationError
|
99
100
|
export class BadRequest_InvalidFilterFieldError extends BadRequestError { constructor(message, code) { super(message, code); this.name = 'BadRequest_InvalidFilterFieldError' } } errorClasses.BadRequest_InvalidFilterFieldError = BadRequest_InvalidFilterFieldError
|
package/src/Files.js
CHANGED
@@ -5,6 +5,7 @@ const endpointPrefix = '/api/rest/v1'
|
|
5
5
|
let apiKey
|
6
6
|
let baseUrl = 'https://app.files.com'
|
7
7
|
let sessionId = null
|
8
|
+
let userAgent = 'Files.com JavaScript SDK v1.0'
|
8
9
|
|
9
10
|
let logLevel = LogLevel.INFO
|
10
11
|
let debugRequest = false
|
@@ -17,6 +18,9 @@ let networkTimeout = 30.0
|
|
17
18
|
let autoPaginate = true
|
18
19
|
|
19
20
|
class Files {
|
21
|
+
static setUserAgent = value => userAgent = value
|
22
|
+
static getUserAgent = () => userAgent
|
23
|
+
|
20
24
|
static setApiKey = value => apiKey = value
|
21
25
|
static getApiKey = () => apiKey
|
22
26
|
|
package/src/models/File.js
CHANGED
@@ -28,9 +28,9 @@ class File {
|
|
28
28
|
}
|
29
29
|
|
30
30
|
isLoaded = () => !!this.attributes.path
|
31
|
-
static _openUpload = async (path, paramsRaw) => {
|
31
|
+
static _openUpload = async (path, paramsRaw, options) => {
|
32
32
|
const params = { ...paramsRaw, action: 'put' }
|
33
|
-
const response = await Api.sendRequest(`/files/${encodeURIComponent(path)}`, 'POST', params)
|
33
|
+
const response = await Api.sendRequest(`/files/${encodeURIComponent(path)}`, 'POST', params, options)
|
34
34
|
|
35
35
|
if (!response) {
|
36
36
|
return null
|
@@ -45,14 +45,14 @@ class File {
|
|
45
45
|
return new FileUploadPart(partData)
|
46
46
|
}
|
47
47
|
|
48
|
-
static _continueUpload = async (path, partNumber, firstFileUploadPart) => {
|
48
|
+
static _continueUpload = async (path, partNumber, firstFileUploadPart, options) => {
|
49
49
|
const params = {
|
50
50
|
action: 'put',
|
51
51
|
part: partNumber,
|
52
52
|
ref: firstFileUploadPart.ref,
|
53
53
|
}
|
54
54
|
|
55
|
-
const response = await Api.sendRequest(`/files/${encodeURIComponent(path)}`, 'POST', params)
|
55
|
+
const response = await Api.sendRequest(`/files/${encodeURIComponent(path)}`, 'POST', params, options)
|
56
56
|
|
57
57
|
if (!response) {
|
58
58
|
return null
|
@@ -67,20 +67,20 @@ class File {
|
|
67
67
|
return new FileUploadPart(partData)
|
68
68
|
}
|
69
69
|
|
70
|
-
static _completeUpload = async firstFileUploadPart => {
|
70
|
+
static _completeUpload = async (firstFileUploadPart, options) => {
|
71
71
|
const params = {
|
72
72
|
action: 'end',
|
73
73
|
ref: firstFileUploadPart.ref,
|
74
74
|
}
|
75
75
|
|
76
|
-
return Api.sendRequest(`/files/${encodeURIComponent(firstFileUploadPart.path)}`, 'POST', params)
|
76
|
+
return Api.sendRequest(`/files/${encodeURIComponent(firstFileUploadPart.path)}`, 'POST', params, options)
|
77
77
|
}
|
78
78
|
|
79
79
|
/**
|
80
80
|
* @note see File.copy() for list of supported params
|
81
81
|
*/
|
82
|
-
static uploadStream = async (destinationPath, readableStream, params) => {
|
83
|
-
const firstFileUploadPart = await File._openUpload(destinationPath, params)
|
82
|
+
static uploadStream = async (destinationPath, readableStream, params, options) => {
|
83
|
+
const firstFileUploadPart = await File._openUpload(destinationPath, params, options)
|
84
84
|
|
85
85
|
if (!firstFileUploadPart) {
|
86
86
|
return
|
@@ -111,7 +111,7 @@ class File {
|
|
111
111
|
chunks.push(lastChunkForPart)
|
112
112
|
|
113
113
|
const buffer = Buffer.concat(chunks)
|
114
|
-
const nextFileUploadPart = await File._continueUpload(destinationPath, ++part, firstFileUploadPart)
|
114
|
+
const nextFileUploadPart = await File._continueUpload(destinationPath, ++part, firstFileUploadPart, options)
|
115
115
|
|
116
116
|
concurrentUploads.push(Api.sendFilePart(nextFileUploadPart.upload_uri, 'PUT', buffer))
|
117
117
|
|
@@ -132,15 +132,15 @@ class File {
|
|
132
132
|
try {
|
133
133
|
if (chunks.length > 0) {
|
134
134
|
const buffer = Buffer.concat(chunks)
|
135
|
-
const nextFileUploadPart = await File._continueUpload(destinationPath, ++part, firstFileUploadPart)
|
135
|
+
const nextFileUploadPart = await File._continueUpload(destinationPath, ++part, firstFileUploadPart, options)
|
136
136
|
|
137
137
|
concurrentUploads.push(Api.sendFilePart(nextFileUploadPart.upload_uri, 'PUT', buffer))
|
138
138
|
}
|
139
139
|
|
140
140
|
await Promise.all(concurrentUploads)
|
141
141
|
|
142
|
-
const response = await File._completeUpload(firstFileUploadPart)
|
143
|
-
const createdFile = new File(response.data)
|
142
|
+
const response = await File._completeUpload(firstFileUploadPart, options)
|
143
|
+
const createdFile = new File(response.data, options)
|
144
144
|
|
145
145
|
resolve(createdFile)
|
146
146
|
} catch (error) {
|
@@ -159,18 +159,18 @@ class File {
|
|
159
159
|
* data - string, Buffer, Stream, any object implementing Symbol.iterator or Symbol.asyncIterator
|
160
160
|
* @note see File.copy() for list of supported params
|
161
161
|
*/
|
162
|
-
static uploadData = async (destinationPath, data, params) => {
|
162
|
+
static uploadData = async (destinationPath, data, params, options) => {
|
163
163
|
if (!data) {
|
164
164
|
throw new errors.MissingParameterError('Upload data was not provided')
|
165
165
|
}
|
166
166
|
|
167
|
-
return File.uploadStream(destinationPath, Readable.from(data), params)
|
167
|
+
return File.uploadStream(destinationPath, Readable.from(data), params, options)
|
168
168
|
}
|
169
169
|
|
170
170
|
/**
|
171
171
|
* @note see File.copy() for list of supported params
|
172
172
|
*/
|
173
|
-
static uploadFile = async (destinationPath, sourceFilePath, params) => {
|
173
|
+
static uploadFile = async (destinationPath, sourceFilePath, params, options) => {
|
174
174
|
if (isBrowser()) {
|
175
175
|
throw new errors.NotImplementedError('Disk file uploads are only available in a NodeJS environment')
|
176
176
|
}
|
@@ -178,7 +178,7 @@ class File {
|
|
178
178
|
const { openDiskFileReadStream } = require('../isomorphic/File.node.js')
|
179
179
|
const stream = openDiskFileReadStream(sourceFilePath)
|
180
180
|
|
181
|
-
return File.uploadStream(destinationPath, stream, params)
|
181
|
+
return File.uploadStream(destinationPath, stream, params, options)
|
182
182
|
}
|
183
183
|
|
184
184
|
downloadToStream = async writableStream => {
|
@@ -211,14 +211,14 @@ class File {
|
|
211
211
|
return saveUrlToFile(downloadUri, destinationPath)
|
212
212
|
}
|
213
213
|
|
214
|
-
copyTo = async destinationFilePath => {
|
214
|
+
copyTo = async (destinationFilePath, options) => {
|
215
215
|
const params = { destination: destinationFilePath }
|
216
|
-
return Api.sendRequest(`/file_actions/copy/${encodeURIComponent(this.path)}`, 'POST', params)
|
216
|
+
return Api.sendRequest(`/file_actions/copy/${encodeURIComponent(this.path)}`, 'POST', params, options)
|
217
217
|
}
|
218
218
|
|
219
|
-
moveTo = async destinationFilePath => {
|
219
|
+
moveTo = async (destinationFilePath, options) => {
|
220
220
|
const params = { destination: destinationFilePath }
|
221
|
-
return Api.sendRequest(`/file_actions/move/${encodeURIComponent(this.path)}`, 'POST', params)
|
221
|
+
return Api.sendRequest(`/file_actions/move/${encodeURIComponent(this.path)}`, 'POST', params, options)
|
222
222
|
}
|
223
223
|
|
224
224
|
// string # File/Folder path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
package/test/src/index.js
CHANGED
@@ -46,6 +46,7 @@ const testSuite = async () => {
|
|
46
46
|
Files.configureNetwork({
|
47
47
|
autoPaginate: false,
|
48
48
|
})
|
49
|
+
|
49
50
|
const firstPageItems = await Folder.listFor('/', { per_page: 1 })
|
50
51
|
|
51
52
|
assert(firstPageItems.length === 1)
|
@@ -53,6 +54,7 @@ const testSuite = async () => {
|
|
53
54
|
Files.configureNetwork({
|
54
55
|
autoPaginate: true,
|
55
56
|
})
|
57
|
+
|
56
58
|
// note: this test will fail if the root folder has <= 1 file or folder
|
57
59
|
const allPageItems = await Folder.listFor('/', { per_page: 1 })
|
58
60
|
|