Socket
Socket
Sign inDemoInstall

gh-release-fetch

Package Overview
Dependencies
Maintainers
10
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gh-release-fetch - npm Package Compare versions

Comparing version 1.0.3 to 1.0.4

.github/workflows/fossa.yml

1

dist/index.d.ts

@@ -11,1 +11,2 @@ export interface Release {

export declare function updateAvailable(repository: string, currentVersion: string): Promise<boolean>;
export declare function newerVersion(latestVersion: string, currentVersion: string): boolean;

@@ -32,3 +32,3 @@ "use strict";

const latestVersion = yield resolveRelease(repository);
return semver_1.gt(latestVersion, currentVersion);
return newerVersion(latestVersion, currentVersion);
});

@@ -41,2 +41,7 @@ }

const json = yield res.json();
if (res.status === 403 &&
typeof json.message === 'string' &&
json.message.includes('API rate limit exceeded')) {
throw new Error('API rate limit exceeded, please try again later');
}
return json.tag_name;

@@ -66,1 +71,13 @@ });

}
function newerVersion(latestVersion, currentVersion) {
if (!latestVersion) {
return false;
}
if (!currentVersion) {
return true;
}
const l = latestVersion.replace(/^v/, '');
const c = currentVersion.replace(/^v/, '');
return semver_1.gt(l, c);
}
exports.newerVersion = newerVersion;

2

package.json
{
"name": "gh-release-fetch",
"version": "1.0.3",
"version": "1.0.4",
"description": "A library to fetch release binaries from GitHub Releases",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -1,2 +0,2 @@

import { newerVersion } from './index'
import { newerVersion, fetchLatest } from "./index";

@@ -12,1 +12,29 @@ test('compare versions', () => {

})
jest.mock('node-fetch');
describe('fetchLatest', () => {
test('should throw error when api limit is reached', async () => {
const fetch = require("node-fetch");
const response = {
status: 403,
json: () =>
Promise.resolve({
message: 'API rate limit exceeded for ',
}),
};
fetch.mockResolvedValue(response)
await expect(
fetchLatest({
repository: 'netlify/test',
package: 'test',
destination: 'bin/test',
version: '1.0.0',
extract: true,
})
).rejects.toEqual(
new Error('API rate limit exceeded, please try again later')
);
});
});

@@ -30,4 +30,13 @@ import * as download from 'download';

async function resolveRelease(repository: string): Promise<string> {
const res = await fetch(`https://api.github.com/repos/${repository}/releases/latest`);
const res = await fetch(
`https://api.github.com/repos/${repository}/releases/latest`
);
const json = await res.json();
if (
res.status === 403 &&
typeof json.message === 'string' &&
json.message.includes('API rate limit exceeded')
) {
throw new Error('API rate limit exceeded, please try again later');
}
return json.tag_name;

@@ -34,0 +43,0 @@ }

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc