diff --git a/__tests__/version/graphql.mock.ts b/__tests__/version/graphql.mock.ts index 4270a68..0883354 100644 --- a/__tests__/version/graphql.mock.ts +++ b/__tests__/version/graphql.mock.ts @@ -6,7 +6,7 @@ import { import * as Graphql from '../../src/version/graphql' import {GetVersionsQueryResponse} from '../../src/version' -export function getMockedOldestQueryResponse( +export function getMockedOldestQueryResponseForLessThan100( numVersions: number ): GetVersionsQueryResponse { const versions = [] diff --git a/dist/index.js b/dist/index.js index 7905c9c..9867c58 100644 --- a/dist/index.js +++ b/dist/index.js @@ -58,16 +58,20 @@ function finalIds(input) { console.log(`in min versions to keep`); return getVersionIds(input.owner, input.repo, input.packageName, 100, input.ignoreVersions, '', input.token).pipe(operators_1.map(value => { console.log(`point 1`); - const toDelete = totalCount - + let toDelete = totalCount - value.filter(info => input.ignoreVersions.test(info.version)) .length - input.minVersionsToKeep; + toDelete = toDelete > 100 ? 100 : toDelete; value = value.filter(info => !input.ignoreVersions.test(info.version)); console.log(`toDelete: ${toDelete} numVersions: ${input.numOldVersionsToDelete} total count: ${totalCount}`); - if (toDelete > input.numOldVersionsToDelete) { + if (toDelete > input.numOldVersionsToDelete && + input.numOldVersionsToDelete < 100) { //here input.numOldVersionsToDelete will never have user value hence using it to keep track of deleted versions input.numOldVersionsToDelete = - input.numOldVersionsToDelete + value.length; + input.numOldVersionsToDelete + value.length > 100 + ? 100 + : input.numOldVersionsToDelete + value.length; return toDelete - input.numOldVersionsToDelete >= 0 ? value.map(info => info.id) : value diff --git a/src/delete.ts b/src/delete.ts index 4c0d85e..9c44425 100644 --- a/src/delete.ts +++ b/src/delete.ts @@ -1,20 +1,8 @@ import {Input} from './input' import {EMPTY, Observable, of, throwError} from 'rxjs' -import {deletePackageVersions, getOldestVersions} from './version' +import {deletePackageVersions, getOldestVersions, VersionInfo} from './version' import {concatMap, map, expand, tap} from 'rxjs/operators' -export interface VersionInfo { - id: string - version: string -} - -export interface QueryInfo { - versions: VersionInfo[] - cursor: string - paginate: boolean - totalCount: number -} - let totalCount: number export function getVersionIds( @@ -102,19 +90,25 @@ export function finalIds(input: Input): Observable { ).pipe( map(value => { console.log(`point 1`) - const toDelete = + let toDelete = totalCount - value.filter(info => input.ignoreVersions.test(info.version)) .length - input.minVersionsToKeep + toDelete = toDelete > 100 ? 100 : toDelete value = value.filter(info => !input.ignoreVersions.test(info.version)) console.log( `toDelete: ${toDelete} numVersions: ${input.numOldVersionsToDelete} total count: ${totalCount}` ) - if (toDelete > input.numOldVersionsToDelete) { + if ( + toDelete > input.numOldVersionsToDelete && + input.numOldVersionsToDelete < 100 + ) { //here input.numOldVersionsToDelete will never have user value hence using it to keep track of deleted versions input.numOldVersionsToDelete = - input.numOldVersionsToDelete + value.length + input.numOldVersionsToDelete + value.length > 100 + ? 100 + : input.numOldVersionsToDelete + value.length return toDelete - input.numOldVersionsToDelete >= 0 ? value.map(info => info.id) : value