Email Sorter Beta

Ich habe soweit automatisiert the Emails sortieren aber ich muss noch schauen was es fur bugs es gibt wenn die app online  ist deswegen wurde ich mit diesen Commit die website veroffentlichen obwohjl es sein konnte  das es noch nicht fertig ist und verkaufs bereit
This commit is contained in:
2026-01-22 19:32:12 +01:00
parent 95349af50b
commit abf761db07
596 changed files with 56405 additions and 51231 deletions

View File

@@ -1,5 +1,5 @@
import { callbackifyPromiseWithTimeout, getDataFromArgs } from './utils.js';
class StripeIterator {
import { callbackifyPromiseWithTimeout, getDataFromArgs, getAPIMode, } from './utils.js';
class V1Iterator {
constructor(firstPagePromise, requestArgs, spec, stripeResource) {
this.index = 0;
this.pagePromise = firstPagePromise;
@@ -57,7 +57,7 @@ class StripeIterator {
return nextPromise;
}
}
class ListIterator extends StripeIterator {
class V1ListIterator extends V1Iterator {
getNextPage(pageResult) {
const reverseIteration = isReverseIteration(this.requestArgs);
const lastId = getLastId(pageResult, reverseIteration);
@@ -66,7 +66,7 @@ class ListIterator extends StripeIterator {
});
}
}
class SearchIterator extends StripeIterator {
class V1SearchIterator extends V1Iterator {
getNextPage(pageResult) {
if (!pageResult.next_page) {
throw Error('Unexpected: Stripe API response does not have a well-formed `next_page` field, but `has_more` was true.');
@@ -76,12 +76,56 @@ class SearchIterator extends StripeIterator {
});
}
}
export const makeAutoPaginationMethods = (stripeResource, requestArgs, spec, firstPagePromise) => {
if (spec.methodType === 'search') {
return makeAutoPaginationMethodsFromIterator(new SearchIterator(firstPagePromise, requestArgs, spec, stripeResource));
class V2ListIterator {
constructor(firstPagePromise, requestArgs, spec, stripeResource) {
this.currentPageIterator = (async () => {
const page = await firstPagePromise;
return page.data[Symbol.iterator]();
})();
this.nextPageUrl = (async () => {
const page = await firstPagePromise;
return page.next_page_url || null;
})();
this.requestArgs = requestArgs;
this.spec = spec;
this.stripeResource = stripeResource;
}
if (spec.methodType === 'list') {
return makeAutoPaginationMethodsFromIterator(new ListIterator(firstPagePromise, requestArgs, spec, stripeResource));
async turnPage() {
const nextPageUrl = await this.nextPageUrl;
if (!nextPageUrl)
return null;
this.spec.fullPath = nextPageUrl;
const page = await this.stripeResource._makeRequest([], this.spec, {});
this.nextPageUrl = Promise.resolve(page.next_page_url);
this.currentPageIterator = Promise.resolve(page.data[Symbol.iterator]());
return this.currentPageIterator;
}
async next() {
{
const result = (await this.currentPageIterator).next();
if (!result.done)
return { done: false, value: result.value };
}
const nextPageIterator = await this.turnPage();
if (!nextPageIterator) {
return { done: true, value: undefined };
}
const result = nextPageIterator.next();
if (!result.done)
return { done: false, value: result.value };
return { done: true, value: undefined };
}
}
export const makeAutoPaginationMethods = (stripeResource, requestArgs, spec, firstPagePromise) => {
const apiMode = getAPIMode(spec.fullPath || spec.path);
if (apiMode !== 'v2' && spec.methodType === 'search') {
return makeAutoPaginationMethodsFromIterator(new V1SearchIterator(firstPagePromise, requestArgs, spec, stripeResource));
}
if (apiMode !== 'v2' && spec.methodType === 'list') {
return makeAutoPaginationMethodsFromIterator(new V1ListIterator(firstPagePromise, requestArgs, spec, stripeResource));
}
if (apiMode === 'v2' && spec.methodType === 'list') {
return makeAutoPaginationMethodsFromIterator(new V2ListIterator(firstPagePromise, requestArgs, spec, stripeResource));
}
return null;
};