export async function fetchAllChanges()

in src/drive.ts [26:44]


export async function fetchAllChanges(pageToken: string | undefined = undefined, auth: JWT): Promise<ChangedFiles> {
    const options = Object.assign({auth, 'maxResults': 1000}, pageToken !== undefined ? {pageToken} : {});
    const page = await drive.changes.list(options);

    if (notEmpty(page.data.nextPageToken)) {
        const nextPage = await fetchAllChanges(page.data.nextPageToken, auth);
        const pageLargestChangeId = numberOrZero(page.data.largestChangeId);
        const nextPageLargestChangeId = nextPage.largestChangeId;
        return {
            items: (changedFiles(page.data.items)).concat(nextPage.items),
            largestChangeId: Math.max(pageLargestChangeId, nextPageLargestChangeId)
        };
    } else {
        return {
            items: changedFiles(page.data.items),
            largestChangeId: numberOrZero(page.data.largestChangeId),
        };
    }
}