https://github.com/kevinpollet/fetch-pkg
Fetch packages from any npm-compatible registry
https://github.com/kevinpollet/fetch-pkg
download fetch github-package-registry metadata npm package stream
Last synced: about 1 year ago
JSON representation
Fetch packages from any npm-compatible registry
- Host: GitHub
- URL: https://github.com/kevinpollet/fetch-pkg
- Owner: kevinpollet
- License: mit
- Created: 2019-10-24T05:03:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-01T01:21:25.000Z (over 4 years ago)
- Last Synced: 2025-03-18T21:54:30.928Z (about 1 year ago)
- Topics: download, fetch, github-package-registry, metadata, npm, package, stream
- Language: TypeScript
- Homepage:
- Size: 105 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# fetch-pkg
[](https://github.com/kevinpollet/fetch-pkg/actions)
[](https://coveralls.io/github/kevinpollet/fetch-pkg)
[](https://www.npmjs.com/package/fetch-pkg)
[](https://www.npmjs.com/package/fetch-pkg)
[](https://conventionalcommits.org)
[](https://github.com/prettier/prettier)
[](./LICENSE.md)
[](https://github.com/kevinpollet/fetch-pkg/stargazers)
[](https://twitter.com/kevinpollet)
Fetch packages from any npm-compatible registry.
Table of Contents (click to expand)
- [Installation](#installation)
- [Usage](#usage)
- [API](#api)
- [Contributing](#contributing)
- [License](#license)
## Installation
```shell
npm install --save fetch-pkg # npm
yarn add fetch-pkg # Yarn
```
## Usage
```typescript
import fs from "fs";
import { fetchPkg } from "fetch-pkg";
fetchPkg("fetch-pkg")
.then(pkg =>
pkg
.pipe(fs.createWriteStream("inception.tgz"))
.once("finish", () => process.exit(0))
)
.catch(err => {
console.error(err);
process.exit(1);
});
```
## API
### fetchPkg(name: string, opts?: [Options](#options)): Promise<[Pkg](#pkg)>
Fetch a package from an npm-compatible registry and return the fetch package metadata and tarball stream.
### Pkg
Extends: `stream.Readable`
#### name
- Type: `string`
The fetched package name.
#### version
- Type: `string`
The fetched package version.
### Options
#### registryURL
- Type: `string`
- Default: `https://registry.npmjs.org/`
The package registry URL. For example, to fetch a package from the GitHub Package Registry you should use https://npm.pkg.github.com.
#### token
- Type: `string`
The authentication token.
#### version
- Type: `string`
- Default: `latest`
The package version to fetch, a valid [semver range](https://github.com/npm/node-semver#ranges) or a [dist tag](https://docs.npmjs.com/cli/dist-tag).
### Errors
- `FetchPkgError`: This error is thrown when something went wrong with the HTTP requests.
- `PackageNotFoundError`: This error is thrown when the given package name cannot be found.
- `PackageVersionNotFoundError`: This error is thrown when the given package version cannot be found.
## Contributing
Contributions are welcome!
Want to file a bug, request a feature or contribute some code?
1. Check out the [Code of Conduct](./CODE_OF_CONDUCT.md).
2. Check for an existing [issue](https://github.com/kevinpollet/fetch-pkg) matching your bug or feature request.
3. Open an issue describing your bug or feature request.
4. Open a pull request if you want to contribute some code.
## License
[MIT](./LICENSE.md)