# @jsmini/pubsub

> A small yet beautiful PubSub library, implementing the Publisher-Subscriber pattern.

Latest version **0.4.0** (published 2023-11-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install @jsmini/pubsub
pnpm add @jsmini/pubsub
yarn add @jsmini/pubsub
bun add @jsmini/pubsub
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.0 |
| Published | 2023-11-21 |
| First published | 2018-10-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=14.0.0 |
| Dependencies | 2 |
| Unpacked size | 38.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| GitHub stars | 24 |
| Author | yanhaijing |
| Maintainers | yanhaijing |

## Links

- npm: https://www.npmjs.com/package/@jsmini/pubsub
- Repository: https://github.com/jsmini/pubsub
- Homepage: https://github.com/jsmini/pubsub#readme
- Issues: https://github.com/jsmini/pubsub/issues
- npm.io page: https://npm.io/package/@jsmini/pubsub

## Dependencies (2)

- [@jsmini/is](https://npm.io/package/@jsmini/is.md) ^0.10.0
- [@jsmini/event](https://npm.io/package/@jsmini/event.md) ^0.8.0

## Recent versions

- 0.4.0 (latest) — 2023-11-21
- 0.3.0 — 2023-09-24
- 0.2.3 — 2019-10-09
- 0.2.2 — 2019-10-05
- 0.2.1 — 2019-03-04
- 0.2.0 — 2019-03-02
- 0.1.0 — 2018-10-18

## README

# [pubsub](https://github.com/jsmini/pubsub)

[![](https://img.shields.io/badge/Powered%20by-jslib%20pubsub-brightgreen.svg)](https://github.com/yanhaijing/jslib-pubsub)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jsmini/pubsub/blob/master/LICENSE)
[![CI](https://github.com/jsmini/pubsub/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/jsmini/pubsub/actions/workflows/ci.yml)
[![npm](https://img.shields.io/badge/npm-0.4.0-orange.svg)](https://www.npmjs.com/package/@jsmini/pubsub)
[![NPM downloads](http://img.shields.io/npm/dm/@jsmini/pubsub.svg?style=flat-square)](http://www.npmtrends.com/@jsmini/pubsub)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/jsmini/pubsub.svg)](http://isitmaintained.com/project/jsmini/pubsub 'Percentage of issues still open')

A small yet beautiful PubSub library, implementing the Publisher-Subscriber pattern.

English | [简体中文](./README-zh_CN.md)

## Environment Support

unit test ensure it supports the following environments.

| IE/Edge | Chrome | Firefox | Safari | Opera | IOS | Android | Node  |
| ------- | ------ | ------- | ------ | ----- | --- | ------- | ----- |
| 6+      | 23+    | 4+      | 6+     | 10+   | 5+  | 2.3+    | 0.10+ |

**Notice: builds depends on ES5. In order to support IE6-8, you should import [es5-shim](http://github.com/es-shims/es5-shim/) . See example in [demo/demo-global.html](./demo/demo-global.html)**

## Directory

```
.
├── demo
├── dist  # production code
├── doc   # document
├── src   # source code
├── test  # unit test
├── CHANGELOG.md
└── TODO.md
```

## Usage

npm installation

```bash
$ npm install --save @jsmini/pubsub
```

Node.js

```js
var name = require('@jsmini/pubsub').name;
```

webpack

```js
import { name } from '@jsmini/pubsub';
```

Require.js

```js
requirejs(
  ['node_modules/@jsmini/pubsub/dist/index.aio.js'],
  function (jsmini_pubsub) {
    var name = jsmini_pubsub.name;
  },
);
```

Browser

```html
<script src="node_modules/@jsmini/pubsub/dist/index.aio.js"></script>

<script>
  var name = jsmini_pubsub.name;
</script>
```

## Document

[API](https://github.com/jsmini/pubsub/blob/master/doc/api.md)

## Contributing Guide ![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)

when initialize, install dependencies

```bash
$ npm install
```

builds your code for production to `build` folder

```bash
$ npm run build
```

run unit test. notice: borwser enviroment need to test manually. test file is in `test/browser`

```bash
$ npm test
```

change the version in package.json and README.md, add your description in CHANGELOG.md, and then release it happily.

```bash
$ npm run release
```

publish the new package to npm

```bash
$ npm publish --access=public
```

rename project. you need to edit project name when initialize project or anytime you want to rename the project . you need to rename `formName` and `toname` in file `rename.js`,which will automatically rename project name in the following files

- README.md
- package.json
- config/rollup.js
- test/browser/index.html

```bash
$ npm run rename # rename command
```

## Contributors

[contributors](https://github.com/jsmini/pubsub/graphs/contributors)

## CHANGELOG

[CHANGELOG.md](https://github.com/jsmini/pubsub/blob/master/CHANGELOG.md)

## TODO

[TODO.md](https://github.com/jsmini/pubsub/blob/master/TODO.md)

## who is using

---
_Source: https://npm.io/package/@jsmini/pubsub · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
