athena-query-execution-waiter 0.4.7 → 0.5.0
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/README.md +5 -1
- package/lib/index.d.ts +22 -0
- package/lib/index.js +44 -9
- package/lib/wait-predicates.d.ts +38 -0
- package/lib/wait-predicates.js +66 -0
- package/package.json +10 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ A small library that waits for an AWS Athena query execution to complete. It pol
|
|
|
9
9
|
|
|
10
10
|
- Polls `GetQueryExecution` until the run finishes or an **overall wall-clock timeout** is exceeded (separate from **polling interval**).
|
|
11
11
|
- Configurable **overall timeout** and **poll spacing** via `wait()` options; default overall cap is **`DEFAULT_TIMEOUT_MS`** (2 minutes).
|
|
12
|
-
- Typed errors: **`AthenaQueryExecutionWaiterTimeoutError`**, **`AthenaQueryExecutionWaiterStateError`** (failed or cancelled runs)
|
|
12
|
+
- Typed errors: **`AthenaQueryExecutionWaiterTimeoutError`**, **`AthenaQueryExecutionWaiterStateError`** (failed or cancelled runs), **`AthenaQueryExecutionWaiterMissingStateError`**, **`AthenaQueryExecutionWaiterUnsupportedStateError`**.
|
|
13
13
|
- Built for **AWS SDK for JavaScript v3** (`@aws-sdk/client-athena`).
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
@@ -118,6 +118,8 @@ Passed to `wait(queryExecutionId, waitOptions?)`.
|
|
|
118
118
|
- **Returns** `SUCCEEDED` on success.
|
|
119
119
|
- **Throws** `AthenaQueryExecutionWaiterTimeoutError` if overall wait exceeds the effective timeout.
|
|
120
120
|
- **Throws** `AthenaQueryExecutionWaiterStateError` when the state is `FAILED` or `CANCELLED`.
|
|
121
|
+
- **Throws** `AthenaQueryExecutionWaiterMissingStateError` when `QueryExecution`, `Status`, or `State` is missing from the API response (fail-fast; no polling until timeout).
|
|
122
|
+
- **Throws** `AthenaQueryExecutionWaiterUnsupportedStateError` when `State` is present but not a known `QueryExecutionState` (e.g. a future Athena enum value).
|
|
121
123
|
|
|
122
124
|
### Constants
|
|
123
125
|
|
|
@@ -128,6 +130,8 @@ Passed to `wait(queryExecutionId, waitOptions?)`.
|
|
|
128
130
|
- **`AthenaQueryExecutionWaiterError`** — Base class for waiter errors.
|
|
129
131
|
- **`AthenaQueryExecutionWaiterTimeoutError`** — Overall elapsed time since `wait()` started exceeded `waitOptions.timeoutMs` or `DEFAULT_TIMEOUT_MS`. Constructor: `(elapsedTime: number)`.
|
|
130
132
|
- **`AthenaQueryExecutionWaiterStateError`** — Query ended in `FAILED` or `CANCELLED`. Properties: `state`, `reason`. Constructor: `(state: QueryExecutionState, reason?: string)`.
|
|
133
|
+
- **`AthenaQueryExecutionWaiterMissingStateError`** — `GetQueryExecution` response is missing `QueryExecution`, `Status`, or `State`. Property: `detail`. Fails on the first poll.
|
|
134
|
+
- **`AthenaQueryExecutionWaiterUnsupportedStateError`** — `State` is not one of the known values (`QUEUED`, `RUNNING`, `SUCCEEDED`, `FAILED`, `CANCELLED`). Property: `state`. Fails on the first poll.
|
|
131
135
|
|
|
132
136
|
## License
|
|
133
137
|
|
package/lib/index.d.ts
CHANGED
|
@@ -57,6 +57,8 @@ export declare class AthenaQueryExecutionWaiter {
|
|
|
57
57
|
* @returns Execution state on success (SUCCEEDED)
|
|
58
58
|
* @throws AthenaQueryExecutionWaiterTimeoutError On timeout
|
|
59
59
|
* @throws AthenaQueryExecutionWaiterStateError When state is FAILED or CANCELLED
|
|
60
|
+
* @throws AthenaQueryExecutionWaiterMissingStateError When QueryExecution or Status.State is missing
|
|
61
|
+
* @throws AthenaQueryExecutionWaiterUnsupportedStateError When state is not a known QueryExecutionState
|
|
60
62
|
*/
|
|
61
63
|
wait(queryExecutionId: string, waitOptions?: AthenaQueryExecutionWaitOptions): Promise<QueryExecutionState>;
|
|
62
64
|
}
|
|
@@ -90,3 +92,23 @@ export declare class AthenaQueryExecutionWaiterStateError extends AthenaQueryExe
|
|
|
90
92
|
*/
|
|
91
93
|
constructor(state: QueryExecutionState, reason?: string);
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Thrown when GetQueryExecution response lacks QueryExecution, Status, or State.
|
|
97
|
+
*/
|
|
98
|
+
export declare class AthenaQueryExecutionWaiterMissingStateError extends AthenaQueryExecutionWaiterError {
|
|
99
|
+
readonly detail: string;
|
|
100
|
+
/**
|
|
101
|
+
* @param detail Which part of the response was missing
|
|
102
|
+
*/
|
|
103
|
+
constructor(detail: string);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Thrown when State is present but not a known {@link QueryExecutionState} value.
|
|
107
|
+
*/
|
|
108
|
+
export declare class AthenaQueryExecutionWaiterUnsupportedStateError extends AthenaQueryExecutionWaiterError {
|
|
109
|
+
readonly state: string;
|
|
110
|
+
/**
|
|
111
|
+
* @param state Unsupported state string returned by Athena
|
|
112
|
+
*/
|
|
113
|
+
constructor(state: string);
|
|
114
|
+
}
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AthenaQueryExecutionWaiterStateError = exports.AthenaQueryExecutionWaiterTimeoutError = exports.AthenaQueryExecutionWaiterError = exports.AthenaQueryExecutionWaiter = exports.DEFAULT_TIMEOUT_MS = void 0;
|
|
3
|
+
exports.AthenaQueryExecutionWaiterUnsupportedStateError = exports.AthenaQueryExecutionWaiterMissingStateError = exports.AthenaQueryExecutionWaiterStateError = exports.AthenaQueryExecutionWaiterTimeoutError = exports.AthenaQueryExecutionWaiterError = exports.AthenaQueryExecutionWaiter = exports.DEFAULT_TIMEOUT_MS = void 0;
|
|
4
4
|
const client_athena_1 = require("@aws-sdk/client-athena");
|
|
5
|
+
const wait_predicates_1 = require("./wait-predicates");
|
|
5
6
|
/** Default polling interval (milliseconds) for query execution status. */
|
|
6
7
|
const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
7
8
|
/**
|
|
@@ -40,6 +41,8 @@ class AthenaQueryExecutionWaiter {
|
|
|
40
41
|
* @returns Execution state on success (SUCCEEDED)
|
|
41
42
|
* @throws AthenaQueryExecutionWaiterTimeoutError On timeout
|
|
42
43
|
* @throws AthenaQueryExecutionWaiterStateError When state is FAILED or CANCELLED
|
|
44
|
+
* @throws AthenaQueryExecutionWaiterMissingStateError When QueryExecution or Status.State is missing
|
|
45
|
+
* @throws AthenaQueryExecutionWaiterUnsupportedStateError When state is not a known QueryExecutionState
|
|
43
46
|
*/
|
|
44
47
|
async wait(queryExecutionId, waitOptions) {
|
|
45
48
|
const effectiveTimeoutMs = waitOptions?.timeoutMs ?? exports.DEFAULT_TIMEOUT_MS;
|
|
@@ -53,14 +56,18 @@ class AthenaQueryExecutionWaiter {
|
|
|
53
56
|
const res = await this.client.send(new client_athena_1.GetQueryExecutionCommand({
|
|
54
57
|
QueryExecutionId: queryExecutionId,
|
|
55
58
|
}));
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (state === client_athena_1.QueryExecutionState.SUCCEEDED) {
|
|
60
|
-
return state;
|
|
59
|
+
const outcome = (0, wait_predicates_1.classifyQueryExecutionPoll)(res);
|
|
60
|
+
if (outcome.kind === 'succeeded') {
|
|
61
|
+
return client_athena_1.QueryExecutionState.SUCCEEDED;
|
|
61
62
|
}
|
|
62
|
-
if (
|
|
63
|
-
throw new AthenaQueryExecutionWaiterStateError(state, reason
|
|
63
|
+
if (outcome.kind === 'failed') {
|
|
64
|
+
throw new AthenaQueryExecutionWaiterStateError(outcome.state, outcome.reason);
|
|
65
|
+
}
|
|
66
|
+
if (outcome.kind === 'missing') {
|
|
67
|
+
throw new AthenaQueryExecutionWaiterMissingStateError(outcome.detail);
|
|
68
|
+
}
|
|
69
|
+
if (outcome.kind === 'unsupported') {
|
|
70
|
+
throw new AthenaQueryExecutionWaiterUnsupportedStateError(outcome.state);
|
|
64
71
|
}
|
|
65
72
|
await new Promise((r) => setTimeout(r, pollIntervalMs));
|
|
66
73
|
} while (true);
|
|
@@ -109,4 +116,32 @@ class AthenaQueryExecutionWaiterStateError extends AthenaQueryExecutionWaiterErr
|
|
|
109
116
|
}
|
|
110
117
|
}
|
|
111
118
|
exports.AthenaQueryExecutionWaiterStateError = AthenaQueryExecutionWaiterStateError;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFHO0FBRXJHLDBFQUEwRTtBQUMxRSxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQztBQUV0Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNVLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUEyQmhEOzs7OztHQUtHO0FBQ0gsTUFBYSwwQkFBMEI7SUFJckM7OztPQUdHO0lBQ0gsWUFDbUIsTUFBb0IsRUFDckMsT0FBMkM7UUFEMUIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUdyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxFQUFFLGNBQWMsSUFBSSx3QkFBd0IsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUNSLGdCQUF3QixFQUN4QixXQUE2QztRQUU3QyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxTQUFTLElBQUksMEJBQWtCLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsV0FBVyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQztZQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFDM0MsSUFBSSxXQUFXLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxJQUFJLHNDQUFzQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksd0NBQXdCLENBQUM7Z0JBQzlELGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNKLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUF3QyxDQUFDO1lBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQztZQUVyQyxJQUFJLEtBQUssS0FBSyxtQ0FBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxLQUFLLEtBQUssbUNBQW1CLENBQUMsTUFBTSxJQUFJLEtBQUssS0FBSyxtQ0FBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEYsTUFBTSxJQUFJLG9DQUFvQyxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUNELE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLFFBQVEsSUFBSSxFQUFFO0lBQ2pCLENBQUM7Q0FDRjtBQXJERCxnRUFxREM7QUFFRDs7R0FFRztBQUNILE1BQWEsK0JBQWdDLFNBQVEsS0FBSztJQUV4RDs7T0FFRztJQUNILFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQVRELDBFQVNDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHNDQUF1QyxTQUFRLCtCQUErQjtJQUV6Rjs7T0FFRztJQUNILFlBQVksV0FBbUI7UUFDN0IsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsd0NBQXdDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBVEQsd0ZBU0M7QUFFRDs7R0FFRztBQUNILE1BQWEsb0NBQXFDLFNBQVEsK0JBQStCO0lBRXZGOzs7T0FHRztJQUNILFlBQTRCLEtBQTBCLEVBQWtCLFNBQWlCLFNBQVM7UUFDaEcsS0FBSyxDQUFDLDRDQUE0QyxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztRQUQ1QyxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUFrQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUVoRyxJQUFJLENBQUMsSUFBSSxHQUFHLHNDQUFzQyxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQVZELG9GQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0UXVlcnlFeGVjdXRpb25Db21tYW5kLCBRdWVyeUV4ZWN1dGlvblN0YXRlLCBBdGhlbmFDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXRoZW5hJztcblxuLyoqIERlZmF1bHQgcG9sbGluZyBpbnRlcnZhbCAobWlsbGlzZWNvbmRzKSBmb3IgcXVlcnkgZXhlY3V0aW9uIHN0YXR1cy4gKi9cbmNvbnN0IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9NUyA9IDEwMDA7XG5cbi8qKlxuICogRGVmYXVsdCBvdmVyYWxsIHdhaXQgdGltZW91dCAobWlsbGlzZWNvbmRzKSB3aGVuIGB3YWl0KClgIGlzIGNhbGxlZCB3aXRob3V0XG4gKiBgd2FpdE9wdGlvbnMudGltZW91dE1zYC5cbiAqIFRoaXMgY2FwcyB0b3RhbCB3YWxsLWNsb2NrIHRpbWUgZnJvbSB0aGUgc3RhcnQgb2YgYHdhaXQoKWAgdW50aWwgYSB0ZXJtaW5hbCBzdGF0ZVxuICogKG9yIGVycm9yKeKAlGl0IGlzIG5vdCB0aGUgZGVsYXkgYmV0d2VlbiBwb2xscyAoYHBvbGxJbnRlcnZhbE1zYCkuXG4gKlxuICogKipXaHkgMiBtaW51dGVzOioqIEF0aGVuYSBvZnRlbiBleGNlZWRzIGEgZmV3IHNlY29uZHMgKHF1ZXVlaW5nLCBjb2xkIHN0YXJ0LCBtb2RlcmF0ZVxuICogc2NhbnMpLiBUZW4gc2Vjb25kcyBmYWlscyB0b28gb2Z0ZW4gYXMgYSBsaWJyYXJ5IGRlZmF1bHQ7IHVuYm91bmRlZCBvciB2ZXJ5IGxhcmdlXG4gKiBkZWZhdWx0cyByaXNrIGhhbmdpbmcgY2FsbGVycy4gVHdvIG1pbnV0ZXMgaXMgYSBwcmFjdGljYWwgbWlkZGxlIGdyb3VuZOKAlHRpZ2h0IGVub3VnaFxuICogdG8gc3VyZmFjZSBzdHVjayB3b3JrLCBsb25nIGVub3VnaCBmb3IgbWFueSBpbnRlcmFjdGl2ZSB3b3JrbG9hZHMuIFVzZSBhIGxhcmdlclxuICogYHdhaXQoLi4uLCB7IHRpbWVvdXRNcyB9KWAgZm9yIGhlYXZ5IGFuYWx5dGljcyBvciBFVEwuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RJTUVPVVRfTVMgPSAyICogNjAgKiAxMDAwO1xuXG4vKiogT3B0aW9ucyBmb3IgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXIgY29uc3RydWN0b3IuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb2xsaW5nIGludGVydmFsIGluIG1pbGxpc2Vjb25kcy5cbiAgICogSW5jcmVhc2UgZm9yIGxvbmctcnVubmluZyBxdWVyaWVzIHRvIHJlZHVjZSBBUEkgY2FsbHMuXG4gICAqIERlZmF1bHRzIHRvIERFRkFVTFRfUE9MTF9JTlRFUlZBTF9NUyAoMTAwMCkgd2hlbiBvbWl0dGVkLlxuICAgKi9cbiAgcG9sbEludGVydmFsTXM/OiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciB3YWl0KCkuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdE9wdGlvbnMge1xuICAvKipcbiAgICogT3ZlcmFsbCB3YWxsLWNsb2NrIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGlzIHdhaXQgKGZyb20gdGhlIHN0YXJ0IG9mIGB3YWl0KClgXG4gICAqIHVudGlsIGEgdGVybWluYWwgc3RhdGUpLiBOb3QgdGhlIGRlbGF5IGJldHdlZW4gcG9sbHMuXG4gICAqIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX1RJTUVPVVRfTVN9IHdoZW4gb21pdHRlZC5cbiAgICovXG4gIHRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGlzIHdhaXQuXG4gICAqIE92ZXJyaWRlcyB0aGUgd2FpdGVyJ3MgZGVmYXVsdCBwb2xsIGludGVydmFsIHdoZW4gc3BlY2lmaWVkLlxuICAgKi9cbiAgcG9sbEludGVydmFsTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIEF0aGVuYSBxdWVyeSBleGVjdXRpb24gdG8gY29tcGxldGUuXG4gKiBQb2xscyBleGVjdXRpb24gc3RhdHVzIHVudGlsIGl0IGJlY29tZXMgU1VDQ0VFREVELCBGQUlMRUQsIG9yIENBTkNFTExFRC5cbiAqIE92ZXJhbGwgdGltZSBpcyBib3VuZGVkIGJ5IGB3YWl0T3B0aW9ucy50aW1lb3V0TXNgIChvciB7QGxpbmsgREVGQVVMVF9USU1FT1VUX01TfSk7XG4gKiBzcGFjaW5nIGJldHdlZW4gcG9sbHMgaXMgY29udHJvbGxlZCBzZXBhcmF0ZWx5IGJ5IGBwb2xsSW50ZXJ2YWxNc2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0UG9sbEludGVydmFsTXM6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGNsaWVudCBBdGhlbmEgQVBJIGNsaWVudFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBzZXR0aW5ncyAoZS5nLiBwb2xsSW50ZXJ2YWxNcylcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBBdGhlbmFDbGllbnQsXG4gICAgb3B0aW9ucz86IEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyT3B0aW9ucyxcbiAgKSB7XG4gICAgdGhpcy5kZWZhdWx0UG9sbEludGVydmFsTXMgPSBvcHRpb25zPy5wb2xsSW50ZXJ2YWxNcyA/PyBERUZBVUxUX1BPTExfSU5URVJWQUxfTVM7XG4gIH1cblxuICAvKipcbiAgICogV2FpdHMgdW50aWwgdGhlIGdpdmVuIHF1ZXJ5IGV4ZWN1dGlvbiBjb21wbGV0ZXMgKG9yIGZhaWxzL2NhbmNlbHMpLlxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnlFeGVjdXRpb25JZCBRdWVyeSBleGVjdXRpb24gSUQgdG8gd2FpdCBmb3JcbiAgICogQHBhcmFtIHdhaXRPcHRpb25zIE9wdGlvbmFsIHBlci1jYWxsIHNldHRpbmdzIChgdGltZW91dE1zYCwgYHBvbGxJbnRlcnZhbE1zYClcbiAgICogQHJldHVybnMgRXhlY3V0aW9uIHN0YXRlIG9uIHN1Y2Nlc3MgKFNVQ0NFRURFRClcbiAgICogQHRocm93cyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclRpbWVvdXRFcnJvciBPbiB0aW1lb3V0XG4gICAqIEB0aHJvd3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJTdGF0ZUVycm9yIFdoZW4gc3RhdGUgaXMgRkFJTEVEIG9yIENBTkNFTExFRFxuICAgKi9cbiAgYXN5bmMgd2FpdChcbiAgICBxdWVyeUV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICAgd2FpdE9wdGlvbnM/OiBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRPcHRpb25zLFxuICApOiBQcm9taXNlPFF1ZXJ5RXhlY3V0aW9uU3RhdGU+IHtcbiAgICBjb25zdCBlZmZlY3RpdmVUaW1lb3V0TXMgPSB3YWl0T3B0aW9ucz8udGltZW91dE1zID8/IERFRkFVTFRfVElNRU9VVF9NUztcbiAgICBjb25zdCBwb2xsSW50ZXJ2YWxNcyA9IHdhaXRPcHRpb25zPy5wb2xsSW50ZXJ2YWxNcyA/PyB0aGlzLmRlZmF1bHRQb2xsSW50ZXJ2YWxNcztcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGRvIHtcbiAgICAgIGNvbnN0IGVsYXBzZWRUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgIGlmIChlbGFwc2VkVGltZSA+IGVmZmVjdGl2ZVRpbWVvdXRNcykge1xuICAgICAgICB0aHJvdyBuZXcgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJUaW1lb3V0RXJyb3IoZWxhcHNlZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNsaWVudC5zZW5kKG5ldyBHZXRRdWVyeUV4ZWN1dGlvbkNvbW1hbmQoe1xuICAgICAgICBRdWVyeUV4ZWN1dGlvbklkOiBxdWVyeUV4ZWN1dGlvbklkLFxuICAgICAgfSkpO1xuICAgICAgY29uc3Qgc3QgPSByZXMuUXVlcnlFeGVjdXRpb24/LlN0YXR1cztcbiAgICAgIGNvbnN0IHN0YXRlID0gc3Q/LlN0YXRlIGFzIFF1ZXJ5RXhlY3V0aW9uU3RhdGUgfCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCByZWFzb24gPSBzdD8uU3RhdGVDaGFuZ2VSZWFzb247XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gUXVlcnlFeGVjdXRpb25TdGF0ZS5TVUNDRUVERUQpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlID09PSBRdWVyeUV4ZWN1dGlvblN0YXRlLkZBSUxFRCB8fCBzdGF0ZSA9PT0gUXVlcnlFeGVjdXRpb25TdGF0ZS5DQU5DRUxMRUQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyU3RhdGVFcnJvcihzdGF0ZSwgcmVhc29uID8/ICd1bmtub3duJyk7XG4gICAgICB9XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCBwb2xsSW50ZXJ2YWxNcykpO1xuICAgIH0gd2hpbGUgKHRydWUpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBlcnJvciBmb3IgQXRoZW5hIHF1ZXJ5IGV4ZWN1dGlvbiB3YWl0ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWVzc2FnZSBFcnJvciBtZXNzYWdlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiB3YWl0aW5nIGZvciBxdWVyeSBleGVjdXRpb24gdGltZXMgb3V0LlxuICovXG5leHBvcnQgY2xhc3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJUaW1lb3V0RXJyb3IgZXh0ZW5kcyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlckVycm9yIHtcblxuICAvKipcbiAgICogQHBhcmFtIGVsYXBzZWRUaW1lIEVsYXBzZWQgdGltZSBpbiBtaWxsaXNlY29uZHMgdW50aWwgdGltZW91dFxuICAgKi9cbiAgY29uc3RydWN0b3IoZWxhcHNlZFRpbWU6IG51bWJlcikge1xuICAgIHN1cGVyKGBBdGhlbmEgcXVlcnkgdGltZWQgb3V0IGFmdGVyICR7ZWxhcHNlZFRpbWV9bXNgKTtcbiAgICB0aGlzLm5hbWUgPSAnQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJUaW1lb3V0RXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gdGhlIHF1ZXJ5IGVuZHMgaW4gRkFJTEVEIG9yIENBTkNFTExFRCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyU3RhdGVFcnJvciBleHRlbmRzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc3RhdGUgRmluYWwgZXhlY3V0aW9uIHN0YXRlIChGQUlMRUQgb3IgQ0FOQ0VMTEVEKVxuICAgKiBAcGFyYW0gcmVhc29uIFJlYXNvbiBmb3IgdGhlIHN0YXRlIGNoYW5nZSAoZS5nLiBlcnJvciBkZXRhaWxzKS4gRGVmYXVsdHMgdG8gJ3Vua25vd24nIHdoZW4gb21pdHRlZFxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHN0YXRlOiBRdWVyeUV4ZWN1dGlvblN0YXRlLCBwdWJsaWMgcmVhZG9ubHkgcmVhc29uOiBzdHJpbmcgPSAndW5rbm93bicpIHtcbiAgICBzdXBlcihgQXRoZW5hIHF1ZXJ5IGV4ZWN1dGlvbiBmYWlsZWQgd2l0aCBzdGF0ZSAke3N0YXRlfTogJHtyZWFzb259YCk7XG4gICAgdGhpcy5uYW1lID0gJ0F0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyU3RhdGVFcnJvcic7XG4gIH1cbn1cbiJdfQ==
|
|
119
|
+
/**
|
|
120
|
+
* Thrown when GetQueryExecution response lacks QueryExecution, Status, or State.
|
|
121
|
+
*/
|
|
122
|
+
class AthenaQueryExecutionWaiterMissingStateError extends AthenaQueryExecutionWaiterError {
|
|
123
|
+
/**
|
|
124
|
+
* @param detail Which part of the response was missing
|
|
125
|
+
*/
|
|
126
|
+
constructor(detail) {
|
|
127
|
+
super(`Athena query execution status is missing or incomplete: ${detail}`);
|
|
128
|
+
this.detail = detail;
|
|
129
|
+
this.name = 'AthenaQueryExecutionWaiterMissingStateError';
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.AthenaQueryExecutionWaiterMissingStateError = AthenaQueryExecutionWaiterMissingStateError;
|
|
133
|
+
/**
|
|
134
|
+
* Thrown when State is present but not a known {@link QueryExecutionState} value.
|
|
135
|
+
*/
|
|
136
|
+
class AthenaQueryExecutionWaiterUnsupportedStateError extends AthenaQueryExecutionWaiterError {
|
|
137
|
+
/**
|
|
138
|
+
* @param state Unsupported state string returned by Athena
|
|
139
|
+
*/
|
|
140
|
+
constructor(state) {
|
|
141
|
+
super(`Athena query execution returned unsupported state: ${state}`);
|
|
142
|
+
this.state = state;
|
|
143
|
+
this.name = 'AthenaQueryExecutionWaiterUnsupportedStateError';
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.AthenaQueryExecutionWaiterUnsupportedStateError = AthenaQueryExecutionWaiterUnsupportedStateError;
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFHO0FBQ3JHLHVEQUErRDtBQUUvRCwwRUFBMEU7QUFDMUUsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUM7QUFFdEM7Ozs7Ozs7Ozs7O0dBV0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBMkJoRDs7Ozs7R0FLRztBQUNILE1BQWEsMEJBQTBCO0lBSXJDOzs7T0FHRztJQUNILFlBQ21CLE1BQW9CLEVBQ3JDLE9BQTJDO1FBRDFCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFHckMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sRUFBRSxjQUFjLElBQUksd0JBQXdCLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUNSLGdCQUF3QixFQUN4QixXQUE2QztRQUU3QyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxTQUFTLElBQUksMEJBQWtCLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsV0FBVyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQztZQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFDM0MsSUFBSSxXQUFXLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxJQUFJLHNDQUFzQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksd0NBQXdCLENBQUM7Z0JBQzlELGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNKLE1BQU0sT0FBTyxHQUFHLElBQUEsNENBQTBCLEVBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLG1DQUFtQixDQUFDLFNBQVMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixNQUFNLElBQUksb0NBQW9DLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEYsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLDJDQUEyQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLElBQUksK0NBQStDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFFRCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxRQUFRLElBQUksRUFBRTtJQUNqQixDQUFDO0NBQ0Y7QUE1REQsZ0VBNERDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLCtCQUFnQyxTQUFRLEtBQUs7SUFFeEQ7O09BRUc7SUFDSCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFURCwwRUFTQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxzQ0FBdUMsU0FBUSwrQkFBK0I7SUFFekY7O09BRUc7SUFDSCxZQUFZLFdBQW1CO1FBQzdCLEtBQUssQ0FBQyxnQ0FBZ0MsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLHdDQUF3QyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQVRELHdGQVNDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9DQUFxQyxTQUFRLCtCQUErQjtJQUV2Rjs7O09BR0c7SUFDSCxZQUE0QixLQUEwQixFQUFrQixTQUFpQixTQUFTO1FBQ2hHLEtBQUssQ0FBQyw0Q0FBNEMsS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFENUMsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFBa0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFFaEcsSUFBSSxDQUFDLElBQUksR0FBRyxzQ0FBc0MsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUFWRCxvRkFVQztBQUVEOztHQUVHO0FBQ0gsTUFBYSwyQ0FBNEMsU0FBUSwrQkFBK0I7SUFFOUY7O09BRUc7SUFDSCxZQUE0QixNQUFjO1FBQ3hDLEtBQUssQ0FBQywyREFBMkQsTUFBTSxFQUFFLENBQUMsQ0FBQztRQURqRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRXhDLElBQUksQ0FBQyxJQUFJLEdBQUcsNkNBQTZDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBVEQsa0dBU0M7QUFFRDs7R0FFRztBQUNILE1BQWEsK0NBQWdELFNBQVEsK0JBQStCO0lBRWxHOztPQUVHO0lBQ0gsWUFBNEIsS0FBYTtRQUN2QyxLQUFLLENBQUMsc0RBQXNELEtBQUssRUFBRSxDQUFDLENBQUM7UUFEM0MsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUV2QyxJQUFJLENBQUMsSUFBSSxHQUFHLGlEQUFpRCxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQVRELDBHQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0UXVlcnlFeGVjdXRpb25Db21tYW5kLCBRdWVyeUV4ZWN1dGlvblN0YXRlLCBBdGhlbmFDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXRoZW5hJztcbmltcG9ydCB7IGNsYXNzaWZ5UXVlcnlFeGVjdXRpb25Qb2xsIH0gZnJvbSAnLi93YWl0LXByZWRpY2F0ZXMnO1xuXG4vKiogRGVmYXVsdCBwb2xsaW5nIGludGVydmFsIChtaWxsaXNlY29uZHMpIGZvciBxdWVyeSBleGVjdXRpb24gc3RhdHVzLiAqL1xuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX01TID0gMTAwMDtcblxuLyoqXG4gKiBEZWZhdWx0IG92ZXJhbGwgd2FpdCB0aW1lb3V0IChtaWxsaXNlY29uZHMpIHdoZW4gYHdhaXQoKWAgaXMgY2FsbGVkIHdpdGhvdXRcbiAqIGB3YWl0T3B0aW9ucy50aW1lb3V0TXNgLlxuICogVGhpcyBjYXBzIHRvdGFsIHdhbGwtY2xvY2sgdGltZSBmcm9tIHRoZSBzdGFydCBvZiBgd2FpdCgpYCB1bnRpbCBhIHRlcm1pbmFsIHN0YXRlXG4gKiAob3IgZXJyb3Ip4oCUaXQgaXMgbm90IHRoZSBkZWxheSBiZXR3ZWVuIHBvbGxzIChgcG9sbEludGVydmFsTXNgKS5cbiAqXG4gKiAqKldoeSAyIG1pbnV0ZXM6KiogQXRoZW5hIG9mdGVuIGV4Y2VlZHMgYSBmZXcgc2Vjb25kcyAocXVldWVpbmcsIGNvbGQgc3RhcnQsIG1vZGVyYXRlXG4gKiBzY2FucykuIFRlbiBzZWNvbmRzIGZhaWxzIHRvbyBvZnRlbiBhcyBhIGxpYnJhcnkgZGVmYXVsdDsgdW5ib3VuZGVkIG9yIHZlcnkgbGFyZ2VcbiAqIGRlZmF1bHRzIHJpc2sgaGFuZ2luZyBjYWxsZXJzLiBUd28gbWludXRlcyBpcyBhIHByYWN0aWNhbCBtaWRkbGUgZ3JvdW5k4oCUdGlnaHQgZW5vdWdoXG4gKiB0byBzdXJmYWNlIHN0dWNrIHdvcmssIGxvbmcgZW5vdWdoIGZvciBtYW55IGludGVyYWN0aXZlIHdvcmtsb2Fkcy4gVXNlIGEgbGFyZ2VyXG4gKiBgd2FpdCguLi4sIHsgdGltZW91dE1zIH0pYCBmb3IgaGVhdnkgYW5hbHl0aWNzIG9yIEVUTC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDIgKiA2MCAqIDEwMDA7XG5cbi8qKiBPcHRpb25zIGZvciBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlciBjb25zdHJ1Y3Rvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBJbmNyZWFzZSBmb3IgbG9uZy1ydW5uaW5nIHF1ZXJpZXMgdG8gcmVkdWNlIEFQSSBjYWxscy5cbiAgICogRGVmYXVsdHMgdG8gREVGQVVMVF9QT0xMX0lOVEVSVkFMX01TICgxMDAwKSB3aGVuIG9taXR0ZWQuXG4gICAqL1xuICBwb2xsSW50ZXJ2YWxNcz86IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHdhaXQoKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPdmVyYWxsIHdhbGwtY2xvY2sgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIHRoaXMgd2FpdCAoZnJvbSB0aGUgc3RhcnQgb2YgYHdhaXQoKWBcbiAgICogdW50aWwgYSB0ZXJtaW5hbCBzdGF0ZSkuIE5vdCB0aGUgZGVsYXkgYmV0d2VlbiBwb2xscy5cbiAgICogRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfVElNRU9VVF9NU30gd2hlbiBvbWl0dGVkLlxuICAgKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogUG9sbGluZyBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMgZm9yIHRoaXMgd2FpdC5cbiAgICogT3ZlcnJpZGVzIHRoZSB3YWl0ZXIncyBkZWZhdWx0IHBvbGwgaW50ZXJ2YWwgd2hlbiBzcGVjaWZpZWQuXG4gICAqL1xuICBwb2xsSW50ZXJ2YWxNcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgQXRoZW5hIHF1ZXJ5IGV4ZWN1dGlvbiB0byBjb21wbGV0ZS5cbiAqIFBvbGxzIGV4ZWN1dGlvbiBzdGF0dXMgdW50aWwgaXQgYmVjb21lcyBTVUNDRUVERUQsIEZBSUxFRCwgb3IgQ0FOQ0VMTEVELlxuICogT3ZlcmFsbCB0aW1lIGlzIGJvdW5kZWQgYnkgYHdhaXRPcHRpb25zLnRpbWVvdXRNc2AgKG9yIHtAbGluayBERUZBVUxUX1RJTUVPVVRfTVN9KTtcbiAqIHNwYWNpbmcgYmV0d2VlbiBwb2xscyBpcyBjb250cm9sbGVkIHNlcGFyYXRlbHkgYnkgYHBvbGxJbnRlcnZhbE1zYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRQb2xsSW50ZXJ2YWxNczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY2xpZW50IEF0aGVuYSBBUEkgY2xpZW50XG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHNldHRpbmdzIChlLmcuIHBvbGxJbnRlcnZhbE1zKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IEF0aGVuYUNsaWVudCxcbiAgICBvcHRpb25zPzogQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJPcHRpb25zLFxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRQb2xsSW50ZXJ2YWxNcyA9IG9wdGlvbnM/LnBvbGxJbnRlcnZhbE1zID8/IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9NUztcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyB1bnRpbCB0aGUgZ2l2ZW4gcXVlcnkgZXhlY3V0aW9uIGNvbXBsZXRlcyAob3IgZmFpbHMvY2FuY2VscykuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIFF1ZXJ5IGV4ZWN1dGlvbiBJRCB0byB3YWl0IGZvclxuICAgKiBAcGFyYW0gd2FpdE9wdGlvbnMgT3B0aW9uYWwgcGVyLWNhbGwgc2V0dGluZ3MgKGB0aW1lb3V0TXNgLCBgcG9sbEludGVydmFsTXNgKVxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gc3RhdGUgb24gc3VjY2VzcyAoU1VDQ0VFREVEKVxuICAgKiBAdGhyb3dzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyVGltZW91dEVycm9yIE9uIHRpbWVvdXRcbiAgICogQHRocm93cyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclN0YXRlRXJyb3IgV2hlbiBzdGF0ZSBpcyBGQUlMRUQgb3IgQ0FOQ0VMTEVEXG4gICAqIEB0aHJvd3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJNaXNzaW5nU3RhdGVFcnJvciBXaGVuIFF1ZXJ5RXhlY3V0aW9uIG9yIFN0YXR1cy5TdGF0ZSBpcyBtaXNzaW5nXG4gICAqIEB0aHJvd3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJVbnN1cHBvcnRlZFN0YXRlRXJyb3IgV2hlbiBzdGF0ZSBpcyBub3QgYSBrbm93biBRdWVyeUV4ZWN1dGlvblN0YXRlXG4gICAqL1xuICBhc3luYyB3YWl0KFxuICAgIHF1ZXJ5RXhlY3V0aW9uSWQ6IHN0cmluZyxcbiAgICB3YWl0T3B0aW9ucz86IEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdE9wdGlvbnMsXG4gICk6IFByb21pc2U8UXVlcnlFeGVjdXRpb25TdGF0ZT4ge1xuICAgIGNvbnN0IGVmZmVjdGl2ZVRpbWVvdXRNcyA9IHdhaXRPcHRpb25zPy50aW1lb3V0TXMgPz8gREVGQVVMVF9USU1FT1VUX01TO1xuICAgIGNvbnN0IHBvbGxJbnRlcnZhbE1zID0gd2FpdE9wdGlvbnM/LnBvbGxJbnRlcnZhbE1zID8/IHRoaXMuZGVmYXVsdFBvbGxJbnRlcnZhbE1zO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgZG8ge1xuICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgaWYgKGVsYXBzZWRUaW1lID4gZWZmZWN0aXZlVGltZW91dE1zKSB7XG4gICAgICAgIHRocm93IG5ldyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclRpbWVvdXRFcnJvcihlbGFwc2VkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY2xpZW50LnNlbmQobmV3IEdldFF1ZXJ5RXhlY3V0aW9uQ29tbWFuZCh7XG4gICAgICAgIFF1ZXJ5RXhlY3V0aW9uSWQ6IHF1ZXJ5RXhlY3V0aW9uSWQsXG4gICAgICB9KSk7XG4gICAgICBjb25zdCBvdXRjb21lID0gY2xhc3NpZnlRdWVyeUV4ZWN1dGlvblBvbGwocmVzKTtcblxuICAgICAgaWYgKG91dGNvbWUua2luZCA9PT0gJ3N1Y2NlZWRlZCcpIHtcbiAgICAgICAgcmV0dXJuIFF1ZXJ5RXhlY3V0aW9uU3RhdGUuU1VDQ0VFREVEO1xuICAgICAgfVxuICAgICAgaWYgKG91dGNvbWUua2luZCA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyU3RhdGVFcnJvcihvdXRjb21lLnN0YXRlLCBvdXRjb21lLnJlYXNvbik7XG4gICAgICB9XG4gICAgICBpZiAob3V0Y29tZS5raW5kID09PSAnbWlzc2luZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyTWlzc2luZ1N0YXRlRXJyb3Iob3V0Y29tZS5kZXRhaWwpO1xuICAgICAgfVxuICAgICAgaWYgKG91dGNvbWUua2luZCA9PT0gJ3Vuc3VwcG9ydGVkJykge1xuICAgICAgICB0aHJvdyBuZXcgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJVbnN1cHBvcnRlZFN0YXRlRXJyb3Iob3V0Y29tZS5zdGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIHBvbGxJbnRlcnZhbE1zKSk7XG4gICAgfSB3aGlsZSAodHJ1ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGVycm9yIGZvciBBdGhlbmEgcXVlcnkgZXhlY3V0aW9uIHdhaXRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtZXNzYWdlIEVycm9yIG1lc3NhZ2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlckVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIHdhaXRpbmcgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiB0aW1lcyBvdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclRpbWVvdXRFcnJvciBleHRlbmRzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZWxhcHNlZFRpbWUgRWxhcHNlZCB0aW1lIGluIG1pbGxpc2Vjb25kcyB1bnRpbCB0aW1lb3V0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbGFwc2VkVGltZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoYEF0aGVuYSBxdWVyeSB0aW1lZCBvdXQgYWZ0ZXIgJHtlbGFwc2VkVGltZX1tc2ApO1xuICAgIHRoaXMubmFtZSA9ICdBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclRpbWVvdXRFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiB0aGUgcXVlcnkgZW5kcyBpbiBGQUlMRUQgb3IgQ0FOQ0VMTEVEIHN0YXRlLlxuICovXG5leHBvcnQgY2xhc3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJTdGF0ZUVycm9yIGV4dGVuZHMgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJFcnJvciB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzdGF0ZSBGaW5hbCBleGVjdXRpb24gc3RhdGUgKEZBSUxFRCBvciBDQU5DRUxMRUQpXG4gICAqIEBwYXJhbSByZWFzb24gUmVhc29uIGZvciB0aGUgc3RhdGUgY2hhbmdlIChlLmcuIGVycm9yIGRldGFpbHMpLiBEZWZhdWx0cyB0byAndW5rbm93bicgd2hlbiBvbWl0dGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RhdGU6IFF1ZXJ5RXhlY3V0aW9uU3RhdGUsIHB1YmxpYyByZWFkb25seSByZWFzb246IHN0cmluZyA9ICd1bmtub3duJykge1xuICAgIHN1cGVyKGBBdGhlbmEgcXVlcnkgZXhlY3V0aW9uIGZhaWxlZCB3aXRoIHN0YXRlICR7c3RhdGV9OiAke3JlYXNvbn1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJTdGF0ZUVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIEdldFF1ZXJ5RXhlY3V0aW9uIHJlc3BvbnNlIGxhY2tzIFF1ZXJ5RXhlY3V0aW9uLCBTdGF0dXMsIG9yIFN0YXRlLlxuICovXG5leHBvcnQgY2xhc3MgQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJNaXNzaW5nU3RhdGVFcnJvciBleHRlbmRzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZGV0YWlsIFdoaWNoIHBhcnQgb2YgdGhlIHJlc3BvbnNlIHdhcyBtaXNzaW5nXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGV0YWlsOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgQXRoZW5hIHF1ZXJ5IGV4ZWN1dGlvbiBzdGF0dXMgaXMgbWlzc2luZyBvciBpbmNvbXBsZXRlOiAke2RldGFpbH1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJNaXNzaW5nU3RhdGVFcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBTdGF0ZSBpcyBwcmVzZW50IGJ1dCBub3QgYSBrbm93biB7QGxpbmsgUXVlcnlFeGVjdXRpb25TdGF0ZX0gdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdGhlbmFRdWVyeUV4ZWN1dGlvbldhaXRlclVuc3VwcG9ydGVkU3RhdGVFcnJvciBleHRlbmRzIEF0aGVuYVF1ZXJ5RXhlY3V0aW9uV2FpdGVyRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc3RhdGUgVW5zdXBwb3J0ZWQgc3RhdGUgc3RyaW5nIHJldHVybmVkIGJ5IEF0aGVuYVxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHN0YXRlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgQXRoZW5hIHF1ZXJ5IGV4ZWN1dGlvbiByZXR1cm5lZCB1bnN1cHBvcnRlZCBzdGF0ZTogJHtzdGF0ZX1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQXRoZW5hUXVlcnlFeGVjdXRpb25XYWl0ZXJVbnN1cHBvcnRlZFN0YXRlRXJyb3InO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { QueryExecutionState } from '@aws-sdk/client-athena';
|
|
2
|
+
/** Minimal GetQueryExecution shape used for polling (State may be unknown at runtime). */
|
|
3
|
+
export interface QueryExecutionPollResponse {
|
|
4
|
+
QueryExecution?: {
|
|
5
|
+
Status?: {
|
|
6
|
+
State?: string;
|
|
7
|
+
StateChangeReason?: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/** Result of classifying a single GetQueryExecution poll. */
|
|
12
|
+
export type QueryExecutionPollOutcome = {
|
|
13
|
+
readonly kind: 'succeeded';
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: 'failed';
|
|
16
|
+
readonly state: typeof QueryExecutionState.FAILED | typeof QueryExecutionState.CANCELLED;
|
|
17
|
+
readonly reason: string;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'continue';
|
|
20
|
+
} | {
|
|
21
|
+
readonly kind: 'missing';
|
|
22
|
+
readonly detail: string;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'unsupported';
|
|
25
|
+
readonly state: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Classifies GetQueryExecution response for the waiter poll loop.
|
|
29
|
+
*
|
|
30
|
+
* @param response GetQueryExecution API response (or subset)
|
|
31
|
+
* @returns How the waiter should proceed for this poll
|
|
32
|
+
*/
|
|
33
|
+
export declare const classifyQueryExecutionPoll: (response: QueryExecutionPollResponse) => QueryExecutionPollOutcome;
|
|
34
|
+
/**
|
|
35
|
+
* @param outcome Outcome from {@link classifyQueryExecutionPoll}
|
|
36
|
+
* @returns Whether the waiter should poll again after the interval
|
|
37
|
+
*/
|
|
38
|
+
export declare const shouldContinuePolling: (outcome: QueryExecutionPollOutcome) => boolean;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldContinuePolling = exports.classifyQueryExecutionPoll = void 0;
|
|
4
|
+
const client_athena_1 = require("@aws-sdk/client-athena");
|
|
5
|
+
const IN_PROGRESS_STATES = new Set([
|
|
6
|
+
client_athena_1.QueryExecutionState.QUEUED,
|
|
7
|
+
client_athena_1.QueryExecutionState.RUNNING,
|
|
8
|
+
]);
|
|
9
|
+
/**
|
|
10
|
+
* Classifies GetQueryExecution response for the waiter poll loop.
|
|
11
|
+
*
|
|
12
|
+
* @param response GetQueryExecution API response (or subset)
|
|
13
|
+
* @returns How the waiter should proceed for this poll
|
|
14
|
+
*/
|
|
15
|
+
const classifyQueryExecutionPoll = (response) => {
|
|
16
|
+
const queryExecution = response.QueryExecution;
|
|
17
|
+
if (queryExecution === undefined) {
|
|
18
|
+
return {
|
|
19
|
+
kind: 'missing',
|
|
20
|
+
detail: 'QueryExecution is missing from GetQueryExecution response',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const status = queryExecution.Status;
|
|
24
|
+
if (status === undefined) {
|
|
25
|
+
return {
|
|
26
|
+
kind: 'missing',
|
|
27
|
+
detail: 'QueryExecution.Status is missing',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const state = status.State;
|
|
31
|
+
if (state === undefined) {
|
|
32
|
+
return {
|
|
33
|
+
kind: 'missing',
|
|
34
|
+
detail: 'QueryExecution.Status.State is missing',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (state === client_athena_1.QueryExecutionState.SUCCEEDED) {
|
|
38
|
+
return { kind: 'succeeded' };
|
|
39
|
+
}
|
|
40
|
+
if (state === client_athena_1.QueryExecutionState.FAILED) {
|
|
41
|
+
return {
|
|
42
|
+
kind: 'failed',
|
|
43
|
+
state: client_athena_1.QueryExecutionState.FAILED,
|
|
44
|
+
reason: status.StateChangeReason ?? 'unknown',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (state === client_athena_1.QueryExecutionState.CANCELLED) {
|
|
48
|
+
return {
|
|
49
|
+
kind: 'failed',
|
|
50
|
+
state: client_athena_1.QueryExecutionState.CANCELLED,
|
|
51
|
+
reason: status.StateChangeReason ?? 'unknown',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (IN_PROGRESS_STATES.has(state)) {
|
|
55
|
+
return { kind: 'continue' };
|
|
56
|
+
}
|
|
57
|
+
return { kind: 'unsupported', state };
|
|
58
|
+
};
|
|
59
|
+
exports.classifyQueryExecutionPoll = classifyQueryExecutionPoll;
|
|
60
|
+
/**
|
|
61
|
+
* @param outcome Outcome from {@link classifyQueryExecutionPoll}
|
|
62
|
+
* @returns Whether the waiter should poll again after the interval
|
|
63
|
+
*/
|
|
64
|
+
const shouldContinuePolling = (outcome) => outcome.kind === 'continue';
|
|
65
|
+
exports.shouldContinuePolling = shouldContinuePolling;
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1wcmVkaWNhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dhaXQtcHJlZGljYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBNkQ7QUF3QjdELE1BQU0sa0JBQWtCLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQ3RELG1DQUFtQixDQUFDLE1BQU07SUFDMUIsbUNBQW1CLENBQUMsT0FBTztDQUM1QixDQUFDLENBQUM7QUFFSDs7Ozs7R0FLRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsUUFBb0MsRUFDVCxFQUFFO0lBQzdCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDL0MsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLDJEQUEyRDtTQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDckMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLGtDQUFrQztTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLHdDQUF3QztTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksS0FBSyxLQUFLLG1DQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksS0FBSyxLQUFLLG1DQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxtQ0FBbUIsQ0FBQyxNQUFNO1lBQ2pDLE1BQU0sRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksU0FBUztTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksS0FBSyxLQUFLLG1DQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxtQ0FBbUIsQ0FBQyxTQUFTO1lBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksU0FBUztTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBbkRXLFFBQUEsMEJBQTBCLDhCQW1EckM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBa0MsRUFBVyxFQUFFLENBQ25GLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRGpCLFFBQUEscUJBQXFCLHlCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlFeGVjdXRpb25TdGF0ZSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hdGhlbmEnO1xuXG4vKiogTWluaW1hbCBHZXRRdWVyeUV4ZWN1dGlvbiBzaGFwZSB1c2VkIGZvciBwb2xsaW5nIChTdGF0ZSBtYXkgYmUgdW5rbm93biBhdCBydW50aW1lKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlFeGVjdXRpb25Qb2xsUmVzcG9uc2Uge1xuICBRdWVyeUV4ZWN1dGlvbj86IHtcbiAgICBTdGF0dXM/OiB7XG4gICAgICBTdGF0ZT86IHN0cmluZztcbiAgICAgIFN0YXRlQ2hhbmdlUmVhc29uPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5cbi8qKiBSZXN1bHQgb2YgY2xhc3NpZnlpbmcgYSBzaW5nbGUgR2V0UXVlcnlFeGVjdXRpb24gcG9sbC4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RXhlY3V0aW9uUG9sbE91dGNvbWUgPVxuICB8IHsgcmVhZG9ubHkga2luZDogJ3N1Y2NlZWRlZCcgfVxuICB8IHtcbiAgICByZWFkb25seSBraW5kOiAnZmFpbGVkJztcbiAgICByZWFkb25seSBzdGF0ZTogdHlwZW9mIFF1ZXJ5RXhlY3V0aW9uU3RhdGUuRkFJTEVEIHwgdHlwZW9mIFF1ZXJ5RXhlY3V0aW9uU3RhdGUuQ0FOQ0VMTEVEO1xuICAgIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nO1xuICB9XG4gIHwgeyByZWFkb25seSBraW5kOiAnY29udGludWUnIH1cbiAgfCB7IHJlYWRvbmx5IGtpbmQ6ICdtaXNzaW5nJzsgcmVhZG9ubHkgZGV0YWlsOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkga2luZDogJ3Vuc3VwcG9ydGVkJzsgcmVhZG9ubHkgc3RhdGU6IHN0cmluZyB9O1xuXG5jb25zdCBJTl9QUk9HUkVTU19TVEFURVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgUXVlcnlFeGVjdXRpb25TdGF0ZS5RVUVVRUQsXG4gIFF1ZXJ5RXhlY3V0aW9uU3RhdGUuUlVOTklORyxcbl0pO1xuXG4vKipcbiAqIENsYXNzaWZpZXMgR2V0UXVlcnlFeGVjdXRpb24gcmVzcG9uc2UgZm9yIHRoZSB3YWl0ZXIgcG9sbCBsb29wLlxuICpcbiAqIEBwYXJhbSByZXNwb25zZSBHZXRRdWVyeUV4ZWN1dGlvbiBBUEkgcmVzcG9uc2UgKG9yIHN1YnNldClcbiAqIEByZXR1cm5zIEhvdyB0aGUgd2FpdGVyIHNob3VsZCBwcm9jZWVkIGZvciB0aGlzIHBvbGxcbiAqL1xuZXhwb3J0IGNvbnN0IGNsYXNzaWZ5UXVlcnlFeGVjdXRpb25Qb2xsID0gKFxuICByZXNwb25zZTogUXVlcnlFeGVjdXRpb25Qb2xsUmVzcG9uc2UsXG4pOiBRdWVyeUV4ZWN1dGlvblBvbGxPdXRjb21lID0+IHtcbiAgY29uc3QgcXVlcnlFeGVjdXRpb24gPSByZXNwb25zZS5RdWVyeUV4ZWN1dGlvbjtcbiAgaWYgKHF1ZXJ5RXhlY3V0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ21pc3NpbmcnLFxuICAgICAgZGV0YWlsOiAnUXVlcnlFeGVjdXRpb24gaXMgbWlzc2luZyBmcm9tIEdldFF1ZXJ5RXhlY3V0aW9uIHJlc3BvbnNlJyxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgc3RhdHVzID0gcXVlcnlFeGVjdXRpb24uU3RhdHVzO1xuICBpZiAoc3RhdHVzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ21pc3NpbmcnLFxuICAgICAgZGV0YWlsOiAnUXVlcnlFeGVjdXRpb24uU3RhdHVzIGlzIG1pc3NpbmcnLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBzdGF0ZSA9IHN0YXR1cy5TdGF0ZTtcbiAgaWYgKHN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ21pc3NpbmcnLFxuICAgICAgZGV0YWlsOiAnUXVlcnlFeGVjdXRpb24uU3RhdHVzLlN0YXRlIGlzIG1pc3NpbmcnLFxuICAgIH07XG4gIH1cblxuICBpZiAoc3RhdGUgPT09IFF1ZXJ5RXhlY3V0aW9uU3RhdGUuU1VDQ0VFREVEKSB7XG4gICAgcmV0dXJuIHsga2luZDogJ3N1Y2NlZWRlZCcgfTtcbiAgfVxuXG4gIGlmIChzdGF0ZSA9PT0gUXVlcnlFeGVjdXRpb25TdGF0ZS5GQUlMRUQpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ2ZhaWxlZCcsXG4gICAgICBzdGF0ZTogUXVlcnlFeGVjdXRpb25TdGF0ZS5GQUlMRUQsXG4gICAgICByZWFzb246IHN0YXR1cy5TdGF0ZUNoYW5nZVJlYXNvbiA/PyAndW5rbm93bicsXG4gICAgfTtcbiAgfVxuICBpZiAoc3RhdGUgPT09IFF1ZXJ5RXhlY3V0aW9uU3RhdGUuQ0FOQ0VMTEVEKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6ICdmYWlsZWQnLFxuICAgICAgc3RhdGU6IFF1ZXJ5RXhlY3V0aW9uU3RhdGUuQ0FOQ0VMTEVELFxuICAgICAgcmVhc29uOiBzdGF0dXMuU3RhdGVDaGFuZ2VSZWFzb24gPz8gJ3Vua25vd24nLFxuICAgIH07XG4gIH1cblxuICBpZiAoSU5fUFJPR1JFU1NfU1RBVEVTLmhhcyhzdGF0ZSkpIHtcbiAgICByZXR1cm4geyBraW5kOiAnY29udGludWUnIH07XG4gIH1cblxuICByZXR1cm4geyBraW5kOiAndW5zdXBwb3J0ZWQnLCBzdGF0ZSB9O1xufTtcblxuLyoqXG4gKiBAcGFyYW0gb3V0Y29tZSBPdXRjb21lIGZyb20ge0BsaW5rIGNsYXNzaWZ5UXVlcnlFeGVjdXRpb25Qb2xsfVxuICogQHJldHVybnMgV2hldGhlciB0aGUgd2FpdGVyIHNob3VsZCBwb2xsIGFnYWluIGFmdGVyIHRoZSBpbnRlcnZhbFxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkQ29udGludWVQb2xsaW5nID0gKG91dGNvbWU6IFF1ZXJ5RXhlY3V0aW9uUG9sbE91dGNvbWUpOiBib29sZWFuID0+XG4gIG91dGNvbWUua2luZCA9PT0gJ2NvbnRpbnVlJztcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "athena-query-execution-waiter",
|
|
3
|
+
"description": "A small library that waits for an AWS Athena query execution to complete. It polls the Athena API until the execution reaches a terminal state: SUCCEEDED, FAILED, or CANCELLED.",
|
|
3
4
|
"repository": {
|
|
4
5
|
"type": "git",
|
|
5
6
|
"url": "https://github.com/gammarers-aws-sdk-extensions/athena-query-execution-waiter.git"
|
|
@@ -50,6 +51,14 @@
|
|
|
50
51
|
"dependencies": {
|
|
51
52
|
"@aws-sdk/client-athena": "^3.983.0"
|
|
52
53
|
},
|
|
54
|
+
"keywords": [
|
|
55
|
+
"athena",
|
|
56
|
+
"aws",
|
|
57
|
+
"aws-sdk",
|
|
58
|
+
"execution",
|
|
59
|
+
"query",
|
|
60
|
+
"waiter"
|
|
61
|
+
],
|
|
53
62
|
"engines": {
|
|
54
63
|
"node": ">= 20.0.0"
|
|
55
64
|
},
|
|
@@ -65,7 +74,7 @@
|
|
|
65
74
|
"publishConfig": {
|
|
66
75
|
"access": "public"
|
|
67
76
|
},
|
|
68
|
-
"version": "0.
|
|
77
|
+
"version": "0.5.0",
|
|
69
78
|
"jest": {
|
|
70
79
|
"coverageProvider": "v8",
|
|
71
80
|
"testMatch": [
|