@azure-rest/load-testing 1.1.0-beta.1 → 1.2.0-beta.1
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/CHANGELOG.md +12 -0
- package/LICENSE +1 -1
- package/README.md +12 -13
- package/dist/browser/azureLoadTesting.js +14 -12
- package/dist/browser/azureLoadTesting.js.map +1 -1
- package/dist/browser/clientDefinitions.d.ts +66 -34
- package/dist/browser/clientDefinitions.js.map +1 -1
- package/dist/browser/getFileValidationPoller.js +16 -11
- package/dist/browser/getFileValidationPoller.js.map +1 -1
- package/dist/browser/getTestProfileRunCompletionPoller.js +16 -11
- package/dist/browser/getTestProfileRunCompletionPoller.js.map +1 -1
- package/dist/browser/getTestRunCompletionPoller.js +16 -11
- package/dist/browser/getTestRunCompletionPoller.js.map +1 -1
- package/dist/browser/index.d.ts +6 -6
- package/dist/browser/index.js +1 -7
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/isUnexpected.d.ts +15 -9
- package/dist/browser/isUnexpected.js +21 -13
- package/dist/browser/isUnexpected.js.map +1 -1
- package/dist/browser/models.d.ts +205 -172
- package/dist/browser/models.js.map +1 -1
- package/dist/browser/outputModels.d.ts +290 -208
- package/dist/browser/outputModels.js.map +1 -1
- package/dist/browser/paginateHelper.js +43 -73
- package/dist/browser/paginateHelper.js.map +1 -1
- package/dist/browser/parameters.d.ts +107 -66
- package/dist/browser/parameters.js.map +1 -1
- package/dist/browser/pollingHelper.d.ts +82 -4
- package/dist/browser/pollingHelper.js +119 -15
- package/dist/browser/pollingHelper.js.map +1 -1
- package/dist/browser/responses.d.ts +234 -121
- package/dist/browser/responses.js.map +1 -1
- package/dist/commonjs/azureLoadTesting.js +53 -45
- package/dist/commonjs/azureLoadTesting.js.map +7 -1
- package/dist/commonjs/clientDefinitions.d.ts +66 -34
- package/dist/commonjs/clientDefinitions.js +15 -5
- package/dist/commonjs/clientDefinitions.js.map +7 -1
- package/dist/commonjs/getFileValidationPoller.js +151 -137
- package/dist/commonjs/getFileValidationPoller.js.map +7 -1
- package/dist/commonjs/getTestProfileRunCompletionPoller.js +139 -127
- package/dist/commonjs/getTestProfileRunCompletionPoller.js.map +7 -1
- package/dist/commonjs/getTestRunCompletionPoller.js +139 -125
- package/dist/commonjs/getTestRunCompletionPoller.js.map +7 -1
- package/dist/commonjs/index.d.ts +6 -6
- package/dist/commonjs/index.js +46 -20
- package/dist/commonjs/index.js.map +7 -1
- package/dist/commonjs/isUnexpected.d.ts +15 -9
- package/dist/commonjs/isUnexpected.js +118 -105
- package/dist/commonjs/isUnexpected.js.map +7 -1
- package/dist/commonjs/logger.js +28 -8
- package/dist/commonjs/logger.js.map +7 -1
- package/dist/commonjs/models.d.ts +205 -172
- package/dist/commonjs/models.js +15 -5
- package/dist/commonjs/models.js.map +7 -1
- package/dist/commonjs/outputModels.d.ts +290 -208
- package/dist/commonjs/outputModels.js +15 -5
- package/dist/commonjs/outputModels.js.map +7 -1
- package/dist/commonjs/paginateHelper.js +118 -158
- package/dist/commonjs/paginateHelper.js.map +7 -1
- package/dist/commonjs/parameters.d.ts +107 -66
- package/dist/commonjs/parameters.js +15 -5
- package/dist/commonjs/parameters.js.map +7 -1
- package/dist/commonjs/pollingHelper.d.ts +82 -4
- package/dist/commonjs/pollingHelper.js +143 -24
- package/dist/commonjs/pollingHelper.js.map +7 -1
- package/dist/commonjs/responses.d.ts +234 -121
- package/dist/commonjs/responses.js +15 -5
- package/dist/commonjs/responses.js.map +7 -1
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/util/LROUtil.js +76 -54
- package/dist/commonjs/util/LROUtil.js.map +7 -1
- package/dist/esm/azureLoadTesting.js +32 -40
- package/dist/esm/azureLoadTesting.js.map +7 -1
- package/dist/esm/clientDefinitions.d.ts +66 -34
- package/dist/esm/clientDefinitions.js +0 -4
- package/dist/esm/clientDefinitions.js.map +7 -1
- package/dist/esm/getFileValidationPoller.js +126 -132
- package/dist/esm/getFileValidationPoller.js.map +7 -1
- package/dist/esm/getTestProfileRunCompletionPoller.js +114 -122
- package/dist/esm/getTestProfileRunCompletionPoller.js.map +7 -1
- package/dist/esm/getTestRunCompletionPoller.js +114 -120
- package/dist/esm/getTestRunCompletionPoller.js.map +7 -1
- package/dist/esm/index.d.ts +6 -6
- package/dist/esm/index.js +5 -11
- package/dist/esm/index.js.map +7 -1
- package/dist/esm/isUnexpected.d.ts +15 -9
- package/dist/esm/isUnexpected.js +96 -103
- package/dist/esm/isUnexpected.js.map +7 -1
- package/dist/esm/logger.js +4 -4
- package/dist/esm/logger.js.map +7 -1
- package/dist/esm/models.d.ts +205 -172
- package/dist/esm/models.js +0 -4
- package/dist/esm/models.js.map +7 -1
- package/dist/esm/outputModels.d.ts +290 -208
- package/dist/esm/outputModels.js +0 -4
- package/dist/esm/outputModels.js.map +7 -1
- package/dist/esm/paginateHelper.js +95 -155
- package/dist/esm/paginateHelper.js.map +7 -1
- package/dist/esm/parameters.d.ts +107 -66
- package/dist/esm/parameters.js +0 -4
- package/dist/esm/parameters.js.map +7 -1
- package/dist/esm/pollingHelper.d.ts +82 -4
- package/dist/esm/pollingHelper.js +117 -18
- package/dist/esm/pollingHelper.js.map +7 -1
- package/dist/esm/responses.d.ts +234 -121
- package/dist/esm/responses.js +0 -4
- package/dist/esm/responses.js.map +7 -1
- package/dist/esm/util/LROUtil.js +52 -50
- package/dist/esm/util/LROUtil.js.map +7 -1
- package/dist/react-native/azureLoadTesting.js +14 -12
- package/dist/react-native/azureLoadTesting.js.map +1 -1
- package/dist/react-native/clientDefinitions.d.ts +66 -34
- package/dist/react-native/clientDefinitions.js.map +1 -1
- package/dist/react-native/getFileValidationPoller.js +16 -11
- package/dist/react-native/getFileValidationPoller.js.map +1 -1
- package/dist/react-native/getTestProfileRunCompletionPoller.js +16 -11
- package/dist/react-native/getTestProfileRunCompletionPoller.js.map +1 -1
- package/dist/react-native/getTestRunCompletionPoller.js +16 -11
- package/dist/react-native/getTestRunCompletionPoller.js.map +1 -1
- package/dist/react-native/index.d.ts +6 -6
- package/dist/react-native/index.js +1 -7
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/isUnexpected.d.ts +15 -9
- package/dist/react-native/isUnexpected.js +21 -13
- package/dist/react-native/isUnexpected.js.map +1 -1
- package/dist/react-native/models.d.ts +205 -172
- package/dist/react-native/models.js.map +1 -1
- package/dist/react-native/outputModels.d.ts +290 -208
- package/dist/react-native/outputModels.js.map +1 -1
- package/dist/react-native/paginateHelper.js +43 -73
- package/dist/react-native/paginateHelper.js.map +1 -1
- package/dist/react-native/parameters.d.ts +107 -66
- package/dist/react-native/parameters.js.map +1 -1
- package/dist/react-native/pollingHelper.d.ts +82 -4
- package/dist/react-native/pollingHelper.js +119 -15
- package/dist/react-native/pollingHelper.js.map +1 -1
- package/dist/react-native/responses.d.ts +234 -121
- package/dist/react-native/responses.js.map +1 -1
- package/package.json +69 -86
- package/review/{load-testing.api.md → load-testing-node.api.md} +420 -23
- package/dist/browser/azureLoadTesting.d.ts.map +0 -1
- package/dist/browser/clientDefinitions.d.ts.map +0 -1
- package/dist/browser/getFileValidationPoller.d.ts.map +0 -1
- package/dist/browser/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/browser/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/isUnexpected.d.ts.map +0 -1
- package/dist/browser/logger.d.ts.map +0 -1
- package/dist/browser/models.d.ts.map +0 -1
- package/dist/browser/outputModels.d.ts.map +0 -1
- package/dist/browser/paginateHelper.d.ts.map +0 -1
- package/dist/browser/parameters.d.ts.map +0 -1
- package/dist/browser/pollingHelper.d.ts.map +0 -1
- package/dist/browser/responses.d.ts.map +0 -1
- package/dist/browser/util/LROUtil.d.ts.map +0 -1
- package/dist/commonjs/azureLoadTesting.d.ts.map +0 -1
- package/dist/commonjs/clientDefinitions.d.ts.map +0 -1
- package/dist/commonjs/getFileValidationPoller.d.ts.map +0 -1
- package/dist/commonjs/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/commonjs/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/commonjs/index.d.ts.map +0 -1
- package/dist/commonjs/isUnexpected.d.ts.map +0 -1
- package/dist/commonjs/logger.d.ts.map +0 -1
- package/dist/commonjs/models.d.ts.map +0 -1
- package/dist/commonjs/outputModels.d.ts.map +0 -1
- package/dist/commonjs/paginateHelper.d.ts.map +0 -1
- package/dist/commonjs/parameters.d.ts.map +0 -1
- package/dist/commonjs/pollingHelper.d.ts.map +0 -1
- package/dist/commonjs/responses.d.ts.map +0 -1
- package/dist/commonjs/util/LROUtil.d.ts.map +0 -1
- package/dist/esm/azureLoadTesting.d.ts.map +0 -1
- package/dist/esm/clientDefinitions.d.ts.map +0 -1
- package/dist/esm/getFileValidationPoller.d.ts.map +0 -1
- package/dist/esm/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/esm/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/isUnexpected.d.ts.map +0 -1
- package/dist/esm/logger.d.ts.map +0 -1
- package/dist/esm/models.d.ts.map +0 -1
- package/dist/esm/outputModels.d.ts.map +0 -1
- package/dist/esm/paginateHelper.d.ts.map +0 -1
- package/dist/esm/parameters.d.ts.map +0 -1
- package/dist/esm/pollingHelper.d.ts.map +0 -1
- package/dist/esm/responses.d.ts.map +0 -1
- package/dist/esm/util/LROUtil.d.ts.map +0 -1
- package/dist/react-native/azureLoadTesting.d.ts.map +0 -1
- package/dist/react-native/clientDefinitions.d.ts.map +0 -1
- package/dist/react-native/getFileValidationPoller.d.ts.map +0 -1
- package/dist/react-native/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/react-native/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/react-native/index.d.ts.map +0 -1
- package/dist/react-native/isUnexpected.d.ts.map +0 -1
- package/dist/react-native/logger.d.ts.map +0 -1
- package/dist/react-native/models.d.ts.map +0 -1
- package/dist/react-native/outputModels.d.ts.map +0 -1
- package/dist/react-native/paginateHelper.d.ts.map +0 -1
- package/dist/react-native/parameters.d.ts.map +0 -1
- package/dist/react-native/pollingHelper.d.ts.map +0 -1
- package/dist/react-native/responses.d.ts.map +0 -1
- package/dist/react-native/util/LROUtil.d.ts.map +0 -1
|
@@ -1,127 +1,119 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { AbortError } from "@azure/abort-controller";
|
|
4
2
|
import { isUnexpected } from "./isUnexpected.js";
|
|
5
3
|
import { sleep, isTestProfileRunInProgress } from "./util/LROUtil.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
4
|
+
async function getTestProfileRunCompletionPoller(client, createTestProfileRunResponse, polledOperationOptions = {}) {
|
|
5
|
+
const state = {
|
|
6
|
+
status: "notStarted"
|
|
7
|
+
};
|
|
8
|
+
const progressCallbacks = /* @__PURE__ */ new Map();
|
|
9
|
+
const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
|
|
10
|
+
let resultPromise;
|
|
11
|
+
let cancelJob;
|
|
12
|
+
const abortController = new AbortController();
|
|
13
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 1e4;
|
|
14
|
+
const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;
|
|
15
|
+
const poller = {
|
|
16
|
+
async poll(options) {
|
|
17
|
+
if (options?.abortSignal?.aborted) {
|
|
18
|
+
throw new AbortError("The polling was aborted.");
|
|
19
|
+
}
|
|
20
|
+
if (testProfileRunId) {
|
|
21
|
+
const getTestProfileRunResult = await client.path("/test-profile-runs/{testProfileRunId}", testProfileRunId).get();
|
|
22
|
+
if (isUnexpected(getTestProfileRunResult)) {
|
|
23
|
+
state.status = "failed";
|
|
24
|
+
state.error = new Error(getTestProfileRunResult.body.error.message);
|
|
25
|
+
return state;
|
|
26
|
+
}
|
|
27
|
+
if (getTestProfileRunResult.body.status === "FAILED") {
|
|
28
|
+
state.status = "failed";
|
|
29
|
+
state.error = new Error(getTestProfileRunResult.body.status);
|
|
30
|
+
}
|
|
31
|
+
if (getTestProfileRunResult.body.status === "CANCELLED") {
|
|
32
|
+
state.status = "canceled";
|
|
33
|
+
}
|
|
34
|
+
if (getTestProfileRunResult.body.status === "DONE") {
|
|
35
|
+
state.status = "succeeded";
|
|
36
|
+
}
|
|
37
|
+
if (isTestProfileRunInProgress(getTestProfileRunResult.body)) {
|
|
38
|
+
state.status = "running";
|
|
39
|
+
}
|
|
40
|
+
state.result = getTestProfileRunResult;
|
|
41
|
+
await processProgressCallbacks();
|
|
42
|
+
}
|
|
43
|
+
return state;
|
|
44
|
+
},
|
|
45
|
+
pollUntilDone(pollOptions) {
|
|
46
|
+
return resultPromise ??= (async () => {
|
|
47
|
+
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
48
|
+
function abortListener() {
|
|
49
|
+
abortController.abort();
|
|
50
|
+
}
|
|
51
|
+
const abortSignal = abortController.signal;
|
|
52
|
+
if (inputAbortSignal?.aborted) {
|
|
53
|
+
abortController.abort();
|
|
54
|
+
} else if (!abortSignal.aborted) {
|
|
55
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
if (!poller.isDone()) {
|
|
59
|
+
await poller.poll({ abortSignal });
|
|
60
|
+
while (!poller.isDone()) {
|
|
61
|
+
const delay = sleep(currentPollIntervalInMs, abortSignal);
|
|
62
|
+
cancelJob = () => abortController.abort();
|
|
63
|
+
await delay;
|
|
64
|
+
await poller.poll({ abortSignal });
|
|
29
65
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
finally {
|
|
82
|
-
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.removeEventListener("abort", abortListener);
|
|
83
|
-
}
|
|
84
|
-
switch (state.status) {
|
|
85
|
-
case "succeeded":
|
|
86
|
-
case "failed":
|
|
87
|
-
case "canceled": {
|
|
88
|
-
return poller.getResult();
|
|
89
|
-
}
|
|
90
|
-
case "notStarted":
|
|
91
|
-
case "running": {
|
|
92
|
-
// Unreachable
|
|
93
|
-
throw new Error(`polling completed without succeeding or failing`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
})().finally(() => {
|
|
97
|
-
resultPromise = undefined;
|
|
98
|
-
})));
|
|
99
|
-
},
|
|
100
|
-
onProgress(callback) {
|
|
101
|
-
const s = Symbol();
|
|
102
|
-
progressCallbacks.set(s, callback);
|
|
103
|
-
return () => progressCallbacks.delete(s);
|
|
104
|
-
},
|
|
105
|
-
isDone() {
|
|
106
|
-
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
107
|
-
},
|
|
108
|
-
stopPolling() {
|
|
109
|
-
abortController.abort();
|
|
110
|
-
cancelJob === null || cancelJob === void 0 ? void 0 : cancelJob();
|
|
111
|
-
},
|
|
112
|
-
isStopped() {
|
|
113
|
-
return resultPromise === undefined;
|
|
114
|
-
},
|
|
115
|
-
getOperationState() {
|
|
116
|
-
return state;
|
|
117
|
-
},
|
|
118
|
-
getResult() {
|
|
119
|
-
return state.result;
|
|
120
|
-
},
|
|
121
|
-
toString() {
|
|
122
|
-
return JSON.stringify({ state });
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
return poller;
|
|
66
|
+
}
|
|
67
|
+
} finally {
|
|
68
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
69
|
+
}
|
|
70
|
+
switch (state.status) {
|
|
71
|
+
case "succeeded":
|
|
72
|
+
case "failed":
|
|
73
|
+
case "canceled": {
|
|
74
|
+
return poller.getResult();
|
|
75
|
+
}
|
|
76
|
+
case "notStarted":
|
|
77
|
+
case "running": {
|
|
78
|
+
throw new Error(`polling completed without succeeding or failing`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
})().finally(() => {
|
|
82
|
+
resultPromise = void 0;
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
onProgress(callback) {
|
|
86
|
+
const s = /* @__PURE__ */ Symbol();
|
|
87
|
+
progressCallbacks.set(s, callback);
|
|
88
|
+
return () => progressCallbacks.delete(s);
|
|
89
|
+
},
|
|
90
|
+
isDone() {
|
|
91
|
+
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
92
|
+
},
|
|
93
|
+
stopPolling() {
|
|
94
|
+
abortController.abort();
|
|
95
|
+
cancelJob?.();
|
|
96
|
+
},
|
|
97
|
+
isStopped() {
|
|
98
|
+
return resultPromise === void 0;
|
|
99
|
+
},
|
|
100
|
+
getOperationState() {
|
|
101
|
+
return state;
|
|
102
|
+
},
|
|
103
|
+
getResult() {
|
|
104
|
+
return state.result;
|
|
105
|
+
},
|
|
106
|
+
toString() {
|
|
107
|
+
return JSON.stringify({ state });
|
|
108
|
+
},
|
|
109
|
+
async serialize() {
|
|
110
|
+
return JSON.stringify({ state });
|
|
111
|
+
},
|
|
112
|
+
async submitted() {
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
return poller;
|
|
126
116
|
}
|
|
127
|
-
|
|
117
|
+
export {
|
|
118
|
+
getTestProfileRunCompletionPoller
|
|
119
|
+
};
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"getTestProfileRunCompletionPoller.js","sourceRoot":"","sources":["../../src/getTestProfileRunCompletionPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState, SimplePollerLike } from \"@azure/core-lro\";\nimport type { PolledOperationOptions, TestProfileRunCompletionPoller } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response,\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n TestProfileRunAdministrationGetTestProfileRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestProfileRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestProfileRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestProfileRunResponse:\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestProfileRunCompletionPoller> {\n type Handler = (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void;\n\n const state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<TestProfileRunAdministrationGetTestProfileRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 10000;\n const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;\n\n const poller: SimplePollerLike<\n OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n TestProfileRunAdministrationGetTestProfileRun200Response\n > = {\n async poll(options?: { abortSignal?: AbortSignalLike }): Promise<void> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testProfileRunId) {\n const getTestProfileRunResult = await client\n .path(\"/test-profile-runs/{testProfileRunId}\", testProfileRunId)\n .get();\n if (isUnexpected(getTestProfileRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.error.message);\n return;\n }\n\n if (getTestProfileRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.status);\n }\n\n if (getTestProfileRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestProfileRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestProfileRunInProgress(getTestProfileRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestProfileRunResult;\n await processProgressCallbacks();\n }\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as TestProfileRunAdministrationGetTestProfileRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return state;\n },\n\n getResult(): TestProfileRunAdministrationGetTestProfileRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n };\n\n return poller;\n}\n"]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/load-testing-rest/src/getTestProfileRunCompletionPoller.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState } from \"@azure/core-lro\";\nimport type { SimplePollerLike } from \"./pollingHelper.js\";\nimport type { PolledOperationOptions, TestProfileRunCompletionPoller } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response,\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n TestProfileRunAdministrationGetTestProfileRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestProfileRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestProfileRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestProfileRunResponse:\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestProfileRunCompletionPoller> {\n type Handler = (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void;\n\n const state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<TestProfileRunAdministrationGetTestProfileRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 10000;\n const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;\n\n const poller: SimplePollerLike<\n OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n TestProfileRunAdministrationGetTestProfileRun200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testProfileRunId) {\n const getTestProfileRunResult = await client\n .path(\"/test-profile-runs/{testProfileRunId}\", testProfileRunId)\n .get();\n if (isUnexpected(getTestProfileRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.error.message);\n return state;\n }\n\n if (getTestProfileRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.status);\n }\n\n if (getTestProfileRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestProfileRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestProfileRunInProgress(getTestProfileRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestProfileRunResult;\n await processProgressCallbacks();\n }\n\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as TestProfileRunAdministrationGetTestProfileRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return state;\n },\n\n getResult(): TestProfileRunAdministrationGetTestProfileRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n\n async submitted(): Promise<void> {\n // No-op: the test profile run is a custom poller\n },\n };\n\n return poller;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,125 +1,119 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { AbortError } from "@azure/abort-controller";
|
|
4
2
|
import { isUnexpected } from "./isUnexpected.js";
|
|
5
3
|
import { sleep, isTestRunInProgress } from "./util/LROUtil.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
4
|
+
async function getTestRunCompletionPoller(client, createTestRunResponse, polledOperationOptions = {}) {
|
|
5
|
+
const state = {
|
|
6
|
+
status: "notStarted"
|
|
7
|
+
};
|
|
8
|
+
const progressCallbacks = /* @__PURE__ */ new Map();
|
|
9
|
+
const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
|
|
10
|
+
let resultPromise;
|
|
11
|
+
let cancelJob;
|
|
12
|
+
const abortController = new AbortController();
|
|
13
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2e3;
|
|
14
|
+
const testRunId = createTestRunResponse.body.testRunId;
|
|
15
|
+
const poller = {
|
|
16
|
+
async poll(options) {
|
|
17
|
+
if (options?.abortSignal?.aborted) {
|
|
18
|
+
throw new AbortError("The polling was aborted.");
|
|
19
|
+
}
|
|
20
|
+
if (testRunId) {
|
|
21
|
+
const getTestRunResult = await client.path("/test-runs/{testRunId}", testRunId).get();
|
|
22
|
+
if (isUnexpected(getTestRunResult)) {
|
|
23
|
+
state.status = "failed";
|
|
24
|
+
state.error = new Error(getTestRunResult.body.error.message);
|
|
25
|
+
return state;
|
|
26
|
+
}
|
|
27
|
+
if (getTestRunResult.body.status === "FAILED") {
|
|
28
|
+
state.status = "failed";
|
|
29
|
+
state.error = new Error(getTestRunResult.body.status);
|
|
30
|
+
}
|
|
31
|
+
if (getTestRunResult.body.status === "CANCELLED") {
|
|
32
|
+
state.status = "canceled";
|
|
33
|
+
}
|
|
34
|
+
if (getTestRunResult.body.status === "DONE") {
|
|
35
|
+
state.status = "succeeded";
|
|
36
|
+
}
|
|
37
|
+
if (isTestRunInProgress(getTestRunResult.body)) {
|
|
38
|
+
state.status = "running";
|
|
39
|
+
}
|
|
40
|
+
state.result = getTestRunResult;
|
|
41
|
+
await processProgressCallbacks();
|
|
42
|
+
}
|
|
43
|
+
return state;
|
|
44
|
+
},
|
|
45
|
+
pollUntilDone(pollOptions) {
|
|
46
|
+
return resultPromise ??= (async () => {
|
|
47
|
+
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
48
|
+
function abortListener() {
|
|
49
|
+
abortController.abort();
|
|
50
|
+
}
|
|
51
|
+
const abortSignal = abortController.signal;
|
|
52
|
+
if (inputAbortSignal?.aborted) {
|
|
53
|
+
abortController.abort();
|
|
54
|
+
} else if (!abortSignal.aborted) {
|
|
55
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
if (!poller.isDone()) {
|
|
59
|
+
await poller.poll({ abortSignal });
|
|
60
|
+
while (!poller.isDone()) {
|
|
61
|
+
const delay = sleep(currentPollIntervalInMs, abortSignal);
|
|
62
|
+
cancelJob = () => abortController.abort();
|
|
63
|
+
await delay;
|
|
64
|
+
await poller.poll({ abortSignal });
|
|
29
65
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.removeEventListener("abort", abortListener);
|
|
81
|
-
}
|
|
82
|
-
switch (state.status) {
|
|
83
|
-
case "succeeded":
|
|
84
|
-
case "failed":
|
|
85
|
-
case "canceled": {
|
|
86
|
-
return poller.getResult();
|
|
87
|
-
}
|
|
88
|
-
case "notStarted":
|
|
89
|
-
case "running": {
|
|
90
|
-
// Unreachable
|
|
91
|
-
throw new Error(`polling completed without succeeding or failing`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
})().finally(() => {
|
|
95
|
-
resultPromise = undefined;
|
|
96
|
-
})));
|
|
97
|
-
},
|
|
98
|
-
onProgress(callback) {
|
|
99
|
-
const s = Symbol();
|
|
100
|
-
progressCallbacks.set(s, callback);
|
|
101
|
-
return () => progressCallbacks.delete(s);
|
|
102
|
-
},
|
|
103
|
-
isDone() {
|
|
104
|
-
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
105
|
-
},
|
|
106
|
-
stopPolling() {
|
|
107
|
-
abortController.abort();
|
|
108
|
-
cancelJob === null || cancelJob === void 0 ? void 0 : cancelJob();
|
|
109
|
-
},
|
|
110
|
-
isStopped() {
|
|
111
|
-
return resultPromise === undefined;
|
|
112
|
-
},
|
|
113
|
-
getOperationState() {
|
|
114
|
-
return state;
|
|
115
|
-
},
|
|
116
|
-
getResult() {
|
|
117
|
-
return state.result;
|
|
118
|
-
},
|
|
119
|
-
toString() {
|
|
120
|
-
return JSON.stringify({ state });
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
return poller;
|
|
66
|
+
}
|
|
67
|
+
} finally {
|
|
68
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
69
|
+
}
|
|
70
|
+
switch (state.status) {
|
|
71
|
+
case "succeeded":
|
|
72
|
+
case "failed":
|
|
73
|
+
case "canceled": {
|
|
74
|
+
return poller.getResult();
|
|
75
|
+
}
|
|
76
|
+
case "notStarted":
|
|
77
|
+
case "running": {
|
|
78
|
+
throw new Error(`polling completed without succeeding or failing`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
})().finally(() => {
|
|
82
|
+
resultPromise = void 0;
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
onProgress(callback) {
|
|
86
|
+
const s = /* @__PURE__ */ Symbol();
|
|
87
|
+
progressCallbacks.set(s, callback);
|
|
88
|
+
return () => progressCallbacks.delete(s);
|
|
89
|
+
},
|
|
90
|
+
isDone() {
|
|
91
|
+
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
92
|
+
},
|
|
93
|
+
stopPolling() {
|
|
94
|
+
abortController.abort();
|
|
95
|
+
cancelJob?.();
|
|
96
|
+
},
|
|
97
|
+
isStopped() {
|
|
98
|
+
return resultPromise === void 0;
|
|
99
|
+
},
|
|
100
|
+
getOperationState() {
|
|
101
|
+
return state;
|
|
102
|
+
},
|
|
103
|
+
getResult() {
|
|
104
|
+
return state.result;
|
|
105
|
+
},
|
|
106
|
+
toString() {
|
|
107
|
+
return JSON.stringify({ state });
|
|
108
|
+
},
|
|
109
|
+
async serialize() {
|
|
110
|
+
return JSON.stringify({ state });
|
|
111
|
+
},
|
|
112
|
+
async submitted() {
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
return poller;
|
|
124
116
|
}
|
|
125
|
-
|
|
117
|
+
export {
|
|
118
|
+
getTestRunCompletionPoller
|
|
119
|
+
};
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/load-testing-rest/src/getTestRunCompletionPoller.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState } from \"@azure/core-lro\";\nimport type { SimplePollerLike } from \"./pollingHelper.js\";\nimport type { TestRunCompletionPoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestRunCreateOrUpdateTestRun200Response,\n LoadTestRunCreateOrUpdateTestRun201Response,\n LoadTestRunGetTestRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestRunResponse:\n | LoadTestRunCreateOrUpdateTestRun200Response\n | LoadTestRunCreateOrUpdateTestRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestRunCompletionPoller> {\n type Handler = (state: OperationState<LoadTestRunGetTestRun200Response>) => void;\n\n const state: OperationState<LoadTestRunGetTestRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<LoadTestRunGetTestRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n const testRunId = createTestRunResponse.body.testRunId;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestRunGetTestRun200Response>,\n LoadTestRunGetTestRun200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<LoadTestRunGetTestRun200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testRunId) {\n const getTestRunResult = await client.path(\"/test-runs/{testRunId}\", testRunId).get();\n if (isUnexpected(getTestRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.error.message);\n return state;\n }\n\n if (getTestRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.status);\n }\n\n if (getTestRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestRunInProgress(getTestRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestRunResult;\n await processProgressCallbacks();\n }\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestRunGetTestRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as LoadTestRunGetTestRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (state: OperationState<LoadTestRunGetTestRun200Response>) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<LoadTestRunGetTestRun200Response> {\n return state;\n },\n\n getResult(): LoadTestRunGetTestRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n\n async submitted(): Promise<void> {\n // No-op: the test run is a custom poller\n },\n };\n\n return poller;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import AzureLoadTesting from "./azureLoadTesting.js";
|
|
2
2
|
export * from "./azureLoadTesting.js";
|
|
3
|
-
export * from "./parameters.js";
|
|
4
|
-
export * from "./responses.js";
|
|
5
|
-
export * from "./clientDefinitions.js";
|
|
3
|
+
export type * from "./parameters.js";
|
|
4
|
+
export type * from "./responses.js";
|
|
5
|
+
export type * from "./clientDefinitions.js";
|
|
6
6
|
export * from "./isUnexpected.js";
|
|
7
|
-
export * from "./models.js";
|
|
8
|
-
export * from "./outputModels.js";
|
|
7
|
+
export type * from "./models.js";
|
|
8
|
+
export type * from "./outputModels.js";
|
|
9
9
|
export * from "./paginateHelper.js";
|
|
10
|
-
export
|
|
10
|
+
export * from "./pollingHelper.js";
|
|
11
11
|
export default AzureLoadTesting;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import AzureLoadTesting from "./azureLoadTesting.js";
|
|
4
2
|
export * from "./azureLoadTesting.js";
|
|
5
|
-
export * from "./parameters.js";
|
|
6
|
-
export * from "./responses.js";
|
|
7
|
-
export * from "./clientDefinitions.js";
|
|
8
3
|
export * from "./isUnexpected.js";
|
|
9
|
-
export * from "./models.js";
|
|
10
|
-
export * from "./outputModels.js";
|
|
11
4
|
export * from "./paginateHelper.js";
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
|
|
5
|
+
export * from "./pollingHelper.js";
|
|
6
|
+
var src_default = AzureLoadTesting;
|
|
7
|
+
export {
|
|
8
|
+
src_default as default
|
|
9
|
+
};
|