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

@bigbinary/neeto-rate-limit-frontend

v2.1.1

Published

A repo acts as the source of truth for the new nano's structure, configs, data etc.

Downloads

8

Readme

neeto-rate-limit-nano

The neeto-rate-limit-nano can be used to rate-limit the execution of background jobs. (Non-sidekiq for now, ActiveJob, SolidQueue)

Setup

The following setup would be already present for existing apps, add it if your app is new.

  1. Add the gem in Gemfile.common.rb

     source "NEETO_GEM_SERVER_URL" do
       # ..existing gems
    
       gem "neeto-rate-limit-engine"
     end
  2. Install the gem

    bundle install
  3. Add required migrations in the db/migrate folder. Run the following commands to copy the migrations from the engine to the host application. Ex: neetoDesk

    rails neeto_rate_limit_engine:install:migrations
    rails db:migrate
  4. Include the concern in Organization model

    class Organization < ApplicationRecord
       .
       .
       include NeetoRateLimitEngine::Helpers
    
    end

Rate limiting email deliveries for an organization:

The emails are rate-limited automatically for all products from neeto-commons-backend. If this is not working in some apps, please create an issue or make sure the app has following setup.

  1. Follow the steps mentioned in Setup section

  2. Make sure ApplicationMailer uses the correct base class (Refer to neetoForm for SolidQueue adapter)

    class ApplicationMailer < NeetoCommonsBackend::ApplicationMailer
  3. Make sure that organization_id is available in the params for all the mailers

    UserMailer
       .with(organization_id: @organization.id, user_id: @user.id)
       .welcome_email
       .deliver_later

Rate limiting job deliveries for an organization:

Rate limits don't work for Sidekiq jobs. This only works for ActiveJobs. SolidQueue adapter is supported too.

  1. Follow the steps mentioned in Setup section

  2. Include the concern in the job

    class HardJob < ActiveJob::Base
       include NeetoRateLimitEngine::Throttler
       .
       .
       .
    end
  3. Implement a organization method in the worker. This would be called in before_perform callback, you can get the args using arguments attribute. Refer neetoForm's implementation.

Development with Host Application

Frontend package

Installation

  1. Add the neeto-rate-limit-frontend package to the package.json

    yarn add @bigbinary/neeto-rate-limit-frontend

Instructions for development

Check the Frontend package development guide for step-by-step instructions to develop the frontend package.

Usage

Import WelcomeScreen component from "@bigbinary/neeto-rate-limit-frontend"

import React from "react";

import { WelcomeScreen } from "@bigbinary/neeto-rate-limit-frontend";

const App = () => <WelcomeScreen />;

export default App;

Instructions for Publishing

Consult the building and releasing packages guide for details on how to publish.