From 508f6970a5f85097117972847749c79e0a276b26 Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 09:59:18 +0000 Subject: [PATCH 1/8] bypass rate limit --- dist/index.js | 49 +++++++++++++++++++++-------------- src/delete.ts | 28 +++++++++++++------- src/version/delete-version.ts | 10 ++++++- src/version/get-versions.ts | 2 +- 4 files changed, 58 insertions(+), 31 deletions(-) diff --git a/dist/index.js b/dist/index.js index 1eb34df..52ec2ab 100644 --- a/dist/index.js +++ b/dist/index.js @@ -27,7 +27,7 @@ exports.deleteVersions = exports.finalIds = exports.getVersionIds = void 0; const rxjs_1 = __nccwpck_require__(5805); const version_1 = __nccwpck_require__(4428); const operators_1 = __nccwpck_require__(7801); -const RATE_LIMIT = 99; +//const RATE_LIMIT = 99 let totalCount; function getVersionIds(owner, repo, packageName, numVersions, cursor, token) { return version_1.getOldestVersions(owner, repo, packageName, numVersions, cursor, token).pipe(operators_1.expand(value => value.paginate @@ -41,40 +41,44 @@ function finalIds(input) { } if (input.hasOldestVersionQueryInfo()) { if (input.minVersionsToKeep < 0) { + /* input.numOldVersionsToDelete = - input.numOldVersionsToDelete < RATE_LIMIT - ? input.numOldVersionsToDelete - : RATE_LIMIT; + input.numOldVersionsToDelete < RATE_LIMIT + ? input.numOldVersionsToDelete + : RATE_LIMIT*/ + console.log(`input.numOldVersionsToDelete: ${input.numOldVersionsToDelete}`); return getVersionIds(input.owner, input.repo, input.packageName, input.numOldVersionsToDelete, '', input.token).pipe(operators_1.map(value => { + value = value.filter(info => !input.ignoreVersions.test(info.version)); const temp = input.numOldVersionsToDelete; input.numOldVersionsToDelete = input.numOldVersionsToDelete - value.length <= 0 ? 0 : input.numOldVersionsToDelete - value.length; - input.numDeleted += value.filter(info => !input.ignoreVersions.test(info.version)).length; - return value - .filter(info => !input.ignoreVersions.test(info.version)) - .map(info => info.id) - .slice(0, temp); + console.log(`temp: ${temp}, numOldeVersions: ${input.numOldVersionsToDelete}`); + return value.map(info => info.id).slice(0, temp); })); } else { - return getVersionIds(input.owner, input.repo, input.packageName, RATE_LIMIT, '', input.token).pipe(operators_1.map(value => { + return getVersionIds(input.owner, input.repo, input.packageName, 100, '', input.token).pipe(operators_1.map(value => { totalCount = totalCount - value.filter(info => input.ignoreVersions.test(info.version)).length; value = value.filter(info => !input.ignoreVersions.test(info.version)); let toDelete = totalCount - input.minVersionsToKeep - input.numDeleted; toDelete = toDelete > value.length ? value.length : toDelete; + /* if (toDelete > 0 && input.numDeleted < RATE_LIMIT) { - // using input.numDeleted to keep track of deleted and remaining packages - if (input.numDeleted + toDelete > 99) { - toDelete = RATE_LIMIT - input.numDeleted; - input.numDeleted = RATE_LIMIT; - } - else { - input.numDeleted = input.numDeleted + toDelete; - } + // using input.numDeleted to keep track of deleted and remaining packages + if (input.numDeleted + toDelete > 99) { + toDelete = RATE_LIMIT - input.numDeleted + input.numDeleted = RATE_LIMIT + } else { + input.numDeleted = input.numDeleted + toDelete + } + return value.map(info => info.id).slice(0, toDelete) + } else return []*/ + if (toDelete > 0) { + input.numDeleted += toDelete; return value.map(info => info.id).slice(0, toDelete); } else @@ -177,6 +181,7 @@ exports.deletePackageVersions = exports.deletePackageVersion = void 0; const rxjs_1 = __nccwpck_require__(5805); const operators_1 = __nccwpck_require__(7801); const graphql_1 = __nccwpck_require__(6320); +let deleted = 0; const mutation = ` mutation deletePackageVersion($packageVersionId: String!) { deletePackageVersion(input: {packageVersionId: $packageVersionId}) { @@ -184,6 +189,11 @@ const mutation = ` } }`; function deletePackageVersion(packageVersionId, token) { + if (deleted === 99) { + console.log(`reaching rate limit`); + operators_1.delay(5000); + } + deleted += 1; return rxjs_1.from(graphql_1.graphql(token, mutation, { packageVersionId, headers: { @@ -202,6 +212,7 @@ function deletePackageVersions(packageVersionIds, token) { return rxjs_1.of(true); } const deletes = packageVersionIds.map(id => deletePackageVersion(id, token).pipe(operators_1.tap(result => { + console.log(`versions Deleted 0 : ${deleted}`); if (result) { console.log(`version with id: ${id}, deleted`); } @@ -282,7 +293,7 @@ function queryForOldestVersions(owner, repo, packageName, numVersions, startCurs owner, repo, package: packageName, - last: numVersions, + last: numVersions > 100 ? 100 : numVersions, headers: { Accept: 'application/vnd.github.packages-preview+json' } diff --git a/src/delete.ts b/src/delete.ts index 330e2b6..0466fbf 100644 --- a/src/delete.ts +++ b/src/delete.ts @@ -3,7 +3,7 @@ import {EMPTY, Observable, of, throwError} from 'rxjs' import {deletePackageVersions, getOldestVersions, VersionInfo} from './version' import {concatMap, map, expand, tap} from 'rxjs/operators' -const RATE_LIMIT = 99 +//const RATE_LIMIT = 99 let totalCount: number export function getVersionIds( @@ -45,10 +45,14 @@ export function finalIds(input: Input): Observable { } if (input.hasOldestVersionQueryInfo()) { if (input.minVersionsToKeep < 0) { + /* input.numOldVersionsToDelete = input.numOldVersionsToDelete < RATE_LIMIT ? input.numOldVersionsToDelete - : RATE_LIMIT + : RATE_LIMIT*/ + console.log( + `input.numOldVersionsToDelete: ${input.numOldVersionsToDelete}` + ) return getVersionIds( input.owner, input.repo, @@ -58,18 +62,16 @@ export function finalIds(input: Input): Observable { input.token ).pipe( map(value => { + value = value.filter(info => !input.ignoreVersions.test(info.version)) const temp = input.numOldVersionsToDelete input.numOldVersionsToDelete = input.numOldVersionsToDelete - value.length <= 0 ? 0 : input.numOldVersionsToDelete - value.length - input.numDeleted += value.filter( - info => !input.ignoreVersions.test(info.version) - ).length - return value - .filter(info => !input.ignoreVersions.test(info.version)) - .map(info => info.id) - .slice(0, temp) + console.log( + `temp: ${temp}, numOldeVersions: ${input.numOldVersionsToDelete}` + ) + return value.map(info => info.id).slice(0, temp) }) ) } else { @@ -77,7 +79,7 @@ export function finalIds(input: Input): Observable { input.owner, input.repo, input.packageName, - RATE_LIMIT, + 100, '', input.token ).pipe( @@ -88,6 +90,7 @@ export function finalIds(input: Input): Observable { value = value.filter(info => !input.ignoreVersions.test(info.version)) let toDelete = totalCount - input.minVersionsToKeep - input.numDeleted toDelete = toDelete > value.length ? value.length : toDelete + /* if (toDelete > 0 && input.numDeleted < RATE_LIMIT) { // using input.numDeleted to keep track of deleted and remaining packages if (input.numDeleted + toDelete > 99) { @@ -97,6 +100,11 @@ export function finalIds(input: Input): Observable { input.numDeleted = input.numDeleted + toDelete } return value.map(info => info.id).slice(0, toDelete) + } else return []*/ + + if (toDelete > 0) { + input.numDeleted += toDelete + return value.map(info => info.id).slice(0, toDelete) } else return [] }) ) diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 40a7269..1e6c079 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -1,8 +1,10 @@ import {from, Observable, merge, throwError, of} from 'rxjs' -import {catchError, map, tap} from 'rxjs/operators' +import {catchError, delay, map, tap} from 'rxjs/operators' import {GraphQlQueryResponse} from '@octokit/graphql/dist-types/types' import {graphql} from './graphql' +let deleted = 0 + export interface DeletePackageVersionMutationResponse { deletePackageVersion: { success: boolean @@ -20,6 +22,11 @@ export function deletePackageVersion( packageVersionId: string, token: string ): Observable { + if (deleted === 99) { + console.log(`reaching rate limit`) + delay(5000) + } + deleted += 1 return from( graphql(token, mutation, { packageVersionId, @@ -51,6 +58,7 @@ export function deletePackageVersions( const deletes = packageVersionIds.map(id => deletePackageVersion(id, token).pipe( tap(result => { + console.log(`versions Deleted 0 : ${deleted}`) if (result) { console.log(`version with id: ${id}, deleted`) } else { diff --git a/src/version/get-versions.ts b/src/version/get-versions.ts index dad6909..5d91e6d 100644 --- a/src/version/get-versions.ts +++ b/src/version/get-versions.ts @@ -101,7 +101,7 @@ export function queryForOldestVersions( owner, repo, package: packageName, - last: numVersions, + last: numVersions > 100 ? 100 : numVersions, headers: { Accept: 'application/vnd.github.packages-preview+json' } From 324039ba0a2f9b3e6099a2d32812699a8f72a51d Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:22:21 +0000 Subject: [PATCH 2/8] logs to check rate limit --- dist/index.js | 24 ++++++++++++++++++- src/version/delete-version.ts | 44 +++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/dist/index.js b/dist/index.js index 52ec2ab..fd4f98d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -177,7 +177,7 @@ exports.Input = Input; "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.deletePackageVersions = exports.deletePackageVersion = void 0; +exports.deletePackageVersions = exports.deletePackageVersion = exports.getRateLimit = void 0; const rxjs_1 = __nccwpck_require__(5805); const operators_1 = __nccwpck_require__(7801); const graphql_1 = __nccwpck_require__(6320); @@ -188,7 +188,29 @@ const mutation = ` success } }`; +const ratelimitQuery = ` +query { + viewer { + login + } + rateLimit { + limit + cost + remaining + resetAt + node + } +}`; +function getRateLimit(token) { + return rxjs_1.from(graphql_1.graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + })); +} +exports.getRateLimit = getRateLimit; function deletePackageVersion(packageVersionId, token) { + getRateLimit(token).pipe(operators_1.map(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}`))); if (deleted === 99) { console.log(`reaching rate limit`); operators_1.delay(5000); diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 1e6c079..b158815 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -18,10 +18,54 @@ const mutation = ` } }` +export interface RateLimitResponse { + viewer: { + login: string + } + ratelimit: { + limit: number + cost: number + remaining: number + resetAt: string + node: number + } +} + +const ratelimitQuery = ` +query { + viewer { + login + } + rateLimit { + limit + cost + remaining + resetAt + node + } +}` + +export function getRateLimit(token: string): Observable { + return from( + graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + }) as Promise + ) +} + export function deletePackageVersion( packageVersionId: string, token: string ): Observable { + getRateLimit(token).pipe( + map(value => + console.log( + `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}` + ) + ) + ) if (deleted === 99) { console.log(`reaching rate limit`) delay(5000) From 372546727d8ab7f408d3db6583dcc103be8b7f59 Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:30:35 +0000 Subject: [PATCH 3/8] add error handling --- dist/index.js | 4 ++++ src/version/delete-version.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/dist/index.js b/dist/index.js index fd4f98d..61dc595 100644 --- a/dist/index.js +++ b/dist/index.js @@ -206,6 +206,10 @@ function getRateLimit(token) { headers: { Accept: 'application/vnd.github.package-deletes-preview+json' } + })).pipe(operators_1.catchError(err => { + return rxjs_1.throwError(err.errors && err.errors.length > 0 + ? `${err.errors[0].message}` + : `unknown error`); })); } exports.getRateLimit = getRateLimit; diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index b158815..5de131f 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -52,6 +52,14 @@ export function getRateLimit(token: string): Observable { Accept: 'application/vnd.github.package-deletes-preview+json' } }) as Promise + ).pipe( + catchError(err => { + return throwError( + err.errors && err.errors.length > 0 + ? `${err.errors[0].message}` + : `unknown error` + ) + }) ) } From 1369f0ca05c355c68d7a5dc5e33bb54b69ae4a10 Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:33:41 +0000 Subject: [PATCH 4/8] fix ratelimit query --- dist/index.js | 3 +-- src/version/delete-version.ts | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/dist/index.js b/dist/index.js index 61dc595..1b9197b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -198,7 +198,6 @@ query { cost remaining resetAt - node } }`; function getRateLimit(token) { @@ -214,7 +213,7 @@ function getRateLimit(token) { } exports.getRateLimit = getRateLimit; function deletePackageVersion(packageVersionId, token) { - getRateLimit(token).pipe(operators_1.map(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}`))); + getRateLimit(token).pipe(operators_1.map(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}`))); if (deleted === 99) { console.log(`reaching rate limit`); operators_1.delay(5000); diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 5de131f..73ed706 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -27,7 +27,6 @@ export interface RateLimitResponse { cost: number remaining: number resetAt: string - node: number } } @@ -41,7 +40,6 @@ query { cost remaining resetAt - node } }` @@ -70,7 +68,7 @@ export function deletePackageVersion( getRateLimit(token).pipe( map(value => console.log( - `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}` + `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` ) ) ) From ef5d9ac3985412ac727c24e77917e803e19d8601 Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:45:39 +0000 Subject: [PATCH 5/8] add logs --- dist/index.js | 1 + src/version/delete-version.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/dist/index.js b/dist/index.js index 1b9197b..be9b59b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -219,6 +219,7 @@ function deletePackageVersion(packageVersionId, token) { operators_1.delay(5000); } deleted += 1; + operators_1.delay(10000); return rxjs_1.from(graphql_1.graphql(token, mutation, { packageVersionId, headers: { diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 73ed706..f1de9a3 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -77,6 +77,7 @@ export function deletePackageVersion( delay(5000) } deleted += 1 + delay(10000) return from( graphql(token, mutation, { packageVersionId, From 0739cce1e8d24224c6a7e0f4cdbb444db3a37f6f Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:49:48 +0000 Subject: [PATCH 6/8] use tap --- __tests__/version/delete-version.test.ts | 10 +++++----- src/version/delete-version.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/__tests__/version/delete-version.test.ts b/__tests__/version/delete-version.test.ts index a34bbbf..44ff9b6 100644 --- a/__tests__/version/delete-version.test.ts +++ b/__tests__/version/delete-version.test.ts @@ -2,10 +2,10 @@ import {deletePackageVersion, deletePackageVersions} from '../../src/version' const githubToken = process.env.GITHUB_TOKEN as string -describe.skip('delete tests', () => { +describe('delete tests', () => { it('deletePackageVersion', async () => { const response = await deletePackageVersion( - 'MDE0OlBhY2thZ2VWZXJzaW9uNjg5OTU1', + 'PV_lADOGReZt84AEI7FzgDSHEI', githubToken ).toPromise() expect(response).toBe(true) @@ -14,9 +14,9 @@ describe.skip('delete tests', () => { it('deletePackageVersions', async () => { const response = await deletePackageVersions( [ - 'MDE0OlBhY2thZ2VWZXJzaW9uNjk4Mjc0', - 'MDE0OlBhY2thZ2VWZXJzaW9uNjk4Mjcx', - 'MDE0OlBhY2thZ2VWZXJzaW9uNjk4MjY3' + 'PV_lADOGReZt84AEI7FzgDSHDs', + 'PV_lADOGReZt84AEI7FzgDSHDY', + 'PV_lADOGReZt84AEI7FzgDSHC8' ], githubToken ).toPromise() diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index f1de9a3..d0f7112 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -66,7 +66,7 @@ export function deletePackageVersion( token: string ): Observable { getRateLimit(token).pipe( - map(value => + tap(value => console.log( `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` ) From 9ff1e31776ed3647e8a0e6f20b04be79093acb8e Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 16:05:18 +0000 Subject: [PATCH 7/8] use promise for rate limit --- dist/index.js | 29 ++++++++++++++++++----------- src/version/delete-version.ts | 31 ++++++++++--------------------- 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/dist/index.js b/dist/index.js index be9b59b..a94d506 100644 --- a/dist/index.js +++ b/dist/index.js @@ -172,10 +172,19 @@ exports.Input = Input; /***/ }), /***/ 5544: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.deletePackageVersions = exports.deletePackageVersion = exports.getRateLimit = void 0; const rxjs_1 = __nccwpck_require__(5805); @@ -201,19 +210,17 @@ query { } }`; function getRateLimit(token) { - return rxjs_1.from(graphql_1.graphql(token, ratelimitQuery, { - headers: { - Accept: 'application/vnd.github.package-deletes-preview+json' - } - })).pipe(operators_1.catchError(err => { - return rxjs_1.throwError(err.errors && err.errors.length > 0 - ? `${err.errors[0].message}` - : `unknown error`); - })); + return __awaiter(this, void 0, void 0, function* () { + return graphql_1.graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + }); + }); } exports.getRateLimit = getRateLimit; function deletePackageVersion(packageVersionId, token) { - getRateLimit(token).pipe(operators_1.map(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}`))); + getRateLimit(token).then(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}`)); if (deleted === 99) { console.log(`reaching rate limit`); operators_1.delay(5000); diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index d0f7112..64f390d 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -43,35 +43,24 @@ query { } }` -export function getRateLimit(token: string): Observable { - return from( - graphql(token, ratelimitQuery, { - headers: { - Accept: 'application/vnd.github.package-deletes-preview+json' - } - }) as Promise - ).pipe( - catchError(err => { - return throwError( - err.errors && err.errors.length > 0 - ? `${err.errors[0].message}` - : `unknown error` - ) - }) - ) +export async function getRateLimit(token: string): Promise { + return graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + }) as Promise } export function deletePackageVersion( packageVersionId: string, token: string ): Observable { - getRateLimit(token).pipe( - tap(value => - console.log( - `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` - ) + getRateLimit(token).then(value => + console.log( + `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` ) ) + if (deleted === 99) { console.log(`reaching rate limit`) delay(5000) From e9faf3233c9ef3187565121e358fbe57793d0c45 Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 16:17:44 +0000 Subject: [PATCH 8/8] check rate limit --- dist/index.js | 8 +++++++- src/version/delete-version.ts | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/dist/index.js b/dist/index.js index a94d506..1a0455d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -220,7 +220,13 @@ function getRateLimit(token) { } exports.getRateLimit = getRateLimit; function deletePackageVersion(packageVersionId, token) { - getRateLimit(token).then(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}`)); + getRateLimit(token) + .then(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}`)) + .catch(err => { + return rxjs_1.throwError(err.errors && err.errors.length > 0 + ? `${err.errors[0].message}` + : `Unknown Error`); + }); if (deleted === 99) { console.log(`reaching rate limit`); operators_1.delay(5000); diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 64f390d..0f494d9 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -55,11 +55,19 @@ export function deletePackageVersion( packageVersionId: string, token: string ): Observable { - getRateLimit(token).then(value => - console.log( - `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` + getRateLimit(token) + .then(value => + console.log( + `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}` + ) ) - ) + .catch(err => { + return throwError( + err.errors && err.errors.length > 0 + ? `${err.errors[0].message}` + : `Unknown Error` + ) + }) if (deleted === 99) { console.log(`reaching rate limit`)