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

callmydouble

v0.3.0

Published

callmydouble gives you a public route to be dispatched locally.

Downloads

42

Readme

callmydouble

Note: There might be thousands such solutions available already! :D

Ever needed a public beach head to catch callbacks from third party services, but you wanna react locally?

This module provides a simple server, which can be run on a publicly reachable Cloudron, allowing clients to connect via socket.io from their developer box to the server. The client maintains a connection and will get notified if the public server was called on a user specific URL.

The server can maintain multiple such developer connections and give each of them a unique callback URL, which will get dispatched to their local client, where the developer is free to do whatever he wants with it.

The bundled client allows to generate application keys to identify the user and specify the unique URL. It further is an example on how to use the Listener in your application. The most common use case might be to just forward the incoming request locally to a node during development.

Installation

Install

or using the Cloudron command line tooling

cloudron install --appstore-id de.nebulon.callmydouble.cloudronapp

Usage

Login to your installed app instance and obtain an application key. Each user can get initially and refresh his application key. This key can then be used to create a unique callback route which will get disptached to the listener which passes the same application key in. If the server is not running on the same machine, all client commands will take a --remote option to specify the remote server.

./bin/client refresh username:password
# will display the app key and the app secret
./bin/client listen --key <appkey> --secret <appsecret>

From that point on you can test the flow

export APPKEY=<appkey>
curl -X POST https://<app-domain>/proxy/$APPKEY/some/route -H "Content-Type: application/json" -d '{"something":"to","say":true}'

TODOs

Built-in request forwarding

The client should forward the request if the user wants automatically. This would remove the need to write your own forwarder.

Provide response to the server

The server currently happily accepts all incoming requests if the route contains a valid application key and there is a client interested in those request. It then immediately sends 200. It would be nicer if the client could signalize the server to finish the request with additional data and status code.