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

mockcache

v0.0.1

Published

Mockcache helps developers (specially frontend web / app developers) to avoid api downtime when the dependent backend service goes down or when you wish to work offline. This can also act as a caching server to speed up responses from your original server

Downloads

3

Readme

Mockcache

This project helps developers to avoid api downtime when the dependent backend goes down. It caches all api request and saves it for the may day (when api's go down).

When api goes down, you just switch a flag and it starts serving cached api's from your disk.

No server garuntees 100% uptime and the backend teams will bring down the dev environment on one fine day. Even then we hate to create mock api's & contracts as its time consuming and this project solves this problem by creating the api contracts automatically as you use your application.


Warning: This project is a work in progress. Things may break or API may change frequently.


Installation

npm install

Then go to config.js file and configure the domain you wish to proxy to. Finally start your proxy server by the following command:

npm start

Your server will be available at http://localhost:2222

Config Options

These options can be configured in config.js

*mode [string] : (default: "network-only") - If this flag is set to true, responses will be served from the local file system.

cache-only: cache-only mode serves from the cache if the entry is found else 404
cache-first: cache-first mode will serve from cache if the entry is cached
network-first: network-first mode will serve from network, in case the network fails it will serve from cache
network-only: network-only mode serves from network only else it returns 404

record [boolean] : (default: true) - If this flag is set to true, reponses will be recorded when serving from proxy.

routes [object] : (default is set to example.com) - You can set the config of which routes to be served from which domain.

  routes: {
    '/': 'http://www.example.com/',
  },

The / route by default serves all routes.

ignoreRequestData [boolean] - (default: false) - When this flag is set to true, the POST & PUT requestData is ignored while recording responses.

Normally, we hash the request body and save it in the file name.

Cache Files

The cache files are recorded in the responses directory with the following structure:

<file path>~<request method>~<request body hash>~<response status code>.<extension>

Note / are converted to | in file path.

Eg: A successfull response for GET /api/user/profile gets converted to:

|api|user|profile~GET~200.json

Logs

When you run the server the logs for api's are printed on the console. It also shows if the request was served from cache or by proxy.

Contribute

PR's are welcome for new features/bugs. First create a github issue to discuss the change you wish to bring in.

About

Developed by Ankit Duseja. You can find me on twitter @AnkitDuseja.

ISC License

Copyright 2019 Ankit Duseja.

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.