files.com 1.0.212 → 1.0.214
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/_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
|
|