@smartsheet-extensions/handler 1.0.0-beta.4 → 1.0.0-beta.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.
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ExtensionHandlerEnhancer } from '../handler';
|
|
2
|
-
export declare const handleBigPayLoad: ExtensionHandlerEnhancer
|
|
2
|
+
export declare const handleBigPayLoad: ExtensionHandlerEnhancer<import("../handler").DefaultExtensionHandler, import("../handler").DefaultExtensionHandler>;
|
|
3
3
|
//# sourceMappingURL=handleBigPayLoad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA8KtD,eAAO,MAAM,gBAAgB,sHAiB5B,CAAC"}
|
|
@@ -15,9 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.handleBigPayLoad = void 0;
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
17
|
const form_data_1 = __importDefault(require("form-data"));
|
|
18
|
-
const PlatformResponse_1 = require("../responses/PlatformResponse");
|
|
19
18
|
const PayloadFetchError_1 = require("../errors/PayloadFetchError");
|
|
20
19
|
const PayloadPostError_1 = require("../errors/PayloadPostError");
|
|
20
|
+
const PlatformResponse_1 = require("../responses/PlatformResponse");
|
|
21
|
+
const xorHandler_1 = require("./xorHandler");
|
|
22
|
+
const normalizeError_1 = require("../utils/normalizeError");
|
|
21
23
|
const S3_EXECUTION = 's3Execution';
|
|
22
24
|
const STREAM_EXECUTION = 'streamExecution';
|
|
23
25
|
const getPayloadFromS3 = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -28,7 +30,7 @@ const putPayloadToS3 = (url, payload) => __awaiter(void 0, void 0, void 0, funct
|
|
|
28
30
|
const urlObj = new URL(decodeURI(url));
|
|
29
31
|
const formData = new form_data_1.default();
|
|
30
32
|
const urlVal = urlObj.origin + urlObj.pathname;
|
|
31
|
-
urlObj.searchParams.forEach(
|
|
33
|
+
urlObj.searchParams.forEach((value, key) => {
|
|
32
34
|
formData.append(key, value);
|
|
33
35
|
});
|
|
34
36
|
formData.append('file', JSON.stringify(payload));
|
|
@@ -82,39 +84,91 @@ const handlePostError = (err) => {
|
|
|
82
84
|
return new PayloadPostError_1.PayloadPostError(err.stack);
|
|
83
85
|
}
|
|
84
86
|
};
|
|
85
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Handles payloads that aren't wrapped.
|
|
89
|
+
*/
|
|
90
|
+
const handlePassThroughPayload = create => {
|
|
86
91
|
return () => {
|
|
87
92
|
const handler = create();
|
|
88
93
|
return (payload, callback) => {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
callback(err);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
putPayloadToS3(payload.body.postURL, result)
|
|
98
|
-
.then(resultNext => {
|
|
99
|
-
callback(err, wrapS3Response(resultNext));
|
|
100
|
-
})
|
|
101
|
-
.catch(s3Error => {
|
|
102
|
-
callback(handlePostError(s3Error));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
})
|
|
107
|
-
.catch(s3GetErr => {
|
|
108
|
-
callback(handleFetchError(s3GetErr));
|
|
109
|
-
});
|
|
94
|
+
try {
|
|
95
|
+
handler(payload, callback);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
callback(err);
|
|
110
99
|
}
|
|
111
|
-
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Handles payloads that are wrapped and `meta.type === 'streamExecution'`.
|
|
105
|
+
* The payload is wrapped but the response is still raw, passed straight
|
|
106
|
+
* from the extension's usercode.
|
|
107
|
+
*/
|
|
108
|
+
const handleStreamPayLoad = create => {
|
|
109
|
+
return () => {
|
|
110
|
+
const handler = create();
|
|
111
|
+
return (payload, callback) => {
|
|
112
|
+
try {
|
|
112
113
|
handler(payload.body.payload, callback);
|
|
113
114
|
}
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
catch (err) {
|
|
116
|
+
callback(err);
|
|
116
117
|
}
|
|
117
118
|
};
|
|
118
119
|
};
|
|
119
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Handles payloads that are wrapped and `meta.type === 's3Execution'`.
|
|
123
|
+
* The payload is fetched from S3 and the response is posted to S3.
|
|
124
|
+
* Only Platform errors are returned via the callback.
|
|
125
|
+
*/
|
|
126
|
+
const handleS3PayLoad = create => {
|
|
127
|
+
return () => {
|
|
128
|
+
const handler = create();
|
|
129
|
+
const handlerAsPromise = (payload) => new Promise((resolve, reject) => {
|
|
130
|
+
handler(payload, (err, result) => {
|
|
131
|
+
if (err) {
|
|
132
|
+
reject(err);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
resolve(result);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
return ({ body: { getURL, postURL } }, callback) => __awaiter(void 0, void 0, void 0, function* () {
|
|
140
|
+
getPayloadFromS3(getURL).then((payload) => {
|
|
141
|
+
return handlerAsPromise(payload)
|
|
142
|
+
.catch(upstreamErr => normalizeError_1.normalizeError(upstreamErr).toJSON())
|
|
143
|
+
.then(result => {
|
|
144
|
+
// All upstream results, including errors.
|
|
145
|
+
putPayloadToS3(postURL, result).then(response => {
|
|
146
|
+
callback(null, wrapS3Response(response));
|
|
147
|
+
}, s3Error => {
|
|
148
|
+
// Only putPayloadToS3 error
|
|
149
|
+
callback(handlePostError(s3Error));
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}, s3GetErr => {
|
|
153
|
+
// Only getPayloadFromS3 error
|
|
154
|
+
callback(handleFetchError(s3GetErr));
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
exports.handleBigPayLoad = xorHandler_1.xorHandler({
|
|
160
|
+
passThroughPayload: handlePassThroughPayload,
|
|
161
|
+
streamPayload: handleStreamPayLoad,
|
|
162
|
+
s3Payload: handleS3PayLoad,
|
|
163
|
+
}, {
|
|
164
|
+
getFunctionKey: (payload) => {
|
|
165
|
+
if (isS3Execution(payload)) {
|
|
166
|
+
return 's3Payload';
|
|
167
|
+
}
|
|
168
|
+
if (isStreamExecution(payload)) {
|
|
169
|
+
return 'streamPayload';
|
|
170
|
+
}
|
|
171
|
+
return 'passThroughPayload';
|
|
172
|
+
},
|
|
173
|
+
});
|
|
120
174
|
//# sourceMappingURL=handleBigPayLoad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,0DAAiC;
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"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"}
|