@smartsheet-extensions/handler 1.0.0-beta.6 → 1.0.0-beta.7
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/lib/enhancers/handleBigPayLoad.d.ts +1 -1
- package/lib/enhancers/handleBigPayLoad.d.ts.map +1 -1
- package/lib/enhancers/handleBigPayLoad.js +29 -13
- package/lib/enhancers/handleBigPayLoad.js.map +1 -1
- package/lib/utils/constants.d.ts +2 -0
- package/lib/utils/constants.d.ts.map +1 -1
- package/lib/utils/constants.js +3 -1
- package/lib/utils/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import FormData from 'form-data';
|
|
|
2
2
|
import { ExtensionHandlerEnhancer } from '../handler';
|
|
3
3
|
export interface PostResult {
|
|
4
4
|
data: FormData;
|
|
5
|
-
|
|
5
|
+
url: string;
|
|
6
6
|
}
|
|
7
7
|
export declare const handleBigPayLoad: ExtensionHandlerEnhancer<import("../handler").DefaultExtensionHandler, import("../handler").DefaultExtensionHandler>;
|
|
8
8
|
//# sourceMappingURL=handleBigPayLoad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAetD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAiND,eAAO,MAAM,gBAAgB,sHAiB5B,CAAC"}
|
|
@@ -16,15 +16,29 @@ exports.handleBigPayLoad = void 0;
|
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
17
|
const form_data_1 = __importDefault(require("form-data"));
|
|
18
18
|
const PayloadFetchError_1 = require("../errors/PayloadFetchError");
|
|
19
|
+
const PayloadLimitExceedError_1 = require("../errors/PayloadLimitExceedError");
|
|
19
20
|
const PayloadPostError_1 = require("../errors/PayloadPostError");
|
|
20
21
|
const PlatformResponse_1 = require("../responses/PlatformResponse");
|
|
21
|
-
const xorHandler_1 = require("./xorHandler");
|
|
22
|
-
const normalizeError_1 = require("../utils/normalizeError");
|
|
23
|
-
const PayloadLimitExceedError_1 = require("../errors/PayloadLimitExceedError");
|
|
24
22
|
const constants_1 = require("../utils/constants");
|
|
23
|
+
const normalizeError_1 = require("../utils/normalizeError");
|
|
24
|
+
const xorHandler_1 = require("./xorHandler");
|
|
25
|
+
const retryWrapper = (func, retryTimes) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
for (let counter = retryTimes - 1; counter >= 0; counter -= 1) {
|
|
27
|
+
try {
|
|
28
|
+
// eslint-disable-next-line no-await-in-loop
|
|
29
|
+
const resp = yield func();
|
|
30
|
+
return resp.data;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (counter === 0) {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
25
39
|
const getPayloadFromS3 = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
-
const resp = yield axios_1.default.get(url);
|
|
27
|
-
return resp
|
|
40
|
+
const resp = yield retryWrapper(() => __awaiter(void 0, void 0, void 0, function* () { return axios_1.default.get(url); }), constants_1.S3_GET_RETRY_LIMIT);
|
|
41
|
+
return resp;
|
|
28
42
|
});
|
|
29
43
|
const preparePostResult = (url, payload) => {
|
|
30
44
|
const urlObj = new URL(decodeURI(url));
|
|
@@ -40,19 +54,21 @@ const preparePostResult = (url, payload) => {
|
|
|
40
54
|
formData.append('file', payloadStr);
|
|
41
55
|
return {
|
|
42
56
|
data: formData,
|
|
43
|
-
urlVal,
|
|
57
|
+
url: urlVal,
|
|
44
58
|
};
|
|
45
59
|
};
|
|
46
|
-
const
|
|
47
|
-
const
|
|
60
|
+
const postPayloadToS3 = (result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
+
const { data, url } = result;
|
|
62
|
+
const config = {
|
|
48
63
|
headers: {
|
|
49
64
|
'Content-Type': 'multipart/form-data',
|
|
50
65
|
'Content-Length': result.data.getLengthSync(),
|
|
51
66
|
},
|
|
52
67
|
maxContentLength: Infinity,
|
|
53
68
|
maxBodyLength: Infinity,
|
|
54
|
-
}
|
|
55
|
-
return
|
|
69
|
+
};
|
|
70
|
+
const resp = yield retryWrapper(() => __awaiter(void 0, void 0, void 0, function* () { return axios_1.default.post(url, data, config); }), constants_1.S3_POST_RETRY_LIMIT);
|
|
71
|
+
return resp;
|
|
56
72
|
});
|
|
57
73
|
const isStreamExecution = (payload) => {
|
|
58
74
|
if (payload.meta !== undefined && payload.meta.type !== undefined) {
|
|
@@ -70,7 +86,7 @@ const wrapS3Response = (result) => {
|
|
|
70
86
|
data: result,
|
|
71
87
|
};
|
|
72
88
|
};
|
|
73
|
-
const
|
|
89
|
+
const handleGetError = (err) => {
|
|
74
90
|
if (axios_1.default.isAxiosError(err)) {
|
|
75
91
|
if (err.response) {
|
|
76
92
|
return new PayloadFetchError_1.PayloadFetchError(err.response.data);
|
|
@@ -155,7 +171,7 @@ const handleS3PayLoad = create => {
|
|
|
155
171
|
.then(result => {
|
|
156
172
|
const resultToPost = preparePostResult(postURL, result);
|
|
157
173
|
// All upstream results, including errors.
|
|
158
|
-
|
|
174
|
+
postPayloadToS3(resultToPost).then(response => {
|
|
159
175
|
callback(null, wrapS3Response(response));
|
|
160
176
|
}, s3Error => {
|
|
161
177
|
// Only putPayloadToS3 error
|
|
@@ -164,7 +180,7 @@ const handleS3PayLoad = create => {
|
|
|
164
180
|
});
|
|
165
181
|
}, s3GetErr => {
|
|
166
182
|
// Only getPayloadFromS3 error
|
|
167
|
-
callback(
|
|
183
|
+
callback(handleGetError(s3GetErr));
|
|
168
184
|
});
|
|
169
185
|
});
|
|
170
186
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/constants.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const S3_EXECUTION = "s3Execution";
|
|
2
2
|
export declare const STREAM_EXECUTION = "streamExecution";
|
|
3
3
|
export declare const PAYLOAD_LIMIT: number;
|
|
4
|
+
export declare const S3_GET_RETRY_LIMIT: number;
|
|
5
|
+
export declare const S3_POST_RETRY_LIMIT: number;
|
|
4
6
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,aAAa,QAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,eAAO,MAAM,kBAAkB,EAAE,MAAU,CAAC;AAC5C,eAAO,MAAM,mBAAmB,EAAE,MAAU,CAAC"}
|
package/lib/utils/constants.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PAYLOAD_LIMIT = exports.STREAM_EXECUTION = exports.S3_EXECUTION = void 0;
|
|
3
|
+
exports.S3_POST_RETRY_LIMIT = exports.S3_GET_RETRY_LIMIT = exports.PAYLOAD_LIMIT = exports.STREAM_EXECUTION = exports.S3_EXECUTION = void 0;
|
|
4
4
|
exports.S3_EXECUTION = 's3Execution';
|
|
5
5
|
exports.STREAM_EXECUTION = 'streamExecution';
|
|
6
6
|
exports.PAYLOAD_LIMIT = 48 * 1024 * 1024;
|
|
7
|
+
exports.S3_GET_RETRY_LIMIT = 3;
|
|
8
|
+
exports.S3_POST_RETRY_LIMIT = 3;
|
|
7
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,aAAa,CAAC;AAC7B,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AACrC,QAAA,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,aAAa,CAAC;AAC7B,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AACrC,QAAA,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,QAAA,kBAAkB,GAAW,CAAC,CAAC;AAC/B,QAAA,mBAAmB,GAAW,CAAC,CAAC"}
|