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 🙏

© 2026 – Pkg Stats / Ryan Hefner

electron-requester

v1.0.3

Published

方便ipcRenderer与ipcMain通信

Readme

electron-requester

用于electron中ipcRenderer与ipcMain通信。electron提供的api是事件的发送与监听,但是这种模式在开发的过程中并不方便。所以我将这些接口封装成服务端与客户端的形式,ipcRenderer为客户端,ipcMain作为服务端。

Requester

提供给ipcRenderer使用,用于请求ipcMain。有一个实现类DefaultRequester

export interface Requester {
  /**
   * 发送请求
   * @param channel             通道。注意这不会ipcRenderer.send(channel, listener)中的通道,仅是一个参数
   * @param params              参数
   * @param handler             处理最后结果的handler
   * @param progressiveHandler  处理过程通知的handler
   */
  request(channel: string,
          params: {[key: string]: any},
          handler: EndHandler,
          progressiveHandler?: ProgressiveHandler);
}

Dispatcher

提供给ipcMain使用,用于监听ipcRenderer发送的请求。有一个实现类DefaultDispatcher

/**
 * 事件调度器
 */
export interface Dispatcher {
    dispatch(): void;
}

HandlerRegistry

用于注册处理器,有一个实现类DefaultHandlerRegistry

/**
 * handler注册器
 */
export interface HandlerRegistry {
    /**
     * 注册handler
     * @param channel 事件
     * @param handler 处理器
     */
    register(channel: string, handler: ChannelHandler): this;

    /**
     * 获得handler
     */
    getHandler(channel: string): ChannelHandler;
}

ChannelHandler

用于处理请求,有一个实现类EchoChannelHandler

/**
 * 处理事件
 */
export interface ChannelHandler {
  /**
   * 处理事件
   * @param responser
   * @param param
   */
  handle(responser: Responser, param: {[key: string]: any});
}