@azure/core-paging 1.6.3-alpha.20250620.3 → 1.6.3-alpha.20250730.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.
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
4
3
  /**
5
4
  * returns an async iterator that iterates over results. It also has a `byPage`
6
5
  * method that returns pages of items at once.
@@ -9,7 +8,6 @@ import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tsli
9
8
  * @returns a paged async iterator that iterates over results.
10
9
  */
11
10
  export function getPagedAsyncIterator(pagedResult) {
12
- var _a;
13
11
  const iter = getItemAsyncIterator(pagedResult);
14
12
  return {
15
13
  next() {
@@ -18,85 +16,57 @@ export function getPagedAsyncIterator(pagedResult) {
18
16
  [Symbol.asyncIterator]() {
19
17
  return this;
20
18
  },
21
- byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
22
- const { continuationToken, maxPageSize } = settings !== null && settings !== void 0 ? settings : {};
23
- return getPageAsyncIterator(pagedResult, {
24
- pageLink: continuationToken,
25
- maxPageSize,
26
- });
27
- }),
19
+ byPage: pagedResult?.byPage ??
20
+ ((settings) => {
21
+ const { continuationToken, maxPageSize } = settings ?? {};
22
+ return getPageAsyncIterator(pagedResult, {
23
+ pageLink: continuationToken,
24
+ maxPageSize,
25
+ });
26
+ }),
28
27
  };
29
28
  }
30
- function getItemAsyncIterator(pagedResult) {
31
- return __asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
32
- var _a, e_1, _b, _c, _d, e_2, _e, _f;
33
- const pages = getPageAsyncIterator(pagedResult);
34
- const firstVal = yield __await(pages.next());
35
- // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
36
- if (!Array.isArray(firstVal.value)) {
37
- // can extract elements from this page
38
- const { toElements } = pagedResult;
39
- if (toElements) {
40
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(firstVal.value))));
41
- try {
42
- for (var _g = true, pages_1 = __asyncValues(pages), pages_1_1; pages_1_1 = yield __await(pages_1.next()), _a = pages_1_1.done, !_a; _g = true) {
43
- _c = pages_1_1.value;
44
- _g = false;
45
- const page = _c;
46
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(page))));
47
- }
48
- }
49
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
50
- finally {
51
- try {
52
- if (!_g && !_a && (_b = pages_1.return)) yield __await(_b.call(pages_1));
53
- }
54
- finally { if (e_1) throw e_1.error; }
55
- }
56
- }
57
- else {
58
- yield yield __await(firstVal.value);
59
- // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
60
- yield __await(yield* __asyncDelegator(__asyncValues(pages)));
29
+ async function* getItemAsyncIterator(pagedResult) {
30
+ const pages = getPageAsyncIterator(pagedResult);
31
+ const firstVal = await pages.next();
32
+ // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
33
+ if (!Array.isArray(firstVal.value)) {
34
+ // can extract elements from this page
35
+ const { toElements } = pagedResult;
36
+ if (toElements) {
37
+ yield* toElements(firstVal.value);
38
+ for await (const page of pages) {
39
+ yield* toElements(page);
61
40
  }
62
41
  }
63
42
  else {
64
- yield __await(yield* __asyncDelegator(__asyncValues(firstVal.value)));
65
- try {
66
- for (var _h = true, pages_2 = __asyncValues(pages), pages_2_1; pages_2_1 = yield __await(pages_2.next()), _d = pages_2_1.done, !_d; _h = true) {
67
- _f = pages_2_1.value;
68
- _h = false;
69
- const page = _f;
70
- // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
71
- // it must be the case that `TPage = TElement[]`
72
- yield __await(yield* __asyncDelegator(__asyncValues(page)));
73
- }
74
- }
75
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
76
- finally {
77
- try {
78
- if (!_h && !_d && (_e = pages_2.return)) yield __await(_e.call(pages_2));
79
- }
80
- finally { if (e_2) throw e_2.error; }
81
- }
43
+ yield firstVal.value;
44
+ // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
45
+ yield* pages;
82
46
  }
83
- });
47
+ }
48
+ else {
49
+ yield* firstVal.value;
50
+ for await (const page of pages) {
51
+ // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
52
+ // it must be the case that `TPage = TElement[]`
53
+ yield* page;
54
+ }
55
+ }
84
56
  }
85
- function getPageAsyncIterator(pagedResult_1) {
86
- return __asyncGenerator(this, arguments, function* getPageAsyncIterator_1(pagedResult, options = {}) {
87
- const { pageLink, maxPageSize } = options;
88
- let response = yield __await(pagedResult.getPage(pageLink !== null && pageLink !== void 0 ? pageLink : pagedResult.firstPageLink, maxPageSize));
57
+ async function* getPageAsyncIterator(pagedResult, options = {}) {
58
+ const { pageLink, maxPageSize } = options;
59
+ let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);
60
+ if (!response) {
61
+ return;
62
+ }
63
+ yield response.page;
64
+ while (response.nextPageLink) {
65
+ response = await pagedResult.getPage(response.nextPageLink, maxPageSize);
89
66
  if (!response) {
90
- return yield __await(void 0);
91
- }
92
- yield yield __await(response.page);
93
- while (response.nextPageLink) {
94
- response = yield __await(pagedResult.getPage(response.nextPageLink, maxPageSize));
95
- if (!response) {
96
- return yield __await(void 0);
97
- }
98
- yield yield __await(response.page);
67
+ return;
99
68
  }
100
- });
69
+ yield response.page;
70
+ }
101
71
  }
102
72
  //# sourceMappingURL=getPagedAsyncIterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
1
+ {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;;;GAMG;AAEH,MAAM,UAAU,qBAAqB,CAMnC,WAAqD;IAErD,MAAM,IAAI,GAAG,oBAAoB,CAAwC,WAAW,CAAC,CAAC;IACtF,OAAO;QACL,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EACJ,WAAW,EAAE,MAAM;YAClB,CAAC,CAAC,QAAuB,EAAE,EAAE;gBAC5B,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC1D,OAAO,oBAAoB,CAAC,WAAW,EAAE;oBACvC,QAAQ,EAAE,iBAAiD;oBAC3D,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC,CAA2E;KAC/E,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD;IAErD,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,6FAA6F;IAC7F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,sCAAsC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAC;YAChD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAe,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,KAAK,CAAC;YACrB,sFAAsF;YACtF,KAAK,CAAC,CAAC,KAAmD,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,gGAAgG;YAChG,gDAAgD;YAChD,KAAK,CAAC,CAAC,IAA6B,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD,EACrD,UAGI,EAAE;IAEN,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.getPagedAsyncIterator = getPagedAsyncIterator;
6
- const tslib_1 = require("tslib");
7
6
  /**
8
7
  * returns an async iterator that iterates over results. It also has a `byPage`
9
8
  * method that returns pages of items at once.
@@ -12,7 +11,6 @@ const tslib_1 = require("tslib");
12
11
  * @returns a paged async iterator that iterates over results.
13
12
  */
14
13
  function getPagedAsyncIterator(pagedResult) {
15
- var _a;
16
14
  const iter = getItemAsyncIterator(pagedResult);
17
15
  return {
18
16
  next() {
@@ -21,85 +19,57 @@ function getPagedAsyncIterator(pagedResult) {
21
19
  [Symbol.asyncIterator]() {
22
20
  return this;
23
21
  },
24
- byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
25
- const { continuationToken, maxPageSize } = settings !== null && settings !== void 0 ? settings : {};
26
- return getPageAsyncIterator(pagedResult, {
27
- pageLink: continuationToken,
28
- maxPageSize,
29
- });
30
- }),
22
+ byPage: pagedResult?.byPage ??
23
+ ((settings) => {
24
+ const { continuationToken, maxPageSize } = settings ?? {};
25
+ return getPageAsyncIterator(pagedResult, {
26
+ pageLink: continuationToken,
27
+ maxPageSize,
28
+ });
29
+ }),
31
30
  };
32
31
  }
33
- function getItemAsyncIterator(pagedResult) {
34
- return tslib_1.__asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
35
- var _a, e_1, _b, _c, _d, e_2, _e, _f;
36
- const pages = getPageAsyncIterator(pagedResult);
37
- const firstVal = yield tslib_1.__await(pages.next());
38
- // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
39
- if (!Array.isArray(firstVal.value)) {
40
- // can extract elements from this page
41
- const { toElements } = pagedResult;
42
- if (toElements) {
43
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(toElements(firstVal.value))));
44
- try {
45
- for (var _g = true, pages_1 = tslib_1.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib_1.__await(pages_1.next()), _a = pages_1_1.done, !_a; _g = true) {
46
- _c = pages_1_1.value;
47
- _g = false;
48
- const page = _c;
49
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(toElements(page))));
50
- }
51
- }
52
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
- finally {
54
- try {
55
- if (!_g && !_a && (_b = pages_1.return)) yield tslib_1.__await(_b.call(pages_1));
56
- }
57
- finally { if (e_1) throw e_1.error; }
58
- }
59
- }
60
- else {
61
- yield yield tslib_1.__await(firstVal.value);
62
- // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
63
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(pages)));
32
+ async function* getItemAsyncIterator(pagedResult) {
33
+ const pages = getPageAsyncIterator(pagedResult);
34
+ const firstVal = await pages.next();
35
+ // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
36
+ if (!Array.isArray(firstVal.value)) {
37
+ // can extract elements from this page
38
+ const { toElements } = pagedResult;
39
+ if (toElements) {
40
+ yield* toElements(firstVal.value);
41
+ for await (const page of pages) {
42
+ yield* toElements(page);
64
43
  }
65
44
  }
66
45
  else {
67
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(firstVal.value)));
68
- try {
69
- for (var _h = true, pages_2 = tslib_1.__asyncValues(pages), pages_2_1; pages_2_1 = yield tslib_1.__await(pages_2.next()), _d = pages_2_1.done, !_d; _h = true) {
70
- _f = pages_2_1.value;
71
- _h = false;
72
- const page = _f;
73
- // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
74
- // it must be the case that `TPage = TElement[]`
75
- yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(page)));
76
- }
77
- }
78
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
79
- finally {
80
- try {
81
- if (!_h && !_d && (_e = pages_2.return)) yield tslib_1.__await(_e.call(pages_2));
82
- }
83
- finally { if (e_2) throw e_2.error; }
84
- }
46
+ yield firstVal.value;
47
+ // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
48
+ yield* pages;
85
49
  }
86
- });
50
+ }
51
+ else {
52
+ yield* firstVal.value;
53
+ for await (const page of pages) {
54
+ // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
55
+ // it must be the case that `TPage = TElement[]`
56
+ yield* page;
57
+ }
58
+ }
87
59
  }
88
- function getPageAsyncIterator(pagedResult_1) {
89
- return tslib_1.__asyncGenerator(this, arguments, function* getPageAsyncIterator_1(pagedResult, options = {}) {
90
- const { pageLink, maxPageSize } = options;
91
- let response = yield tslib_1.__await(pagedResult.getPage(pageLink !== null && pageLink !== void 0 ? pageLink : pagedResult.firstPageLink, maxPageSize));
60
+ async function* getPageAsyncIterator(pagedResult, options = {}) {
61
+ const { pageLink, maxPageSize } = options;
62
+ let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);
63
+ if (!response) {
64
+ return;
65
+ }
66
+ yield response.page;
67
+ while (response.nextPageLink) {
68
+ response = await pagedResult.getPage(response.nextPageLink, maxPageSize);
92
69
  if (!response) {
93
- return yield tslib_1.__await(void 0);
94
- }
95
- yield yield tslib_1.__await(response.page);
96
- while (response.nextPageLink) {
97
- response = yield tslib_1.__await(pagedResult.getPage(response.nextPageLink, maxPageSize));
98
- if (!response) {
99
- return yield tslib_1.__await(void 0);
100
- }
101
- yield yield tslib_1.__await(response.page);
70
+ return;
102
71
  }
103
- });
72
+ yield response.page;
73
+ }
104
74
  }
105
75
  //# sourceMappingURL=getPagedAsyncIterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
1
+ {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAYlC,sDA0BC;AAlCD;;;;;;GAMG;AAEH,SAAgB,qBAAqB,CAMnC,WAAqD;IAErD,MAAM,IAAI,GAAG,oBAAoB,CAAwC,WAAW,CAAC,CAAC;IACtF,OAAO;QACL,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EACJ,WAAW,EAAE,MAAM;YAClB,CAAC,CAAC,QAAuB,EAAE,EAAE;gBAC5B,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC1D,OAAO,oBAAoB,CAAC,WAAW,EAAE;oBACvC,QAAQ,EAAE,iBAAiD;oBAC3D,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC,CAA2E;KAC/E,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD;IAErD,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,6FAA6F;IAC7F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,sCAAsC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAC;YAChD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAe,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,KAAK,CAAC;YACrB,sFAAsF;YACtF,KAAK,CAAC,CAAC,KAAmD,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,gGAAgG;YAChG,gDAAgD;YAChD,KAAK,CAAC,CAAC,IAA6B,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD,EACrD,UAGI,EAAE;IAEN,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
- // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
- // It should be published with your NPM package. It should not be tracked by Git.
3
- {
4
- "tsdocVersion": "0.12",
5
- "toolPackages": [
6
- {
7
- "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.8"
9
- }
10
- ]
11
- }
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.52.9"
9
+ }
10
+ ]
11
+ }
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
4
3
  /**
5
4
  * returns an async iterator that iterates over results. It also has a `byPage`
6
5
  * method that returns pages of items at once.
@@ -9,7 +8,6 @@ import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tsli
9
8
  * @returns a paged async iterator that iterates over results.
10
9
  */
11
10
  export function getPagedAsyncIterator(pagedResult) {
12
- var _a;
13
11
  const iter = getItemAsyncIterator(pagedResult);
14
12
  return {
15
13
  next() {
@@ -18,85 +16,57 @@ export function getPagedAsyncIterator(pagedResult) {
18
16
  [Symbol.asyncIterator]() {
19
17
  return this;
20
18
  },
21
- byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
22
- const { continuationToken, maxPageSize } = settings !== null && settings !== void 0 ? settings : {};
23
- return getPageAsyncIterator(pagedResult, {
24
- pageLink: continuationToken,
25
- maxPageSize,
26
- });
27
- }),
19
+ byPage: pagedResult?.byPage ??
20
+ ((settings) => {
21
+ const { continuationToken, maxPageSize } = settings ?? {};
22
+ return getPageAsyncIterator(pagedResult, {
23
+ pageLink: continuationToken,
24
+ maxPageSize,
25
+ });
26
+ }),
28
27
  };
29
28
  }
30
- function getItemAsyncIterator(pagedResult) {
31
- return __asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
32
- var _a, e_1, _b, _c, _d, e_2, _e, _f;
33
- const pages = getPageAsyncIterator(pagedResult);
34
- const firstVal = yield __await(pages.next());
35
- // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
36
- if (!Array.isArray(firstVal.value)) {
37
- // can extract elements from this page
38
- const { toElements } = pagedResult;
39
- if (toElements) {
40
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(firstVal.value))));
41
- try {
42
- for (var _g = true, pages_1 = __asyncValues(pages), pages_1_1; pages_1_1 = yield __await(pages_1.next()), _a = pages_1_1.done, !_a; _g = true) {
43
- _c = pages_1_1.value;
44
- _g = false;
45
- const page = _c;
46
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(page))));
47
- }
48
- }
49
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
50
- finally {
51
- try {
52
- if (!_g && !_a && (_b = pages_1.return)) yield __await(_b.call(pages_1));
53
- }
54
- finally { if (e_1) throw e_1.error; }
55
- }
56
- }
57
- else {
58
- yield yield __await(firstVal.value);
59
- // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
60
- yield __await(yield* __asyncDelegator(__asyncValues(pages)));
29
+ async function* getItemAsyncIterator(pagedResult) {
30
+ const pages = getPageAsyncIterator(pagedResult);
31
+ const firstVal = await pages.next();
32
+ // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
33
+ if (!Array.isArray(firstVal.value)) {
34
+ // can extract elements from this page
35
+ const { toElements } = pagedResult;
36
+ if (toElements) {
37
+ yield* toElements(firstVal.value);
38
+ for await (const page of pages) {
39
+ yield* toElements(page);
61
40
  }
62
41
  }
63
42
  else {
64
- yield __await(yield* __asyncDelegator(__asyncValues(firstVal.value)));
65
- try {
66
- for (var _h = true, pages_2 = __asyncValues(pages), pages_2_1; pages_2_1 = yield __await(pages_2.next()), _d = pages_2_1.done, !_d; _h = true) {
67
- _f = pages_2_1.value;
68
- _h = false;
69
- const page = _f;
70
- // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
71
- // it must be the case that `TPage = TElement[]`
72
- yield __await(yield* __asyncDelegator(__asyncValues(page)));
73
- }
74
- }
75
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
76
- finally {
77
- try {
78
- if (!_h && !_d && (_e = pages_2.return)) yield __await(_e.call(pages_2));
79
- }
80
- finally { if (e_2) throw e_2.error; }
81
- }
43
+ yield firstVal.value;
44
+ // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
45
+ yield* pages;
82
46
  }
83
- });
47
+ }
48
+ else {
49
+ yield* firstVal.value;
50
+ for await (const page of pages) {
51
+ // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
52
+ // it must be the case that `TPage = TElement[]`
53
+ yield* page;
54
+ }
55
+ }
84
56
  }
85
- function getPageAsyncIterator(pagedResult_1) {
86
- return __asyncGenerator(this, arguments, function* getPageAsyncIterator_1(pagedResult, options = {}) {
87
- const { pageLink, maxPageSize } = options;
88
- let response = yield __await(pagedResult.getPage(pageLink !== null && pageLink !== void 0 ? pageLink : pagedResult.firstPageLink, maxPageSize));
57
+ async function* getPageAsyncIterator(pagedResult, options = {}) {
58
+ const { pageLink, maxPageSize } = options;
59
+ let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);
60
+ if (!response) {
61
+ return;
62
+ }
63
+ yield response.page;
64
+ while (response.nextPageLink) {
65
+ response = await pagedResult.getPage(response.nextPageLink, maxPageSize);
89
66
  if (!response) {
90
- return yield __await(void 0);
91
- }
92
- yield yield __await(response.page);
93
- while (response.nextPageLink) {
94
- response = yield __await(pagedResult.getPage(response.nextPageLink, maxPageSize));
95
- if (!response) {
96
- return yield __await(void 0);
97
- }
98
- yield yield __await(response.page);
67
+ return;
99
68
  }
100
- });
69
+ yield response.page;
70
+ }
101
71
  }
102
72
  //# sourceMappingURL=getPagedAsyncIterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
1
+ {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;;;GAMG;AAEH,MAAM,UAAU,qBAAqB,CAMnC,WAAqD;IAErD,MAAM,IAAI,GAAG,oBAAoB,CAAwC,WAAW,CAAC,CAAC;IACtF,OAAO;QACL,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EACJ,WAAW,EAAE,MAAM;YAClB,CAAC,CAAC,QAAuB,EAAE,EAAE;gBAC5B,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC1D,OAAO,oBAAoB,CAAC,WAAW,EAAE;oBACvC,QAAQ,EAAE,iBAAiD;oBAC3D,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC,CAA2E;KAC/E,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD;IAErD,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,6FAA6F;IAC7F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,sCAAsC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAC;YAChD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAe,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,KAAK,CAAC;YACrB,sFAAsF;YACtF,KAAK,CAAC,CAAC,KAAmD,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,gGAAgG;YAChG,gDAAgD;YAChD,KAAK,CAAC,CAAC,IAA6B,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD,EACrD,UAGI,EAAE;IAEN,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
4
3
  /**
5
4
  * returns an async iterator that iterates over results. It also has a `byPage`
6
5
  * method that returns pages of items at once.
@@ -9,7 +8,6 @@ import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tsli
9
8
  * @returns a paged async iterator that iterates over results.
10
9
  */
11
10
  export function getPagedAsyncIterator(pagedResult) {
12
- var _a;
13
11
  const iter = getItemAsyncIterator(pagedResult);
14
12
  return {
15
13
  next() {
@@ -18,85 +16,57 @@ export function getPagedAsyncIterator(pagedResult) {
18
16
  [Symbol.asyncIterator]() {
19
17
  return this;
20
18
  },
21
- byPage: (_a = pagedResult === null || pagedResult === void 0 ? void 0 : pagedResult.byPage) !== null && _a !== void 0 ? _a : ((settings) => {
22
- const { continuationToken, maxPageSize } = settings !== null && settings !== void 0 ? settings : {};
23
- return getPageAsyncIterator(pagedResult, {
24
- pageLink: continuationToken,
25
- maxPageSize,
26
- });
27
- }),
19
+ byPage: pagedResult?.byPage ??
20
+ ((settings) => {
21
+ const { continuationToken, maxPageSize } = settings ?? {};
22
+ return getPageAsyncIterator(pagedResult, {
23
+ pageLink: continuationToken,
24
+ maxPageSize,
25
+ });
26
+ }),
28
27
  };
29
28
  }
30
- function getItemAsyncIterator(pagedResult) {
31
- return __asyncGenerator(this, arguments, function* getItemAsyncIterator_1() {
32
- var _a, e_1, _b, _c, _d, e_2, _e, _f;
33
- const pages = getPageAsyncIterator(pagedResult);
34
- const firstVal = yield __await(pages.next());
35
- // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
36
- if (!Array.isArray(firstVal.value)) {
37
- // can extract elements from this page
38
- const { toElements } = pagedResult;
39
- if (toElements) {
40
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(firstVal.value))));
41
- try {
42
- for (var _g = true, pages_1 = __asyncValues(pages), pages_1_1; pages_1_1 = yield __await(pages_1.next()), _a = pages_1_1.done, !_a; _g = true) {
43
- _c = pages_1_1.value;
44
- _g = false;
45
- const page = _c;
46
- yield __await(yield* __asyncDelegator(__asyncValues(toElements(page))));
47
- }
48
- }
49
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
50
- finally {
51
- try {
52
- if (!_g && !_a && (_b = pages_1.return)) yield __await(_b.call(pages_1));
53
- }
54
- finally { if (e_1) throw e_1.error; }
55
- }
56
- }
57
- else {
58
- yield yield __await(firstVal.value);
59
- // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
60
- yield __await(yield* __asyncDelegator(__asyncValues(pages)));
29
+ async function* getItemAsyncIterator(pagedResult) {
30
+ const pages = getPageAsyncIterator(pagedResult);
31
+ const firstVal = await pages.next();
32
+ // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is
33
+ if (!Array.isArray(firstVal.value)) {
34
+ // can extract elements from this page
35
+ const { toElements } = pagedResult;
36
+ if (toElements) {
37
+ yield* toElements(firstVal.value);
38
+ for await (const page of pages) {
39
+ yield* toElements(page);
61
40
  }
62
41
  }
63
42
  else {
64
- yield __await(yield* __asyncDelegator(__asyncValues(firstVal.value)));
65
- try {
66
- for (var _h = true, pages_2 = __asyncValues(pages), pages_2_1; pages_2_1 = yield __await(pages_2.next()), _d = pages_2_1.done, !_d; _h = true) {
67
- _f = pages_2_1.value;
68
- _h = false;
69
- const page = _f;
70
- // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
71
- // it must be the case that `TPage = TElement[]`
72
- yield __await(yield* __asyncDelegator(__asyncValues(page)));
73
- }
74
- }
75
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
76
- finally {
77
- try {
78
- if (!_h && !_d && (_e = pages_2.return)) yield __await(_e.call(pages_2));
79
- }
80
- finally { if (e_2) throw e_2.error; }
81
- }
43
+ yield firstVal.value;
44
+ // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case
45
+ yield* pages;
82
46
  }
83
- });
47
+ }
48
+ else {
49
+ yield* firstVal.value;
50
+ for await (const page of pages) {
51
+ // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,
52
+ // it must be the case that `TPage = TElement[]`
53
+ yield* page;
54
+ }
55
+ }
84
56
  }
85
- function getPageAsyncIterator(pagedResult_1) {
86
- return __asyncGenerator(this, arguments, function* getPageAsyncIterator_1(pagedResult, options = {}) {
87
- const { pageLink, maxPageSize } = options;
88
- let response = yield __await(pagedResult.getPage(pageLink !== null && pageLink !== void 0 ? pageLink : pagedResult.firstPageLink, maxPageSize));
57
+ async function* getPageAsyncIterator(pagedResult, options = {}) {
58
+ const { pageLink, maxPageSize } = options;
59
+ let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);
60
+ if (!response) {
61
+ return;
62
+ }
63
+ yield response.page;
64
+ while (response.nextPageLink) {
65
+ response = await pagedResult.getPage(response.nextPageLink, maxPageSize);
89
66
  if (!response) {
90
- return yield __await(void 0);
91
- }
92
- yield yield __await(response.page);
93
- while (response.nextPageLink) {
94
- response = yield __await(pagedResult.getPage(response.nextPageLink, maxPageSize));
95
- if (!response) {
96
- return yield __await(void 0);
97
- }
98
- yield yield __await(response.page);
67
+ return;
99
68
  }
100
- });
69
+ yield response.page;
70
+ }
101
71
  }
102
72
  //# sourceMappingURL=getPagedAsyncIterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
1
+ {"version":3,"file":"getPagedAsyncIterator.js","sourceRoot":"","sources":["../../src/getPagedAsyncIterator.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;;;GAMG;AAEH,MAAM,UAAU,qBAAqB,CAMnC,WAAqD;IAErD,MAAM,IAAI,GAAG,oBAAoB,CAAwC,WAAW,CAAC,CAAC;IACtF,OAAO;QACL,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EACJ,WAAW,EAAE,MAAM;YAClB,CAAC,CAAC,QAAuB,EAAE,EAAE;gBAC5B,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC1D,OAAO,oBAAoB,CAAC,WAAW,EAAE;oBACvC,QAAQ,EAAE,iBAAiD;oBAC3D,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC,CAA2E;KAC/E,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD;IAErD,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,6FAA6F;IAC7F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,sCAAsC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAC;YAChD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAe,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,KAAK,CAAC;YACrB,sFAAsF;YACtF,KAAK,CAAC,CAAC,KAAmD,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,gGAAgG;YAChG,gDAAgD;YAChD,KAAK,CAAC,CAAC,IAA6B,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,WAAqD,EACrD,UAGI,EAAE;IAEN,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PageSettings, PagedAsyncIterableIterator, PagedResult } from \"./models.js\";\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nexport function getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings = PageSettings,\n TLink = string,\n>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n (((settings?: PageSettings) => {\n const { continuationToken, maxPageSize } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken as unknown as TLink | undefined,\n maxPageSize,\n });\n }) as unknown as (settings?: TPageSettings) => AsyncIterableIterator<TPage>),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n const firstVal = await pages.next();\n // if the result does not have an array shape, i.e. TPage = TElement, then we return it as is\n if (!Array.isArray(firstVal.value)) {\n // can extract elements from this page\n const { toElements } = pagedResult;\n if (toElements) {\n yield* toElements(firstVal.value) as TElement[];\n for await (const page of pages) {\n yield* toElements(page) as TElement[];\n }\n } else {\n yield firstVal.value;\n // `pages` is of type `AsyncIterableIterator<TPage>` but TPage = TElement in this case\n yield* pages as unknown as AsyncIterableIterator<TElement>;\n }\n } else {\n yield* firstVal.value;\n for await (const page of pages) {\n // pages is of type `AsyncIterableIterator<TPage>` so `page` is of type `TPage`. In this branch,\n // it must be the case that `TPage = TElement[]`\n yield* page as unknown as TElement[];\n }\n }\n}\n\nasync function* getPageAsyncIterator<TPage, TLink, TPageSettings>(\n pagedResult: PagedResult<TPage, TPageSettings, TLink>,\n options: {\n maxPageSize?: number;\n pageLink?: TLink;\n } = {},\n): AsyncIterableIterator<TPage> {\n const { pageLink, maxPageSize } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink, maxPageSize);\n if (!response) {\n return;\n }\n yield response.page;\n }\n}\n"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@azure/core-paging",
3
3
  "author": "Microsoft Corporation",
4
4
  "sdk-type": "client",
5
- "version": "1.6.3-alpha.20250620.3",
5
+ "version": "1.6.3-alpha.20250730.1",
6
6
  "description": "Core types for paging async iterable iterators",
7
7
  "type": "module",
8
8
  "main": "./dist/commonjs/index.js",
@@ -113,7 +113,7 @@
113
113
  "react-native"
114
114
  ],
115
115
  "selfLink": false,
116
- "project": "./tsconfig.src.json"
116
+ "project": "../../../tsconfig.src.build.json"
117
117
  },
118
118
  "module": "./dist/esm/index.js"
119
119
  }