@forge/migrations

2.0.232.1.0-next.0
out/migration/migration.js
~out/migration/migration.jsModified
+23
Index: package/out/migration/migration.js
===================================================================
--- package/out/migration/migration.js
+++ package/out/migration/migration.js
@@ -11,8 +11,31 @@
     getAppDataList = async (transferId) => {
         const result = await (0, utils_1.invokeGETApi)(`${this.basePath}/data/${transferId}/all`);
         return (0, utils_1.getResponseBody)(result);
     };
+    getAppDataPage = async (transferId, options = {}) => {
+        const params = new URLSearchParams();
+        if (options.pageSize !== undefined) {
+            params.append('pageSize', String(options.pageSize));
+        }
+        if (options.lastEvaluatedKey !== undefined) {
+            params.append('lastEvaluatedKey', options.lastEvaluatedKey);
+        }
+        const queryString = params.toString();
+        const url = `${this.basePath}/data/${transferId}/page${queryString ? `?${queryString}` : ''}`;
+        const result = await (0, utils_1.invokeGETApi)(url);
+        return (0, utils_1.getResponseBody)(result);
+    };
+    async *getAppDataIterator(transferId, { pageSize } = {}) {
+        let lastEvaluatedKey;
+        do {
+            const page = await this.getAppDataPage(transferId, { pageSize, lastEvaluatedKey });
+            for (const item of page.items) {
+                yield item;
+            }
+            lastEvaluatedKey = page.lastEvaluatedKey ?? undefined;
+        } while (lastEvaluatedKey);
+    }
     getAppDataPayload = async (key) => {
         return (0, utils_1.invokeGETApi)(`${this.basePath}/data/${key}/payload`);
     };
     messageProcessed = async (transferId, messageId) => {