@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,140 +1,154 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var getFileValidationPoller_exports = {};
|
|
19
|
+
__export(getFileValidationPoller_exports, {
|
|
20
|
+
getFileValidationPoller: () => getFileValidationPoller
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(getFileValidationPoller_exports);
|
|
23
|
+
var import_abort_controller = require("@azure/abort-controller");
|
|
24
|
+
var import_isUnexpected = require("./isUnexpected.js");
|
|
25
|
+
var import_LROUtil = require("./util/LROUtil.js");
|
|
15
26
|
async function getFileValidationPoller(client, fileUploadResult, polledOperationOptions = {}) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
const fileName = fileUploadResult.body.fileName;
|
|
28
|
+
const requestUrl = fileUploadResult.request.url;
|
|
29
|
+
const testId = requestUrl.substring(
|
|
30
|
+
requestUrl.indexOf("tests/") + 6,
|
|
31
|
+
requestUrl.lastIndexOf("/files")
|
|
32
|
+
);
|
|
33
|
+
const state = {
|
|
34
|
+
status: "notStarted"
|
|
35
|
+
};
|
|
36
|
+
const progressCallbacks = /* @__PURE__ */ new Map();
|
|
37
|
+
const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
|
|
38
|
+
let resultPromise;
|
|
39
|
+
let cancelJob;
|
|
40
|
+
const abortController = new AbortController();
|
|
41
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2e3;
|
|
42
|
+
const poller = {
|
|
43
|
+
async poll(options) {
|
|
44
|
+
if (options?.abortSignal?.aborted) {
|
|
45
|
+
throw new import_abort_controller.AbortError("The polling was aborted.");
|
|
46
|
+
}
|
|
47
|
+
if (fileName) {
|
|
48
|
+
const fileValidationResponse = await client.path("/tests/{testId}/files/{fileName}", testId, fileName).get();
|
|
49
|
+
if ((0, import_isUnexpected.isUnexpected)(fileValidationResponse)) {
|
|
50
|
+
state.status = "failed";
|
|
51
|
+
state.error = new Error(fileValidationResponse.body.error.message);
|
|
52
|
+
return state;
|
|
53
|
+
}
|
|
54
|
+
switch (fileValidationResponse.body.validationStatus) {
|
|
55
|
+
case "NOT_VALIDATED": {
|
|
56
|
+
state.status = "succeeded";
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case "VALIDATION_INITIATED": {
|
|
60
|
+
state.status = "running";
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case "VALIDATION_SUCCESS":
|
|
64
|
+
case "VALIDATION_NOT_REQUIRED": {
|
|
65
|
+
state.status = "succeeded";
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case "VALIDATION_FAILURE": {
|
|
69
|
+
state.status = "failed";
|
|
70
|
+
state.error = new Error(fileValidationResponse.body.validationFailureDetails);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
state.result = fileValidationResponse;
|
|
75
|
+
await processProgressCallbacks();
|
|
76
|
+
}
|
|
77
|
+
return state;
|
|
78
|
+
},
|
|
79
|
+
pollUntilDone(pollOptions) {
|
|
80
|
+
return resultPromise ??= (async () => {
|
|
81
|
+
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
82
|
+
function abortListener() {
|
|
83
|
+
abortController.abort();
|
|
84
|
+
}
|
|
85
|
+
const abortSignal = abortController.signal;
|
|
86
|
+
if (inputAbortSignal?.aborted) {
|
|
87
|
+
abortController.abort();
|
|
88
|
+
} else if (!abortSignal.aborted) {
|
|
89
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
if (!poller.isDone()) {
|
|
93
|
+
await poller.poll({ abortSignal });
|
|
94
|
+
while (!poller.isDone()) {
|
|
95
|
+
const delay = (0, import_LROUtil.sleep)(currentPollIntervalInMs, abortSignal);
|
|
96
|
+
cancelJob = () => abortController.abort();
|
|
97
|
+
await delay;
|
|
98
|
+
await poller.poll({ abortSignal });
|
|
35
99
|
}
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
while (!poller.isDone()) {
|
|
87
|
-
const delay = (0, LROUtil_js_1.sleep)(currentPollIntervalInMs, abortSignal);
|
|
88
|
-
cancelJob = () => abortController.abort();
|
|
89
|
-
await delay;
|
|
90
|
-
await poller.poll({ abortSignal });
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.removeEventListener("abort", abortListener);
|
|
96
|
-
}
|
|
97
|
-
switch (state.status) {
|
|
98
|
-
case "succeeded":
|
|
99
|
-
case "failed":
|
|
100
|
-
case "canceled": {
|
|
101
|
-
return poller.getResult();
|
|
102
|
-
}
|
|
103
|
-
case "notStarted":
|
|
104
|
-
case "running": {
|
|
105
|
-
// Unreachable
|
|
106
|
-
throw new Error(`polling completed without succeeding or failing`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
})().finally(() => {
|
|
110
|
-
resultPromise = undefined;
|
|
111
|
-
})));
|
|
112
|
-
},
|
|
113
|
-
onProgress(callback) {
|
|
114
|
-
const s = Symbol();
|
|
115
|
-
progressCallbacks.set(s, callback);
|
|
116
|
-
return () => progressCallbacks.delete(s);
|
|
117
|
-
},
|
|
118
|
-
isDone() {
|
|
119
|
-
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
120
|
-
},
|
|
121
|
-
stopPolling() {
|
|
122
|
-
abortController.abort();
|
|
123
|
-
cancelJob === null || cancelJob === void 0 ? void 0 : cancelJob();
|
|
124
|
-
},
|
|
125
|
-
isStopped() {
|
|
126
|
-
return resultPromise === undefined;
|
|
127
|
-
},
|
|
128
|
-
getOperationState() {
|
|
129
|
-
return state;
|
|
130
|
-
},
|
|
131
|
-
getResult() {
|
|
132
|
-
return state.result;
|
|
133
|
-
},
|
|
134
|
-
toString() {
|
|
135
|
-
return JSON.stringify({ state });
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
return poller;
|
|
100
|
+
}
|
|
101
|
+
} finally {
|
|
102
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
103
|
+
}
|
|
104
|
+
switch (state.status) {
|
|
105
|
+
case "succeeded":
|
|
106
|
+
case "failed":
|
|
107
|
+
case "canceled": {
|
|
108
|
+
return poller.getResult();
|
|
109
|
+
}
|
|
110
|
+
case "notStarted":
|
|
111
|
+
case "running": {
|
|
112
|
+
throw new Error(`polling completed without succeeding or failing`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
})().finally(() => {
|
|
116
|
+
resultPromise = void 0;
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
onProgress(callback) {
|
|
120
|
+
const s = /* @__PURE__ */ Symbol();
|
|
121
|
+
progressCallbacks.set(s, callback);
|
|
122
|
+
return () => progressCallbacks.delete(s);
|
|
123
|
+
},
|
|
124
|
+
isDone() {
|
|
125
|
+
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
126
|
+
},
|
|
127
|
+
stopPolling() {
|
|
128
|
+
abortController.abort();
|
|
129
|
+
cancelJob?.();
|
|
130
|
+
},
|
|
131
|
+
isStopped() {
|
|
132
|
+
return resultPromise === void 0;
|
|
133
|
+
},
|
|
134
|
+
getOperationState() {
|
|
135
|
+
return state;
|
|
136
|
+
},
|
|
137
|
+
getResult() {
|
|
138
|
+
return state.result;
|
|
139
|
+
},
|
|
140
|
+
toString() {
|
|
141
|
+
return JSON.stringify({ state });
|
|
142
|
+
},
|
|
143
|
+
async serialize() {
|
|
144
|
+
return JSON.stringify({ state });
|
|
145
|
+
},
|
|
146
|
+
async submitted() {
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
return poller;
|
|
139
150
|
}
|
|
140
|
-
|
|
151
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
152
|
+
0 && (module.exports = {
|
|
153
|
+
getFileValidationPoller
|
|
154
|
+
});
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"getFileValidationPoller.js","sourceRoot":"","sources":["../../src/getFileValidationPoller.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 { FileUploadAndValidatePoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestAdministrationGetTestFile200Response,\n LoadTestAdministrationUploadTestFile201Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep } from \"./util/LROUtil.js\";\n\n/**\n * Uploads a file and creates a poller to poll for validation.\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 getFileValidationPoller(\n client: AzureLoadTestingClient,\n fileUploadResult: LoadTestAdministrationUploadTestFile201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<FileUploadAndValidatePoller> {\n // get filename and testid from initial response\n const fileName = fileUploadResult.body.fileName;\n const requestUrl = fileUploadResult.request.url;\n const testId = requestUrl.substring(\n requestUrl.indexOf(\"tests/\") + 6,\n requestUrl.lastIndexOf(\"/files\"),\n );\n type Handler = (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void;\n\n const state: OperationState<LoadTestAdministrationGetTestFile200Response> = {\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<LoadTestAdministrationGetTestFile200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestAdministrationGetTestFile200Response>,\n LoadTestAdministrationGetTestFile200Response\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 (fileName) {\n const fileValidationResponse = await client\n .path(\"/tests/{testId}/files/{fileName}\", testId, fileName)\n .get();\n if (isUnexpected(fileValidationResponse)) {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.error.message);\n return;\n }\n\n switch (fileValidationResponse.body.validationStatus) {\n case \"NOT_VALIDATED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_INITIATED\": {\n state.status = \"running\";\n break;\n }\n case \"VALIDATION_SUCCESS\":\n case \"VALIDATION_NOT_REQUIRED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_FAILURE\": {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.validationFailureDetails);\n break;\n }\n }\n state.result = fileValidationResponse;\n\n await processProgressCallbacks();\n }\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestAdministrationGetTestFile200Response> {\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 LoadTestAdministrationGetTestFile200Response;\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<LoadTestAdministrationGetTestFile200Response>) => 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<LoadTestAdministrationGetTestFile200Response> {\n return state;\n },\n\n getResult(): LoadTestAdministrationGetTestFile200Response | 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/getFileValidationPoller.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 { FileUploadAndValidatePoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestAdministrationGetTestFile200Response,\n LoadTestAdministrationUploadTestFile201Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep } from \"./util/LROUtil.js\";\n\n/**\n * Uploads a file and creates a poller to poll for validation.\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 getFileValidationPoller(\n client: AzureLoadTestingClient,\n fileUploadResult: LoadTestAdministrationUploadTestFile201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<FileUploadAndValidatePoller> {\n // get filename and testid from initial response\n const fileName = fileUploadResult.body.fileName;\n const requestUrl = fileUploadResult.request.url;\n const testId = requestUrl.substring(\n requestUrl.indexOf(\"tests/\") + 6,\n requestUrl.lastIndexOf(\"/files\"),\n );\n type Handler = (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void;\n\n const state: OperationState<LoadTestAdministrationGetTestFile200Response> = {\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<LoadTestAdministrationGetTestFile200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestAdministrationGetTestFile200Response>,\n LoadTestAdministrationGetTestFile200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<LoadTestAdministrationGetTestFile200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (fileName) {\n const fileValidationResponse = await client\n .path(\"/tests/{testId}/files/{fileName}\", testId, fileName)\n .get();\n if (isUnexpected(fileValidationResponse)) {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.error.message);\n return state;\n }\n\n switch (fileValidationResponse.body.validationStatus) {\n case \"NOT_VALIDATED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_INITIATED\": {\n state.status = \"running\";\n break;\n }\n case \"VALIDATION_SUCCESS\":\n case \"VALIDATION_NOT_REQUIRED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_FAILURE\": {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.validationFailureDetails);\n break;\n }\n }\n state.result = fileValidationResponse;\n\n await processProgressCallbacks();\n }\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestAdministrationGetTestFile200Response> {\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 LoadTestAdministrationGetTestFile200Response;\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<LoadTestAdministrationGetTestFile200Response>) => 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<LoadTestAdministrationGetTestFile200Response> {\n return state;\n },\n\n getResult(): LoadTestAdministrationGetTestFile200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n async submitted(): Promise<void> {\n // No-op: the file validation is a custom poller\n },\n };\n\n return poller;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,130 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var getTestProfileRunCompletionPoller_exports = {};
|
|
19
|
+
__export(getTestProfileRunCompletionPoller_exports, {
|
|
20
|
+
getTestProfileRunCompletionPoller: () => getTestProfileRunCompletionPoller
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(getTestProfileRunCompletionPoller_exports);
|
|
23
|
+
var import_abort_controller = require("@azure/abort-controller");
|
|
24
|
+
var import_isUnexpected = require("./isUnexpected.js");
|
|
25
|
+
var import_LROUtil = require("./util/LROUtil.js");
|
|
15
26
|
async function getTestProfileRunCompletionPoller(client, createTestProfileRunResponse, polledOperationOptions = {}) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const state = {
|
|
28
|
+
status: "notStarted"
|
|
29
|
+
};
|
|
30
|
+
const progressCallbacks = /* @__PURE__ */ new Map();
|
|
31
|
+
const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
|
|
32
|
+
let resultPromise;
|
|
33
|
+
let cancelJob;
|
|
34
|
+
const abortController = new AbortController();
|
|
35
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 1e4;
|
|
36
|
+
const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;
|
|
37
|
+
const poller = {
|
|
38
|
+
async poll(options) {
|
|
39
|
+
if (options?.abortSignal?.aborted) {
|
|
40
|
+
throw new import_abort_controller.AbortError("The polling was aborted.");
|
|
41
|
+
}
|
|
42
|
+
if (testProfileRunId) {
|
|
43
|
+
const getTestProfileRunResult = await client.path("/test-profile-runs/{testProfileRunId}", testProfileRunId).get();
|
|
44
|
+
if ((0, import_isUnexpected.isUnexpected)(getTestProfileRunResult)) {
|
|
45
|
+
state.status = "failed";
|
|
46
|
+
state.error = new Error(getTestProfileRunResult.body.error.message);
|
|
47
|
+
return state;
|
|
48
|
+
}
|
|
49
|
+
if (getTestProfileRunResult.body.status === "FAILED") {
|
|
50
|
+
state.status = "failed";
|
|
51
|
+
state.error = new Error(getTestProfileRunResult.body.status);
|
|
52
|
+
}
|
|
53
|
+
if (getTestProfileRunResult.body.status === "CANCELLED") {
|
|
54
|
+
state.status = "canceled";
|
|
55
|
+
}
|
|
56
|
+
if (getTestProfileRunResult.body.status === "DONE") {
|
|
57
|
+
state.status = "succeeded";
|
|
58
|
+
}
|
|
59
|
+
if ((0, import_LROUtil.isTestProfileRunInProgress)(getTestProfileRunResult.body)) {
|
|
60
|
+
state.status = "running";
|
|
61
|
+
}
|
|
62
|
+
state.result = getTestProfileRunResult;
|
|
63
|
+
await processProgressCallbacks();
|
|
64
|
+
}
|
|
65
|
+
return state;
|
|
66
|
+
},
|
|
67
|
+
pollUntilDone(pollOptions) {
|
|
68
|
+
return resultPromise ??= (async () => {
|
|
69
|
+
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
70
|
+
function abortListener() {
|
|
71
|
+
abortController.abort();
|
|
72
|
+
}
|
|
73
|
+
const abortSignal = abortController.signal;
|
|
74
|
+
if (inputAbortSignal?.aborted) {
|
|
75
|
+
abortController.abort();
|
|
76
|
+
} else if (!abortSignal.aborted) {
|
|
77
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
if (!poller.isDone()) {
|
|
81
|
+
await poller.poll({ abortSignal });
|
|
82
|
+
while (!poller.isDone()) {
|
|
83
|
+
const delay = (0, import_LROUtil.sleep)(currentPollIntervalInMs, abortSignal);
|
|
84
|
+
cancelJob = () => abortController.abort();
|
|
85
|
+
await delay;
|
|
86
|
+
await poller.poll({ abortSignal });
|
|
32
87
|
}
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.removeEventListener("abort", abortListener);
|
|
86
|
-
}
|
|
87
|
-
switch (state.status) {
|
|
88
|
-
case "succeeded":
|
|
89
|
-
case "failed":
|
|
90
|
-
case "canceled": {
|
|
91
|
-
return poller.getResult();
|
|
92
|
-
}
|
|
93
|
-
case "notStarted":
|
|
94
|
-
case "running": {
|
|
95
|
-
// Unreachable
|
|
96
|
-
throw new Error(`polling completed without succeeding or failing`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
})().finally(() => {
|
|
100
|
-
resultPromise = undefined;
|
|
101
|
-
})));
|
|
102
|
-
},
|
|
103
|
-
onProgress(callback) {
|
|
104
|
-
const s = Symbol();
|
|
105
|
-
progressCallbacks.set(s, callback);
|
|
106
|
-
return () => progressCallbacks.delete(s);
|
|
107
|
-
},
|
|
108
|
-
isDone() {
|
|
109
|
-
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
110
|
-
},
|
|
111
|
-
stopPolling() {
|
|
112
|
-
abortController.abort();
|
|
113
|
-
cancelJob === null || cancelJob === void 0 ? void 0 : cancelJob();
|
|
114
|
-
},
|
|
115
|
-
isStopped() {
|
|
116
|
-
return resultPromise === undefined;
|
|
117
|
-
},
|
|
118
|
-
getOperationState() {
|
|
119
|
-
return state;
|
|
120
|
-
},
|
|
121
|
-
getResult() {
|
|
122
|
-
return state.result;
|
|
123
|
-
},
|
|
124
|
-
toString() {
|
|
125
|
-
return JSON.stringify({ state });
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
return poller;
|
|
88
|
+
}
|
|
89
|
+
} finally {
|
|
90
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
91
|
+
}
|
|
92
|
+
switch (state.status) {
|
|
93
|
+
case "succeeded":
|
|
94
|
+
case "failed":
|
|
95
|
+
case "canceled": {
|
|
96
|
+
return poller.getResult();
|
|
97
|
+
}
|
|
98
|
+
case "notStarted":
|
|
99
|
+
case "running": {
|
|
100
|
+
throw new Error(`polling completed without succeeding or failing`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
})().finally(() => {
|
|
104
|
+
resultPromise = void 0;
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
onProgress(callback) {
|
|
108
|
+
const s = /* @__PURE__ */ Symbol();
|
|
109
|
+
progressCallbacks.set(s, callback);
|
|
110
|
+
return () => progressCallbacks.delete(s);
|
|
111
|
+
},
|
|
112
|
+
isDone() {
|
|
113
|
+
return ["succeeded", "failed", "canceled"].includes(state.status);
|
|
114
|
+
},
|
|
115
|
+
stopPolling() {
|
|
116
|
+
abortController.abort();
|
|
117
|
+
cancelJob?.();
|
|
118
|
+
},
|
|
119
|
+
isStopped() {
|
|
120
|
+
return resultPromise === void 0;
|
|
121
|
+
},
|
|
122
|
+
getOperationState() {
|
|
123
|
+
return state;
|
|
124
|
+
},
|
|
125
|
+
getResult() {
|
|
126
|
+
return state.result;
|
|
127
|
+
},
|
|
128
|
+
toString() {
|
|
129
|
+
return JSON.stringify({ state });
|
|
130
|
+
},
|
|
131
|
+
async serialize() {
|
|
132
|
+
return JSON.stringify({ state });
|
|
133
|
+
},
|
|
134
|
+
async submitted() {
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
return poller;
|
|
129
138
|
}
|
|
130
|
-
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
getTestProfileRunCompletionPoller
|
|
142
|
+
});
|