use promise for rate limit

This commit is contained in:
Namrata Jha
2021-12-22 16:05:18 +00:00
committed by GitHub
parent 0739cce1e8
commit 9ff1e31776
2 changed files with 28 additions and 32 deletions

29
dist/index.js vendored
View File

@@ -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);

View File

@@ -43,35 +43,24 @@ query {
}
}`
export function getRateLimit(token: string): Observable<RateLimitResponse> {
return from(
graphql(token, ratelimitQuery, {
headers: {
Accept: 'application/vnd.github.package-deletes-preview+json'
}
}) as Promise<RateLimitResponse>
).pipe(
catchError(err => {
return throwError(
err.errors && err.errors.length > 0
? `${err.errors[0].message}`
: `unknown error`
)
})
)
export async function getRateLimit(token: string): Promise<RateLimitResponse> {
return graphql(token, ratelimitQuery, {
headers: {
Accept: 'application/vnd.github.package-deletes-preview+json'
}
}) as Promise<RateLimitResponse>
}
export function deletePackageVersion(
packageVersionId: string,
token: string
): Observable<boolean> {
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)