New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@yume-chan/event

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@yume-chan/event - npm Package Compare versions

Comparing version 0.0.16 to 0.0.17

6

CHANGELOG.json

@@ -5,2 +5,8 @@ {

{
"version": "0.0.17",
"tag": "@yume-chan/event_v0.0.17",
"date": "Tue, 18 Oct 2022 09:32:30 GMT",
"comments": {}
},
{
"version": "0.0.16",

@@ -7,0 +13,0 @@ "tag": "@yume-chan/event_v0.0.16",

7

CHANGELOG.md
# Change Log - @yume-chan/event
This log was last generated on Sat, 28 May 2022 03:56:37 GMT and should not be manually modified.
This log was last generated on Tue, 18 Oct 2022 09:32:30 GMT and should not be manually modified.
## 0.0.17
Tue, 18 Oct 2022 09:32:30 GMT
_Version update only_
## 0.0.16

@@ -6,0 +11,0 @@ Sat, 28 May 2022 03:56:37 GMT

15

package.json
{
"name": "@yume-chan/event",
"version": "0.0.16",
"version": "0.0.17",
"description": "Event/EventEmitter",

@@ -16,3 +16,3 @@ "keywords": [

},
"homepage": "https://github.com/yume-chan/ya-webadb/tree/master/libraries/event#readme",
"homepage": "https://github.com/yume-chan/ya-webadb/tree/main/libraries/event#readme",
"repository": {

@@ -30,8 +30,8 @@ "type": "git",

"dependencies": {
"@yume-chan/async": "^2.1.4",
"tslib": "^2.3.1"
"@yume-chan/async": "^2.2.0",
"tslib": "^2.4.0"
},
"devDependencies": {
"jest": "^28.1.0",
"typescript": "4.7.2",
"jest": "^28.1.2",
"typescript": "^4.7.4",
"@yume-chan/ts-package-builder": "^1.0.0"

@@ -43,4 +43,3 @@ },

"//test": "jest --coverage"
},
"readme": "# @yume-chan/event\n\nProvides a strongly-typed EventEmitter/Event implementation.\n\nInspired by TypeScript, Visual Studio Code, and more.\n\n- [Disposable](#disposable)\n- [AutoDisposable](#autodisposable)\n- [DisposableList](#disposablelist)\n- [EventEmitter/Event](#eventemitterevent)\n\n## Disposable\n\n```ts\ninterface Disposable {\n dispose(): void;\n}\n```\n\nRepresents anything that need cleanup before the garbage collector recycle it.\n\n## AutoDisposable\n\n```ts\nclass AutoDisposable implements Disposable {\n private disposables;\n constructor();\n protected addDisposable<T extends Disposable>(disposable: T): T;\n dispose(): void;\n}\n```\n\nA base class for objects that need to manage multiple `Disposable`s.\n\nCalling `dispose` on it will automatically dispose all `Disposable`s added via `addDisposable`.\n\nUsually works like:\n\n```ts\nclass MyObject extends AutoDisposable {\n private event1 = this.addDisposable(new EventEmitter<void>());\n\n private event2 = this.addDisposable(new EventEmitter<void>());\n\n public dispose() {\n // If the derived class has its own dispose logic\n // Don't forget to call super's `dispose`\n super.dispose();\n\n // Clean up itself.\n }\n}\n```\n\n## DisposableList\n\n```ts\nclass DisposableList extends AutoDisposable {\n add<T extends Disposable>(disposable: T): T;\n}\n```\n\nAn `AutoDisposable` that can be used alone (i.e. not as a base class).\n\n## EventEmitter/Event\n\n```ts\ninterface EventListener<TEvent, TThis, TArgs extends unknown[], TResult> {\n (this: TThis, e: TEvent, ...args: TArgs): TResult;\n}\n\ninterface RemoveEventListener extends Disposable {\n (): void;\n}\n\ninterface Event<TEvent, TResult = unknown> {\n (listener: EventListener<TEvent, unknown, [], TResult>): RemoveEventListener;\n <TThis, TArgs extends unknown[]>(listener: EventListener<TEvent, TThis, TArgs, TResult>, thisArg: TThis, ...args: TArgs): RemoveEventListener;\n}\n\nclass EventEmitter<TEvent, TResult = unknown> implements Disposable {\n protected readonly listeners: EventListenerInfo<TEvent, TResult>[];\n constructor();\n protected addEventListener(info: EventListenerInfo<TEvent, TResult>): RemoveEventListener;\n event: Event<TEvent, TResult>;\n fire(e: TEvent): void;\n dispose(): void;\n}\n\n```\n\n| | Node.js `EventEmitter` | This `EventEmitter` |\n| ----------------------------------- | ---------------------- | ------------------- |\n| Can emit multiple event types | Yes | No |\n| Only trusted source can emit events | No | Yes |\n| Strongly-typed | No | Yes |\n\nOne `EventEmitter` for one event type. So for classes that have multiple event types, multiple `EventEmitter` can be created and assigned to multiple fields.\n\nUsually classes keep `EventEmitter`s private (using TypeScript's `private` modifier, or ECMAScript private field), only expose the `Event` interface (via `EventEmitter.event`).\n\nEveryone can subscribe to the event using the `Event` interface, but the event can only be emitted from the `EventEmitter` class.\n\n```ts\nconst emitter = new EventEmitter<void>();\nconst subscribe = emitter.event;\nconst unsubscribe = subscribe(() => {});\nemitter.fire();\nunsubscribe();\n```\n\nThe returned `unsubscribe` is both a function and a `Disposable`, so it can be used with `AutoDisposable` or `DisposableList`.\n"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc