npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

qedproxy

v0.4.0

Published

Serve static pages, JSON, or proxy requests to another endpoint. Makes front-end development simpler.

Downloads

9

Readme

QEDproxy

When developing front-end apps, you need an API. But that API might not support CORS. That means you have to write your own proxy and serve your app from the same server as your proxy.

QEDproxy can serve your client-side app and let you proxy requests to a remote endpoint.

Directory listing is supported, and index.html is a default filename.

Example

You're writing a cool app that shows who's in space right now.

The api http://api.open-notify.org/astros.json is a fantastic resource but it's not available locally.

QEDProxy to the rescue.

Put your app in the public folder.

Then run qedproxy and pass it the public folder where your pages are, and the root of the remote URL's endpoint, like this:

$ qedproxy --static public --api http://api.open-notify.org

A server starts on port 4242.

A request to /api on your local server maps to / on the remote server, which should work in most cases.

Additional options

Need to change the port?

$ qedproxy --static public --api http://api.open-notify.org --port 9999

You can use -s, -a and -p if those extra keystrokes bug you. They are optional, too. If you don't specify an endpoint, then this'll just be a static webserver. If you don't specify a static folder, it'll use public/. And the port defaults to 4242.

-v will show you the current version and exit.

CORS

CORS headers are set up to be wide-open. So you don't have to use this as a static server if you don't want to. Fire this up on some port and hit it from wherever. Should work great.

Install

QEDproxy can be used as a global CLI program:

$ npm install -g qedproxy

It's also something you could install per project.

$ npm install qedproxy --save-dev

Although this will be placed in node_modules instead so you should start it appropriately.

Tests

Tests are written with Mocha and Should.js. To run them, run

$ npm test

Contributing

Contributions are welcome.

Fork, write a single feature or single bugfix with passing tests. Make a pull request **that justifies why this feature should exist((, but please don't touch the REAMDE file or bump the version.

New features without justification will be closed automatically.

License

MIT

See LICENSE for details.