Address review coments
This commit is contained in:
@@ -2,15 +2,13 @@
|
|||||||
import {rest} from 'msw'
|
import {rest} from 'msw'
|
||||||
import {setupServer} from 'msw/node'
|
import {setupServer} from 'msw/node'
|
||||||
import {Input, InputParams} from '../src/input'
|
import {Input, InputParams} from '../src/input'
|
||||||
import {deleteVersions, finalIds} from '../src/delete'
|
import {deleteVersions, finalIds, RATE_LIMIT} from '../src/delete'
|
||||||
import {getMockedVersionsResponse} from './version/rest.mock'
|
import {getMockedVersionsResponse} from './version/rest.mock'
|
||||||
import {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types'
|
import {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types'
|
||||||
|
|
||||||
type GetVersionsResponseData =
|
type GetVersionsResponseData =
|
||||||
RestEndpointMethodTypes['packages']['getAllPackageVersionsForPackageOwnedByUser']['response']['data']
|
RestEndpointMethodTypes['packages']['getAllPackageVersionsForPackageOwnedByUser']['response']['data']
|
||||||
|
|
||||||
const RATE_LIMIT = 99
|
|
||||||
|
|
||||||
describe('index tests -- call rest', () => {
|
describe('index tests -- call rest', () => {
|
||||||
let server = setupServer()
|
let server = setupServer()
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ import {
|
|||||||
} from '../../src/version'
|
} from '../../src/version'
|
||||||
import {Observable} from 'rxjs'
|
import {Observable} from 'rxjs'
|
||||||
import {getMockedVersionsResponse} from './rest.mock'
|
import {getMockedVersionsResponse} from './rest.mock'
|
||||||
|
import {RATE_LIMIT} from '../../src/delete'
|
||||||
const RATE_LIMIT = 99
|
|
||||||
|
|
||||||
describe('get versions tests -- mock rest', () => {
|
describe('get versions tests -- mock rest', () => {
|
||||||
let server = setupServer()
|
let server = setupServer()
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ inputs:
|
|||||||
|
|
||||||
package-type:
|
package-type:
|
||||||
description: >
|
description: >
|
||||||
Type of the package containing the version to delete.
|
Type of package. Can be one of container, maven, npm, nuget, or rubygems.
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
num-old-versions-to-delete:
|
num-old-versions-to-delete:
|
||||||
|
|||||||
Vendored
+6
-6
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
/* eslint-disable i18n-text/no-en */
|
/* eslint-disable i18n-text/no-en */
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.deleteVersions = exports.finalIds = exports.getVersionIds = void 0;
|
exports.deleteVersions = exports.finalIds = exports.getVersionIds = exports.RATE_LIMIT = void 0;
|
||||||
const rxjs_1 = __nccwpck_require__(5805);
|
const rxjs_1 = __nccwpck_require__(5805);
|
||||||
const operators_1 = __nccwpck_require__(7801);
|
const operators_1 = __nccwpck_require__(7801);
|
||||||
const version_1 = __nccwpck_require__(4428);
|
const version_1 = __nccwpck_require__(4428);
|
||||||
const RATE_LIMIT = 99;
|
exports.RATE_LIMIT = 100;
|
||||||
let totalCount = 0;
|
let totalCount = 0;
|
||||||
function getVersionIds(owner, packageName, packageType, numVersions, page, token) {
|
function getVersionIds(owner, packageName, packageType, numVersions, page, token) {
|
||||||
return (0, version_1.getOldestVersions)(owner, packageName, packageType, numVersions, page, token).pipe((0, operators_1.expand)(value => value.paginate
|
return (0, version_1.getOldestVersions)(owner, packageName, packageType, numVersions, page, token).pipe((0, operators_1.expand)(value => value.paginate
|
||||||
@@ -25,7 +25,7 @@ function finalIds(input) {
|
|||||||
return (0, rxjs_1.of)(input.packageVersionIds);
|
return (0, rxjs_1.of)(input.packageVersionIds);
|
||||||
}
|
}
|
||||||
if (input.hasOldestVersionQueryInfo()) {
|
if (input.hasOldestVersionQueryInfo()) {
|
||||||
return getVersionIds(input.owner, input.packageName, input.packageType, RATE_LIMIT, 1, input.token).pipe(
|
return getVersionIds(input.owner, input.packageName, input.packageType, exports.RATE_LIMIT, 1, input.token).pipe(
|
||||||
// This code block executes on all versions of a package starting from oldest
|
// This code block executes on all versions of a package starting from oldest
|
||||||
(0, operators_1.map)(value => {
|
(0, operators_1.map)(value => {
|
||||||
// we need to delete oldest versions first
|
// we need to delete oldest versions first
|
||||||
@@ -34,15 +34,15 @@ function finalIds(input) {
|
|||||||
});
|
});
|
||||||
/*
|
/*
|
||||||
Here first filter out the versions that are to be ignored.
|
Here first filter out the versions that are to be ignored.
|
||||||
Then update input.numOldeVersionsToDelete to the no of versions deleted from the next 100 versions batch.
|
Then compute number of versions to delete (toDelete) based on the inputs.
|
||||||
*/
|
*/
|
||||||
value = value.filter(info => !input.ignoreVersions.test(info.version));
|
value = value.filter(info => !input.ignoreVersions.test(info.version));
|
||||||
let toDelete = 0;
|
let toDelete = 0;
|
||||||
if (input.minVersionsToKeep < 0) {
|
if (input.minVersionsToKeep < 0) {
|
||||||
toDelete = Math.min(value.length, Math.min(input.numOldVersionsToDelete, RATE_LIMIT));
|
toDelete = Math.min(value.length, Math.min(input.numOldVersionsToDelete, exports.RATE_LIMIT));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
toDelete = Math.min(value.length - input.minVersionsToKeep, RATE_LIMIT);
|
toDelete = Math.min(value.length - input.minVersionsToKeep, exports.RATE_LIMIT);
|
||||||
}
|
}
|
||||||
if (toDelete < 0)
|
if (toDelete < 0)
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import {
|
|||||||
RestVersionInfo
|
RestVersionInfo
|
||||||
} from './version'
|
} from './version'
|
||||||
|
|
||||||
const RATE_LIMIT = 99
|
export const RATE_LIMIT = 100
|
||||||
let totalCount = 0
|
let totalCount = 0
|
||||||
|
|
||||||
export function getVersionIds(
|
export function getVersionIds(
|
||||||
@@ -68,7 +68,7 @@ export function finalIds(input: Input): Observable<string[]> {
|
|||||||
})
|
})
|
||||||
/*
|
/*
|
||||||
Here first filter out the versions that are to be ignored.
|
Here first filter out the versions that are to be ignored.
|
||||||
Then update input.numOldeVersionsToDelete to the no of versions deleted from the next 100 versions batch.
|
Then compute number of versions to delete (toDelete) based on the inputs.
|
||||||
*/
|
*/
|
||||||
value = value.filter(info => !input.ignoreVersions.test(info.version))
|
value = value.filter(info => !input.ignoreVersions.test(info.version))
|
||||||
let toDelete = 0
|
let toDelete = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user