Skip to content

Latest commit

 

History

History
72 lines (46 loc) · 3.05 KB

README.md

File metadata and controls

72 lines (46 loc) · 3.05 KB

npm-cdn

A webservice that dishes out files from npm packages.

npm-cdn downloads tarballs from the npm registry and stores them on disk. First-time requests for a package are slow because the entire package tarball has to be fetched, but subsequent requests for files in the same package should be pretty fast.

Caveat npmtor: This is a proof of concept app. It works, but it's experimental. It's running on a single Heroku dyno so it won't scale. To become a real thing it will need to sit behind a CDN.

See also unpkg.com, a very similar project.

Usage

To access a file inside a published npm package, use the following pattern:

https://npm-cdn.herokuapp.com/{packageName}@{packageVersion}/{filePath}

Examples:

Indexes

When a package is downloaded, index files are generated in HTML and JSON format.

  • /[email protected] renders an HTML page with links to all the files in the package.
  • /[email protected]/?json returns a JSON array of all the files in the package. You can also set an application/json Accept header in the request instead of using the json query param.

Redirects

If you request a package without specifying a version, you'll be redirected to the index for the latest version of the package:

Tests

npm install
npm test

Dependencies

  • findit: walk a directory tree recursively with events
  • handlebars: Handlebars provides the power necessary to let you build semantic templates effectively with no frustration
  • request: Simplified HTTP request client.
  • restify: REST framework
  • superagent: elegant & feature rich browser / node HTTP with a fluent API
  • tar-fs: filesystem bindings for tar-stream

Dev Dependencies

  • mocha: simple, flexible, fun test framework
  • nixt: Simple and powerful testing for command-line apps
  • nodemon: Simple monitor script for use during development of a node.js app.
  • rimraf: A deep deletion module for node (like rm -rf)
  • supertest: Super-agent driven library for testing HTTP servers

License

ISC

Generated by package-json-to-readme