@azure-tools/typespec-ts 0.48.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/src/modular/buildClientContext.d.ts.map +1 -1
  3. package/dist/src/modular/buildClientContext.js +6 -25
  4. package/dist/src/modular/buildClientContext.js.map +1 -1
  5. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  6. package/dist/src/modular/buildOperations.js +1 -1
  7. package/dist/src/modular/buildOperations.js.map +1 -1
  8. package/dist/src/modular/buildRestorePoller.d.ts.map +1 -1
  9. package/dist/src/modular/buildRestorePoller.js +9 -2
  10. package/dist/src/modular/buildRestorePoller.js.map +1 -1
  11. package/dist/src/modular/emitSamples.d.ts.map +1 -1
  12. package/dist/src/modular/emitSamples.js +19 -1
  13. package/dist/src/modular/emitSamples.js.map +1 -1
  14. package/dist/src/modular/helpers/clientHelpers.d.ts +1 -0
  15. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -1
  16. package/dist/src/modular/helpers/clientHelpers.js +24 -7
  17. package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
  18. package/dist/src/modular/helpers/operationHelpers.d.ts +2 -2
  19. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  20. package/dist/src/modular/helpers/operationHelpers.js +40 -9
  21. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  22. package/dist/src/modular/helpers/typeHelpers.js +1 -1
  23. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  24. package/dist/src/modular/serialization/buildDeserializerFunction.js +5 -1
  25. package/dist/src/modular/serialization/buildDeserializerFunction.js.map +1 -1
  26. package/dist/src/modular/serialization/buildSerializerFunction.js +5 -1
  27. package/dist/src/modular/serialization/buildSerializerFunction.js.map +1 -1
  28. package/dist/src/modular/serialization/serializeUtils.d.ts.map +1 -1
  29. package/dist/src/modular/serialization/serializeUtils.js +1 -0
  30. package/dist/src/modular/serialization/serializeUtils.js.map +1 -1
  31. package/dist/src/modular/type-expressions/get-type-expression.js +1 -1
  32. package/dist/src/modular/type-expressions/get-type-expression.js.map +1 -1
  33. package/dist/src/transform/transformPaths.js +1 -1
  34. package/dist/src/transform/transformPaths.js.map +1 -1
  35. package/dist/src/utils/modelUtils.d.ts.map +1 -1
  36. package/dist/src/utils/modelUtils.js +6 -2
  37. package/dist/src/utils/modelUtils.js.map +1 -1
  38. package/dist/src/utils/operationUtil.d.ts +1 -1
  39. package/dist/src/utils/operationUtil.d.ts.map +1 -1
  40. package/dist/src/utils/operationUtil.js +7 -4
  41. package/dist/src/utils/operationUtil.js.map +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +7 -7
  44. package/src/modular/buildClientContext.ts +6 -26
  45. package/src/modular/buildOperations.ts +0 -1
  46. package/src/modular/buildRestorePoller.ts +9 -2
  47. package/src/modular/emitSamples.ts +29 -1
  48. package/src/modular/helpers/clientHelpers.ts +28 -10
  49. package/src/modular/helpers/operationHelpers.ts +48 -16
  50. package/src/modular/helpers/typeHelpers.ts +1 -1
  51. package/src/modular/serialization/buildDeserializerFunction.ts +5 -1
  52. package/src/modular/serialization/buildSerializerFunction.ts +5 -1
  53. package/src/modular/serialization/serializeUtils.ts +1 -0
  54. package/src/modular/type-expressions/get-type-expression.ts +1 -1
  55. package/src/transform/transformPaths.ts +1 -1
  56. package/src/utils/modelUtils.ts +5 -1
  57. package/src/utils/operationUtil.ts +11 -3
  58. package/static/static-helpers/pagingHelpers.ts +32 -6
  59. package/static/static-helpers/pollingHelpers.ts +27 -2
@@ -38,6 +38,10 @@ export interface GetLongRunningPollerOptions<TResponse> {
38
38
  * The function to get the initial response
39
39
  */
40
40
  getInitialResponse?: () => PromiseLike<TResponse>;
41
+ /**
42
+ * The api-version of the LRO
43
+ */
44
+ apiVersion?: string;
41
45
  }
42
46
  export function getLongRunningPoller<
43
47
  TResponse extends PathUncheckedResponse,
@@ -48,7 +52,7 @@ export function getLongRunningPoller<
48
52
  expectedStatuses: string[],
49
53
  options: GetLongRunningPollerOptions<TResponse>
50
54
  ): PollerLike<OperationState<TResult>, TResult> {
51
- const { restoreFrom, getInitialResponse } = options;
55
+ const { restoreFrom, getInitialResponse, apiVersion } = options;
52
56
  if (!restoreFrom && !getInitialResponse) {
53
57
  throw new Error(
54
58
  "Either restoreFrom or getInitialResponse must be specified"
@@ -91,7 +95,10 @@ export function getLongRunningPoller<
91
95
  }
92
96
  let response;
93
97
  try {
94
- response = await client.pathUnchecked(path).get({ abortSignal });
98
+ const pollingPath = apiVersion
99
+ ? addApiVersionToUrl(path, apiVersion)
100
+ : path;
101
+ response = await client.pathUnchecked(pollingPath).get({ abortSignal });
95
102
  } finally {
96
103
  options.abortSignal?.removeEventListener("abort", abortListener);
97
104
  pollOptions?.abortSignal?.removeEventListener("abort", abortListener);
@@ -132,3 +139,21 @@ function getLroResponse<TResponse extends PathUncheckedResponse>(
132
139
  }
133
140
  };
134
141
  }
142
+
143
+ /**
144
+ * Adds the api-version query parameter on a URL if it's not present.
145
+ * @param url - the URL to modify
146
+ * @param apiVersion - the API version to set
147
+ * @returns - the URL with the api-version query parameter set
148
+ */
149
+ function addApiVersionToUrl(url: string, apiVersion: string): string {
150
+ // The base URL is only used for parsing and won't appear in the returned URL
151
+ const urlObj = new URL(url, "https://microsoft.com");
152
+ if (!urlObj.searchParams.get("api-version")) {
153
+ // Append one if there is no apiVersion
154
+ return `${url}${
155
+ Array.from(urlObj.searchParams.keys()).length > 0 ? "&" : "?"
156
+ }api-version=${apiVersion}`;
157
+ }
158
+ return url;
159
+ }