@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.
Files changed (200) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +1 -1
  3. package/README.md +12 -13
  4. package/dist/browser/azureLoadTesting.js +14 -12
  5. package/dist/browser/azureLoadTesting.js.map +1 -1
  6. package/dist/browser/clientDefinitions.d.ts +66 -34
  7. package/dist/browser/clientDefinitions.js.map +1 -1
  8. package/dist/browser/getFileValidationPoller.js +16 -11
  9. package/dist/browser/getFileValidationPoller.js.map +1 -1
  10. package/dist/browser/getTestProfileRunCompletionPoller.js +16 -11
  11. package/dist/browser/getTestProfileRunCompletionPoller.js.map +1 -1
  12. package/dist/browser/getTestRunCompletionPoller.js +16 -11
  13. package/dist/browser/getTestRunCompletionPoller.js.map +1 -1
  14. package/dist/browser/index.d.ts +6 -6
  15. package/dist/browser/index.js +1 -7
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/isUnexpected.d.ts +15 -9
  18. package/dist/browser/isUnexpected.js +21 -13
  19. package/dist/browser/isUnexpected.js.map +1 -1
  20. package/dist/browser/models.d.ts +205 -172
  21. package/dist/browser/models.js.map +1 -1
  22. package/dist/browser/outputModels.d.ts +290 -208
  23. package/dist/browser/outputModels.js.map +1 -1
  24. package/dist/browser/paginateHelper.js +43 -73
  25. package/dist/browser/paginateHelper.js.map +1 -1
  26. package/dist/browser/parameters.d.ts +107 -66
  27. package/dist/browser/parameters.js.map +1 -1
  28. package/dist/browser/pollingHelper.d.ts +82 -4
  29. package/dist/browser/pollingHelper.js +119 -15
  30. package/dist/browser/pollingHelper.js.map +1 -1
  31. package/dist/browser/responses.d.ts +234 -121
  32. package/dist/browser/responses.js.map +1 -1
  33. package/dist/commonjs/azureLoadTesting.js +53 -45
  34. package/dist/commonjs/azureLoadTesting.js.map +7 -1
  35. package/dist/commonjs/clientDefinitions.d.ts +66 -34
  36. package/dist/commonjs/clientDefinitions.js +15 -5
  37. package/dist/commonjs/clientDefinitions.js.map +7 -1
  38. package/dist/commonjs/getFileValidationPoller.js +151 -137
  39. package/dist/commonjs/getFileValidationPoller.js.map +7 -1
  40. package/dist/commonjs/getTestProfileRunCompletionPoller.js +139 -127
  41. package/dist/commonjs/getTestProfileRunCompletionPoller.js.map +7 -1
  42. package/dist/commonjs/getTestRunCompletionPoller.js +139 -125
  43. package/dist/commonjs/getTestRunCompletionPoller.js.map +7 -1
  44. package/dist/commonjs/index.d.ts +6 -6
  45. package/dist/commonjs/index.js +46 -20
  46. package/dist/commonjs/index.js.map +7 -1
  47. package/dist/commonjs/isUnexpected.d.ts +15 -9
  48. package/dist/commonjs/isUnexpected.js +118 -105
  49. package/dist/commonjs/isUnexpected.js.map +7 -1
  50. package/dist/commonjs/logger.js +28 -8
  51. package/dist/commonjs/logger.js.map +7 -1
  52. package/dist/commonjs/models.d.ts +205 -172
  53. package/dist/commonjs/models.js +15 -5
  54. package/dist/commonjs/models.js.map +7 -1
  55. package/dist/commonjs/outputModels.d.ts +290 -208
  56. package/dist/commonjs/outputModels.js +15 -5
  57. package/dist/commonjs/outputModels.js.map +7 -1
  58. package/dist/commonjs/paginateHelper.js +118 -158
  59. package/dist/commonjs/paginateHelper.js.map +7 -1
  60. package/dist/commonjs/parameters.d.ts +107 -66
  61. package/dist/commonjs/parameters.js +15 -5
  62. package/dist/commonjs/parameters.js.map +7 -1
  63. package/dist/commonjs/pollingHelper.d.ts +82 -4
  64. package/dist/commonjs/pollingHelper.js +143 -24
  65. package/dist/commonjs/pollingHelper.js.map +7 -1
  66. package/dist/commonjs/responses.d.ts +234 -121
  67. package/dist/commonjs/responses.js +15 -5
  68. package/dist/commonjs/responses.js.map +7 -1
  69. package/dist/commonjs/tsdoc-metadata.json +11 -11
  70. package/dist/commonjs/util/LROUtil.js +76 -54
  71. package/dist/commonjs/util/LROUtil.js.map +7 -1
  72. package/dist/esm/azureLoadTesting.js +32 -40
  73. package/dist/esm/azureLoadTesting.js.map +7 -1
  74. package/dist/esm/clientDefinitions.d.ts +66 -34
  75. package/dist/esm/clientDefinitions.js +0 -4
  76. package/dist/esm/clientDefinitions.js.map +7 -1
  77. package/dist/esm/getFileValidationPoller.js +126 -132
  78. package/dist/esm/getFileValidationPoller.js.map +7 -1
  79. package/dist/esm/getTestProfileRunCompletionPoller.js +114 -122
  80. package/dist/esm/getTestProfileRunCompletionPoller.js.map +7 -1
  81. package/dist/esm/getTestRunCompletionPoller.js +114 -120
  82. package/dist/esm/getTestRunCompletionPoller.js.map +7 -1
  83. package/dist/esm/index.d.ts +6 -6
  84. package/dist/esm/index.js +5 -11
  85. package/dist/esm/index.js.map +7 -1
  86. package/dist/esm/isUnexpected.d.ts +15 -9
  87. package/dist/esm/isUnexpected.js +96 -103
  88. package/dist/esm/isUnexpected.js.map +7 -1
  89. package/dist/esm/logger.js +4 -4
  90. package/dist/esm/logger.js.map +7 -1
  91. package/dist/esm/models.d.ts +205 -172
  92. package/dist/esm/models.js +0 -4
  93. package/dist/esm/models.js.map +7 -1
  94. package/dist/esm/outputModels.d.ts +290 -208
  95. package/dist/esm/outputModels.js +0 -4
  96. package/dist/esm/outputModels.js.map +7 -1
  97. package/dist/esm/paginateHelper.js +95 -155
  98. package/dist/esm/paginateHelper.js.map +7 -1
  99. package/dist/esm/parameters.d.ts +107 -66
  100. package/dist/esm/parameters.js +0 -4
  101. package/dist/esm/parameters.js.map +7 -1
  102. package/dist/esm/pollingHelper.d.ts +82 -4
  103. package/dist/esm/pollingHelper.js +117 -18
  104. package/dist/esm/pollingHelper.js.map +7 -1
  105. package/dist/esm/responses.d.ts +234 -121
  106. package/dist/esm/responses.js +0 -4
  107. package/dist/esm/responses.js.map +7 -1
  108. package/dist/esm/util/LROUtil.js +52 -50
  109. package/dist/esm/util/LROUtil.js.map +7 -1
  110. package/dist/react-native/azureLoadTesting.js +14 -12
  111. package/dist/react-native/azureLoadTesting.js.map +1 -1
  112. package/dist/react-native/clientDefinitions.d.ts +66 -34
  113. package/dist/react-native/clientDefinitions.js.map +1 -1
  114. package/dist/react-native/getFileValidationPoller.js +16 -11
  115. package/dist/react-native/getFileValidationPoller.js.map +1 -1
  116. package/dist/react-native/getTestProfileRunCompletionPoller.js +16 -11
  117. package/dist/react-native/getTestProfileRunCompletionPoller.js.map +1 -1
  118. package/dist/react-native/getTestRunCompletionPoller.js +16 -11
  119. package/dist/react-native/getTestRunCompletionPoller.js.map +1 -1
  120. package/dist/react-native/index.d.ts +6 -6
  121. package/dist/react-native/index.js +1 -7
  122. package/dist/react-native/index.js.map +1 -1
  123. package/dist/react-native/isUnexpected.d.ts +15 -9
  124. package/dist/react-native/isUnexpected.js +21 -13
  125. package/dist/react-native/isUnexpected.js.map +1 -1
  126. package/dist/react-native/models.d.ts +205 -172
  127. package/dist/react-native/models.js.map +1 -1
  128. package/dist/react-native/outputModels.d.ts +290 -208
  129. package/dist/react-native/outputModels.js.map +1 -1
  130. package/dist/react-native/paginateHelper.js +43 -73
  131. package/dist/react-native/paginateHelper.js.map +1 -1
  132. package/dist/react-native/parameters.d.ts +107 -66
  133. package/dist/react-native/parameters.js.map +1 -1
  134. package/dist/react-native/pollingHelper.d.ts +82 -4
  135. package/dist/react-native/pollingHelper.js +119 -15
  136. package/dist/react-native/pollingHelper.js.map +1 -1
  137. package/dist/react-native/responses.d.ts +234 -121
  138. package/dist/react-native/responses.js.map +1 -1
  139. package/package.json +69 -86
  140. package/review/{load-testing.api.md → load-testing-node.api.md} +420 -23
  141. package/dist/browser/azureLoadTesting.d.ts.map +0 -1
  142. package/dist/browser/clientDefinitions.d.ts.map +0 -1
  143. package/dist/browser/getFileValidationPoller.d.ts.map +0 -1
  144. package/dist/browser/getTestProfileRunCompletionPoller.d.ts.map +0 -1
  145. package/dist/browser/getTestRunCompletionPoller.d.ts.map +0 -1
  146. package/dist/browser/index.d.ts.map +0 -1
  147. package/dist/browser/isUnexpected.d.ts.map +0 -1
  148. package/dist/browser/logger.d.ts.map +0 -1
  149. package/dist/browser/models.d.ts.map +0 -1
  150. package/dist/browser/outputModels.d.ts.map +0 -1
  151. package/dist/browser/paginateHelper.d.ts.map +0 -1
  152. package/dist/browser/parameters.d.ts.map +0 -1
  153. package/dist/browser/pollingHelper.d.ts.map +0 -1
  154. package/dist/browser/responses.d.ts.map +0 -1
  155. package/dist/browser/util/LROUtil.d.ts.map +0 -1
  156. package/dist/commonjs/azureLoadTesting.d.ts.map +0 -1
  157. package/dist/commonjs/clientDefinitions.d.ts.map +0 -1
  158. package/dist/commonjs/getFileValidationPoller.d.ts.map +0 -1
  159. package/dist/commonjs/getTestProfileRunCompletionPoller.d.ts.map +0 -1
  160. package/dist/commonjs/getTestRunCompletionPoller.d.ts.map +0 -1
  161. package/dist/commonjs/index.d.ts.map +0 -1
  162. package/dist/commonjs/isUnexpected.d.ts.map +0 -1
  163. package/dist/commonjs/logger.d.ts.map +0 -1
  164. package/dist/commonjs/models.d.ts.map +0 -1
  165. package/dist/commonjs/outputModels.d.ts.map +0 -1
  166. package/dist/commonjs/paginateHelper.d.ts.map +0 -1
  167. package/dist/commonjs/parameters.d.ts.map +0 -1
  168. package/dist/commonjs/pollingHelper.d.ts.map +0 -1
  169. package/dist/commonjs/responses.d.ts.map +0 -1
  170. package/dist/commonjs/util/LROUtil.d.ts.map +0 -1
  171. package/dist/esm/azureLoadTesting.d.ts.map +0 -1
  172. package/dist/esm/clientDefinitions.d.ts.map +0 -1
  173. package/dist/esm/getFileValidationPoller.d.ts.map +0 -1
  174. package/dist/esm/getTestProfileRunCompletionPoller.d.ts.map +0 -1
  175. package/dist/esm/getTestRunCompletionPoller.d.ts.map +0 -1
  176. package/dist/esm/index.d.ts.map +0 -1
  177. package/dist/esm/isUnexpected.d.ts.map +0 -1
  178. package/dist/esm/logger.d.ts.map +0 -1
  179. package/dist/esm/models.d.ts.map +0 -1
  180. package/dist/esm/outputModels.d.ts.map +0 -1
  181. package/dist/esm/paginateHelper.d.ts.map +0 -1
  182. package/dist/esm/parameters.d.ts.map +0 -1
  183. package/dist/esm/pollingHelper.d.ts.map +0 -1
  184. package/dist/esm/responses.d.ts.map +0 -1
  185. package/dist/esm/util/LROUtil.d.ts.map +0 -1
  186. package/dist/react-native/azureLoadTesting.d.ts.map +0 -1
  187. package/dist/react-native/clientDefinitions.d.ts.map +0 -1
  188. package/dist/react-native/getFileValidationPoller.d.ts.map +0 -1
  189. package/dist/react-native/getTestProfileRunCompletionPoller.d.ts.map +0 -1
  190. package/dist/react-native/getTestRunCompletionPoller.d.ts.map +0 -1
  191. package/dist/react-native/index.d.ts.map +0 -1
  192. package/dist/react-native/isUnexpected.d.ts.map +0 -1
  193. package/dist/react-native/logger.d.ts.map +0 -1
  194. package/dist/react-native/models.d.ts.map +0 -1
  195. package/dist/react-native/outputModels.d.ts.map +0 -1
  196. package/dist/react-native/paginateHelper.d.ts.map +0 -1
  197. package/dist/react-native/parameters.d.ts.map +0 -1
  198. package/dist/react-native/pollingHelper.d.ts.map +0 -1
  199. package/dist/react-native/responses.d.ts.map +0 -1
  200. package/dist/react-native/util/LROUtil.d.ts.map +0 -1
@@ -1,140 +1,154 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.getFileValidationPoller = getFileValidationPoller;
6
- const abort_controller_1 = require("@azure/abort-controller");
7
- const isUnexpected_js_1 = require("./isUnexpected.js");
8
- const LROUtil_js_1 = require("./util/LROUtil.js");
9
- /**
10
- * Uploads a file and creates a poller to poll for validation.
11
- * @param client - The Load Testing client.
12
- * @param options - The operation options.
13
- * @returns A poller which can be called to poll until completion of the job.
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
- var _a;
17
- // get filename and testid from initial response
18
- const fileName = fileUploadResult.body.fileName;
19
- const requestUrl = fileUploadResult.request.url;
20
- const testId = requestUrl.substring(requestUrl.indexOf("tests/") + 6, requestUrl.lastIndexOf("/files"));
21
- const state = {
22
- status: "notStarted",
23
- };
24
- const progressCallbacks = new Map();
25
- const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
26
- let resultPromise;
27
- let cancelJob;
28
- const abortController = new AbortController();
29
- const currentPollIntervalInMs = (_a = polledOperationOptions.updateIntervalInMs) !== null && _a !== void 0 ? _a : 2000;
30
- const poller = {
31
- async poll(options) {
32
- var _a;
33
- if ((_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
34
- throw new abort_controller_1.AbortError("The polling was aborted.");
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
- if (fileName) {
37
- const fileValidationResponse = await client
38
- .path("/tests/{testId}/files/{fileName}", testId, fileName)
39
- .get();
40
- if ((0, isUnexpected_js_1.isUnexpected)(fileValidationResponse)) {
41
- state.status = "failed";
42
- state.error = new Error(fileValidationResponse.body.error.message);
43
- return;
44
- }
45
- switch (fileValidationResponse.body.validationStatus) {
46
- case "NOT_VALIDATED": {
47
- state.status = "succeeded";
48
- break;
49
- }
50
- case "VALIDATION_INITIATED": {
51
- state.status = "running";
52
- break;
53
- }
54
- case "VALIDATION_SUCCESS":
55
- case "VALIDATION_NOT_REQUIRED": {
56
- state.status = "succeeded";
57
- break;
58
- }
59
- case "VALIDATION_FAILURE": {
60
- state.status = "failed";
61
- state.error = new Error(fileValidationResponse.body.validationFailureDetails);
62
- break;
63
- }
64
- }
65
- state.result = fileValidationResponse;
66
- await processProgressCallbacks();
67
- }
68
- },
69
- pollUntilDone(pollOptions) {
70
- return (resultPromise !== null && resultPromise !== void 0 ? resultPromise : (resultPromise = (async () => {
71
- const { abortSignal: inputAbortSignal } = pollOptions || {};
72
- // In the future we can use AbortSignal.any() instead
73
- function abortListener() {
74
- abortController.abort();
75
- }
76
- const abortSignal = abortController.signal;
77
- if (inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.aborted) {
78
- abortController.abort();
79
- }
80
- else if (!abortSignal.aborted) {
81
- inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.addEventListener("abort", abortListener, { once: true });
82
- }
83
- try {
84
- if (!poller.isDone()) {
85
- await poller.poll({ abortSignal });
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
- //# sourceMappingURL=getFileValidationPoller.js.map
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": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,8BAA2B;AAS3B,0BAA6B;AAC7B,qBAAsB;AAQtB,eAAsB,wBACpB,QACA,kBACA,yBAAiD,CAAC,GACZ;AAEtC,QAAM,WAAW,iBAAiB,KAAK;AACvC,QAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAM,SAAS,WAAW;AAAA,IACxB,WAAW,QAAQ,QAAQ,IAAI;AAAA,IAC/B,WAAW,YAAY,QAAQ;AAAA,EACjC;AAGA,QAAM,QAAsE;AAAA,IAC1E,QAAQ;AAAA,EACV;AAEA,QAAM,oBAAoB,oBAAI,IAAqB;AACnD,QAAM,2BAA2B,YAC/B,kBAAkB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;AAC3C,MAAI;AACJ,MAAI;AACJ,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,QAAM,0BAA0B,uBAAuB,sBAAsB;AAE7E,QAAM,SAGF;AAAA,IACF,MAAM,KAAK,SAE+D;AACxE,UAAI,SAAS,aAAa,SAAS;AACjC,cAAM,IAAI,mCAAW,0BAA0B;AAAA,MACjD;AAEA,UAAI,UAAU;AACZ,cAAM,yBAAyB,MAAM,OAClC,KAAK,oCAAoC,QAAQ,QAAQ,EACzD,IAAI;AACP,gBAAI,kCAAa,sBAAsB,GAAG;AACxC,gBAAM,SAAS;AACf,gBAAM,QAAQ,IAAI,MAAM,uBAAuB,KAAK,MAAM,OAAO;AACjE,iBAAO;AAAA,QACT;AAEA,gBAAQ,uBAAuB,KAAK,kBAAkB;AAAA,UACpD,KAAK,iBAAiB;AACpB,kBAAM,SAAS;AACf;AAAA,UACF;AAAA,UACA,KAAK,wBAAwB;AAC3B,kBAAM,SAAS;AACf;AAAA,UACF;AAAA,UACA,KAAK;AAAA,UACL,KAAK,2BAA2B;AAC9B,kBAAM,SAAS;AACf;AAAA,UACF;AAAA,UACA,KAAK,sBAAsB;AACzB,kBAAM,SAAS;AACf,kBAAM,QAAQ,IAAI,MAAM,uBAAuB,KAAK,wBAAwB;AAC5E;AAAA,UACF;AAAA,QACF;AACA,cAAM,SAAS;AAEf,cAAM,yBAAyB;AAAA,MACjC;AACA,aAAO;AAAA,IACT;AAAA,IAEA,cAAc,aAE4C;AACxD,aAAQ,mBAAmB,YAAY;AACrC,cAAM,EAAE,aAAa,iBAAiB,IAAI,eAAe,CAAC;AAE1D,iBAAS,gBAAsB;AAC7B,0BAAgB,MAAM;AAAA,QACxB;AACA,cAAM,cAAc,gBAAgB;AACpC,YAAI,kBAAkB,SAAS;AAC7B,0BAAgB,MAAM;AAAA,QACxB,WAAW,CAAC,YAAY,SAAS;AAC/B,4BAAkB,iBAAiB,SAAS,eAAe,EAAE,MAAM,KAAK,CAAC;AAAA,QAC3E;AAEA,YAAI;AACF,cAAI,CAAC,OAAO,OAAO,GAAG;AACpB,kBAAM,OAAO,KAAK,EAAE,YAAY,CAAC;AACjC,mBAAO,CAAC,OAAO,OAAO,GAAG;AACvB,oBAAM,YAAQ,sBAAM,yBAAyB,WAAW;AACxD,0BAAY,MAAM,gBAAgB,MAAM;AACxC,oBAAM;AACN,oBAAM,OAAO,KAAK,EAAE,YAAY,CAAC;AAAA,YACnC;AAAA,UACF;AAAA,QACF,UAAE;AACA,4BAAkB,oBAAoB,SAAS,aAAa;AAAA,QAC9D;AACA,gBAAQ,MAAM,QAAQ;AAAA,UACpB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK,YAAY;AACf,mBAAO,OAAO,UAAU;AAAA,UAC1B;AAAA,UACA,KAAK;AAAA,UACL,KAAK,WAAW;AAEd,kBAAM,IAAI,MAAM,iDAAiD;AAAA,UACnE;AAAA,QACF;AAAA,MACF,GAAG,EAAE,QAAQ,MAAM;AACjB,wBAAgB;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,IAEA,WACE,UACkB;AAClB,YAAM,IAAI,uBAAO;AACjB,wBAAkB,IAAI,GAAG,QAAQ;AAEjC,aAAO,MAAM,kBAAkB,OAAO,CAAC;AAAA,IACzC;AAAA,IAEA,SAAkB;AAChB,aAAO,CAAC,aAAa,UAAU,UAAU,EAAE,SAAS,MAAM,MAAM;AAAA,IAClE;AAAA,IAEA,cAAoB;AAClB,sBAAgB,MAAM;AACtB,kBAAY;AAAA,IACd;AAAA,IAEA,YAAqB;AACnB,aAAO,kBAAkB;AAAA,IAC3B;AAAA,IAEA,oBAAkF;AAChF,aAAO;AAAA,IACT;AAAA,IAEA,YAAsE;AACpE,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,WAAW;AACT,aAAO,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IACjC;AAAA,IACA,MAAM,YAA6B;AACjC,aAAO,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IACjC;AAAA,IACA,MAAM,YAA2B;AAAA,IAEjC;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -1,130 +1,142 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.getTestProfileRunCompletionPoller = getTestProfileRunCompletionPoller;
6
- const abort_controller_1 = require("@azure/abort-controller");
7
- const isUnexpected_js_1 = require("./isUnexpected.js");
8
- const LROUtil_js_1 = require("./util/LROUtil.js");
9
- /**
10
- * Creates a poller to poll for test run status.
11
- * @param client - The Load Testing client.
12
- * @param options - The operation options.
13
- * @returns A poller which can be called to poll until completion of the job.
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
- var _a;
17
- const state = {
18
- status: "notStarted",
19
- };
20
- const progressCallbacks = new Map();
21
- const processProgressCallbacks = async () => progressCallbacks.forEach((h) => h(state));
22
- let resultPromise;
23
- let cancelJob;
24
- const abortController = new AbortController();
25
- const currentPollIntervalInMs = (_a = polledOperationOptions.updateIntervalInMs) !== null && _a !== void 0 ? _a : 10000;
26
- const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;
27
- const poller = {
28
- async poll(options) {
29
- var _a;
30
- if ((_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
31
- throw new abort_controller_1.AbortError("The polling was aborted.");
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
- if (testProfileRunId) {
34
- const getTestProfileRunResult = await client
35
- .path("/test-profile-runs/{testProfileRunId}", testProfileRunId)
36
- .get();
37
- if ((0, isUnexpected_js_1.isUnexpected)(getTestProfileRunResult)) {
38
- state.status = "failed";
39
- state.error = new Error(getTestProfileRunResult.body.error.message);
40
- return;
41
- }
42
- if (getTestProfileRunResult.body.status === "FAILED") {
43
- state.status = "failed";
44
- state.error = new Error(getTestProfileRunResult.body.status);
45
- }
46
- if (getTestProfileRunResult.body.status === "CANCELLED") {
47
- state.status = "canceled";
48
- }
49
- if (getTestProfileRunResult.body.status === "DONE") {
50
- state.status = "succeeded";
51
- }
52
- if ((0, LROUtil_js_1.isTestProfileRunInProgress)(getTestProfileRunResult.body)) {
53
- state.status = "running";
54
- }
55
- state.result = getTestProfileRunResult;
56
- await processProgressCallbacks();
57
- }
58
- },
59
- pollUntilDone(pollOptions) {
60
- return (resultPromise !== null && resultPromise !== void 0 ? resultPromise : (resultPromise = (async () => {
61
- const { abortSignal: inputAbortSignal } = pollOptions || {};
62
- // In the future we can use AbortSignal.any() instead
63
- function abortListener() {
64
- abortController.abort();
65
- }
66
- const abortSignal = abortController.signal;
67
- if (inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.aborted) {
68
- abortController.abort();
69
- }
70
- else if (!abortSignal.aborted) {
71
- inputAbortSignal === null || inputAbortSignal === void 0 ? void 0 : inputAbortSignal.addEventListener("abort", abortListener, { once: true });
72
- }
73
- try {
74
- if (!poller.isDone()) {
75
- await poller.poll({ abortSignal });
76
- while (!poller.isDone()) {
77
- const delay = (0, LROUtil_js_1.sleep)(currentPollIntervalInMs, abortSignal);
78
- cancelJob = () => abortController.abort();
79
- await delay;
80
- await poller.poll({ abortSignal });
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
- //# sourceMappingURL=getTestProfileRunCompletionPoller.js.map
139
+ // Annotate the CommonJS export names for ESM import in node:
140
+ 0 && (module.exports = {
141
+ getTestProfileRunCompletionPoller
142
+ });