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

evnty

Package Overview
Dependencies
Maintainers
1
Versions
420
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

evnty - npm Package Compare versions

Comparing version 0.6.22 to 0.7.0

.eslintignore

49

build/index.d.ts
export interface Unsubscribe {
(): void;
}
export interface Listener {
(...args: any[]): void;
export interface Listener<T extends any[]> {
(...args: T): void;
}

@@ -10,34 +10,37 @@ export interface Dispose {

}
export interface Filter {
(...args: any[]): boolean;
export interface Filter<T extends any[]> {
(...args: T): boolean;
}
export interface Mapper<T = any[]> {
(...args: any[]): T;
export interface Mapper<T extends any[], R> {
(...args: T): R;
}
export interface Reducer<T = any[]> {
(value: T, ...args: any[]): T;
export interface Reducer<T extends any[], R> {
(value: R, ...args: T): R;
}
export interface Listeners extends Set<Listener> {
}
export declare type Listeners<T extends any[]> = Set<Listener<T>>;
declare class FunctionExt extends Function {
constructor(func: Function);
}
export declare class Event extends FunctionExt {
static merge(...events: Event[]): Event;
static interval(interval: number): Event;
export interface Event<T extends any[]> {
(...args: T): Promise<void> | void;
}
declare type EventTypes<T extends Event<any>[]> = T extends Event<infer E>[] ? E : never;
export declare class Event<T extends any[]> extends FunctionExt {
static merge<E extends Event<unknown[]>[], ET extends any[] = EventTypes<E>>(...events: E): Event<ET>;
static interval(interval: number): Event<[number]>;
private listeners;
readonly dispose: Dispose;
constructor(dispose?: Dispose);
get size(): Number;
has(listener: Listener): boolean;
off(listener: Listener): void;
on(listener: Listener): Unsubscribe;
once(listener: Listener): Unsubscribe;
get size(): number;
has(listener: Listener<T>): boolean;
off(listener: Listener<T>): void;
on(listener: Listener<T>): Unsubscribe;
once(listener: Listener<T>): Unsubscribe;
clear(): void;
toPromise(): Promise<any[]>;
filter(filter: Filter): Event;
map<T>(mapper: Mapper<T>): Event;
reduce<T>(reducer: Reducer<T>, init: T): Event;
toPromise(): Promise<T>;
filter(filter: Filter<T>): Event<any[]>;
map<R>(mapper: Mapper<T, R>): Event<any[]>;
reduce<R>(reducer: Reducer<T, R>, init: R): Event<any[]>;
}
export default function event(): Event;
export default function createEvent(): Event<any[]>;
export {};

@@ -16,7 +16,7 @@ "use strict";

super();
return Object.setPrototypeOf(func, new.target.prototype);
Object.setPrototypeOf(func, new.target.prototype);
}
}
function eventEmitter(listeners, ...args) {
return Promise.all([...listeners].map(listener => listener(...args)));
return Promise.all([...listeners].map(listener => listener(...args))).then(() => { });
}

@@ -26,3 +26,4 @@ class Event extends FunctionExt {

const listeners = new Set();
super(eventEmitter.bind(null, listeners));
const fn = eventEmitter.bind(null, listeners);
super(fn);
this.listeners = listeners;

@@ -55,3 +56,2 @@ this.dispose = () => {

}
;
on(listener) {

@@ -61,3 +61,2 @@ this.listeners.add(listener);

}
;
once(listener) {

@@ -70,3 +69,2 @@ const oneTimeListener = (...args) => {

}
;
clear() {

@@ -110,6 +108,6 @@ this.listeners.clear();

exports.Event = Event;
function event() {
function createEvent() {
return new Event();
}
exports.default = event;
exports.default = createEvent;
//# sourceMappingURL=index.js.map
{
"name": "evnty",
"version": "0.6.22",
"version": "0.7.0",
"description": "0-Deps, simple, fast, for browser and node js anonymous event library",

@@ -10,3 +10,5 @@ "main": "build/index.js",

"test": "jest",
"test:cov": "COVERAGE=true jest"
"test:cov": "COVERAGE=true jest",
"lint": "eslint .",
"prepare": "husky install"
},

@@ -32,8 +34,17 @@ "repository": {

"devDependencies": {
"@types/jest": "^26.0.20",
"jest": "^26.6.3",
"ts-jest": "^26.5.1",
"ts-node": "^9.1.1",
"@types/jest": "^27.4.1",
"@typescript-eslint/eslint-plugin": "^5.20.0",
"@typescript-eslint/parser": "^5.20.0",
"eslint": "^8.13.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"husky": "^7.0.4",
"jest": "^27.5.1",
"prettier": "^2.6.2",
"pretty-quick": "^3.1.3",
"ts-jest": "^27.1.4",
"ts-node": "^10.7.0",
"typescript": "^4.1.5"
}
}

@@ -79,4 +79,4 @@ # Evnty

## License
License [The MIT License](http://opensource.org/licenses/MIT)
Copyright (c) 2021 Ivan Zakharchanka
License [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
Copyright (c) 2021-present Ivan Zakharchanka

@@ -83,0 +83,0 @@ [npm-url]: https://www.npmjs.com/package/evnty

@@ -1,2 +0,2 @@

import event, { Event } from '../index';
import createEvent, { Event } from '../index';

@@ -9,5 +9,9 @@ describe('Anonymous Event test suite', function () {

it('Should be instantiable', () => {
expect(() => event()).not.toThrow();
expect(() => createEvent()).not.toThrow();
});
it('Should be instantiable', () => {
expect(() => createEvent()).not.toThrow();
});
it('Should call parent constructor', () => {

@@ -14,0 +18,0 @@ const EventOriginal = Object.getPrototypeOf(Event);

@@ -5,4 +5,4 @@ export interface Unsubscribe {

export interface Listener {
(...args: any[]): void;
export interface Listener<T extends any[]> {
(...args: T): void;
}

@@ -14,33 +14,37 @@

export interface Filter {
(...args: any[]): boolean
export interface Filter<T extends any[]> {
(...args: T): boolean
}
export interface Mapper<T = any[]> {
(...args: any[]): T;
export interface Mapper<T extends any[], R> {
(...args: T): R;
}
export interface Reducer<T = any[]> {
(value: T, ...args: any[]): T
export interface Reducer<T extends any[], R> {
(value: R, ...args: T): R
}
export interface Listeners extends Set<Listener> {
export type Listeners<T extends any[]> = Set<Listener<T>>;
}
class FunctionExt extends Function {
constructor(func: Function) {
super();
return Object.setPrototypeOf(func, new.target.prototype);
Object.setPrototypeOf(func, new.target.prototype);
}
}
function eventEmitter(listeners: Listeners, ...args: any[]) {
return Promise.all([...listeners].map(listener => listener(...args)));
function eventEmitter<A extends any[]>(listeners: Listeners<A>, ...args: A) {
return Promise.all([...listeners].map(listener => listener(...args))).then(() => { });
}
export class Event extends FunctionExt {
static merge(...events: Event[]): Event {
const mergedEvent = new Event();
events.forEach(event => event.on((...args) => mergedEvent(...args)));
export interface Event<T extends any[]> {
(...args: T): Promise<void> | void;
}
type EventTypes<T extends Event<any>[]> = T extends Event<infer E>[] ? E : never;
export class Event<T extends any[]> extends FunctionExt {
static merge<E extends Event<unknown[]>[], ET extends any[] = EventTypes<E>>(...events: E) {
const mergedEvent = new Event<ET>();
events.forEach(event => event.on((...args: ET) => mergedEvent(...args)));
return mergedEvent;

@@ -52,3 +56,3 @@ }

let counter = 0;
const intervalEvent = new Event(() => clearInterval(timerId));
const intervalEvent = new Event<[number]>(() => clearInterval(timerId));
timerId = setInterval(() => intervalEvent(counter++), interval);

@@ -58,8 +62,9 @@ return intervalEvent;

private listeners: Listeners;
private listeners: Listeners<T>;
readonly dispose: Dispose;
constructor(dispose?: Dispose) {
const listeners = new Set<Listener>();
super(eventEmitter.bind(null, listeners));
const listeners = new Set<Listener<T>>();
const fn: (...args: T) => Promise<void> = eventEmitter.bind(null, listeners);
super(fn);
this.listeners = listeners;

@@ -72,21 +77,21 @@ this.dispose = () => {

get size(): Number {
get size(): number {
return this.listeners.size;
}
has(listener: Listener): boolean {
has(listener: Listener<T>): boolean {
return this.listeners.has(listener);
}
off(listener: Listener): void {
off(listener: Listener<T>): void {
this.listeners.delete(listener);
};
}
on(listener: Listener): Unsubscribe {
on(listener: Listener<T>): Unsubscribe {
this.listeners.add(listener);
return () => this.off(listener);
};
}
once(listener: Listener): Unsubscribe {
const oneTimeListener = (...args: any[]) => {
once(listener: Listener<T>): Unsubscribe {
const oneTimeListener = (...args: T) => {
this.off(oneTimeListener);

@@ -96,3 +101,3 @@ listener(...args);

return this.on(oneTimeListener);
};
}

@@ -103,7 +108,7 @@ clear() {

toPromise(): Promise<any[]> {
toPromise(): Promise<T> {
return new Promise(resolve => this.once((...args) => resolve(args)));
}
filter(filter: Filter) {
filter(filter: Filter<T>) {
const dispose = this.on(async (...args) => {

@@ -118,3 +123,3 @@ if (filteredEvent.size > 0 && await filter(...args)) {

map<T>(mapper: Mapper<T>) {
map<R>(mapper: Mapper<T, R>) {
const dispose = this.on(async (...args) => {

@@ -130,4 +135,4 @@ if (mappedEvent.size > 0) {

reduce<T>(reducer: Reducer<T>, init: T) {
let value: T = init;
reduce<R>(reducer: Reducer<T, R>, init: R) {
let value = init;
const dispose = this.on(async (...args) => {

@@ -144,4 +149,4 @@ if (reducedEvent.size > 0) {

export default function event() {
export default function createEvent() {
return new Event();
}

@@ -8,2 +8,3 @@ {

"preserveConstEnums": true,
"experimentalDecorators": true,
"sourceMap": true,

@@ -10,0 +11,0 @@ "declaration": true,

Sorry, the diff of this file is not supported yet

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