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

observevent

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

observevent - npm Package Compare versions

Comparing version 0.2.0 to 1.0.0

2

lib/derives/combine.d.ts

@@ -23,2 +23,2 @@ import type { Observer } from '../models';

*/
export declare function combine<T extends Tuple<Observer<unknown, boolean>>, U extends Observees<T>, V extends boolean = false>(observerOrSubjects: T, options?: Options<V>): V extends true ? Observer<U, true> : Observer<U, false>;
export declare function combine<T extends Tuple<Observer<unknown>>, U extends Observees<T>>(observerOrSubjects: T, options?: Options): Observer<U>;
import type { Observer } from '../models';
import type { Observees, Options, Tuple, Value } from '../types';
import type { Observees, Options, Tuple } from '../types';
/**

@@ -22,2 +22,2 @@ * Combine and map

*/
export declare function combineMap<T extends Tuple<Observer<unknown, boolean>>, U extends Observees<T>, V, W extends boolean = false>(observerOrSubjects: T, mapper: (values: Value<U, W>) => V, options?: Options<W>): Observer<V, W>;
export declare function combineMap<T extends Tuple<Observer<unknown>>, U extends Observees<T>, V>(observerOrSubjects: T, mapper: (newValue: U, oldValue: U) => V, options?: Options): Observer<V>;
import type { Observer } from '../models';
import type { Value } from '../types';
/**

@@ -19,2 +18,2 @@ * Do not subscribe if condition is met.

*/
export declare function exclude<T, U extends boolean = false>(observerOrSubject: Observer<T, U>, selector: (value: Value<T, U>) => boolean): Observer<T, U>;
export declare function exclude<T>(observerOrSubject: Observer<T>, selector: (newValue: T, oldValue: T) => boolean): Observer<T>;

@@ -6,2 +6,1 @@ export * from './combine';

export * from './map';
export * from './diff';
import type { Observer } from '../models';
import type { Value } from '../types';
/**

@@ -23,2 +22,2 @@ * Map subscribed value to something

*/
export declare function map<T, U extends boolean, V>(observerOrSubject: Observer<T, U>, mapper: (value: Value<T, U>) => V): Observer<V, U>;
export declare function map<T, V>(observerOrSubject: Observer<T>, mapper: (newValue: T, oldValue: T) => V): Observer<V>;
import { Observer } from '../models';
import { Value } from '../types';
/**

@@ -20,2 +19,2 @@ * Subscribe if condition is met.

*/
export declare function select<T, U extends boolean = false>(observerOrSubject: Observer<T, U>, selector: (value: Value<T, U>) => boolean): Observer<T, U>;
export declare function select<T>(observerOrSubject: Observer<T>, selector: (newValue: T, oldValue: T) => boolean): Observer<T>;

@@ -5,2 +5,2 @@ export * from './derives';

export * from './models';
export type { Options, Unsubscriber, Subscriber, Value, ValueOrUpdator, } from './types';
export type { Options, Unsubscriber, Subscriber, ValueOrUpdator } from './types';

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

function n(n,r){var u,t,e,i;void 0===r&&(r={});var f=function(n){return new Proxy(n,{set:function(n,r,u){return function(n){l.forEach(function(r){return r(n)})}(o?[u,n[r]]:u),s&&c.info({before:n[r],after:u}),n[r]=u,!0}})}({value:n}),o=null!=(u=r.diff)&&u,c=null!=(t=r.logger)?t:console,s=null!=(e=r.logging)&&e,b=null==(i=r.immediate)||i,l=[];return{get subscribed(){return l.length>0},get diff(){var n;return null!=(n=r.diff)&&n},notify:function(n){var r="function"==typeof n?n(f.value):n;f.value=r},subscribe:function(n){return b&&n(o?[f.value,void 0]:f.value),l.push(n),function(){l=l.filter(function(r){return r!==n})}}}}function r(r,u){void 0===u&&(u={});var t=[];t.length=r.length;var e=n(t,u),i=[];return r.forEach(function(n,r){i.push(n.subscribe(function(n){t[r]=n,e.notify([].concat(t))}))}),{subscribe:function(n){return e.subscribe(n),function(){i.forEach(function(n){return n()})}},get diff(){var n;return null!=(n=u.diff)&&n}}}function u(n,r){return{subscribe:function(u){return n.subscribe(function(n){return u(r(n))})},get diff(){return n.diff}}}exports.combine=r,exports.combineMap=function(n,t,e){return void 0===e&&(e={}),u(r(n,e),t)},exports.diff=function(n){var r;return{subscribe:function(u){return n.subscribe(function(n){u([n,r]),r=n})},get diff(){return n.diff}}},exports.exclude=function(n,r){var u;return{subscribe:function(t){return n.subscribe(function(e){r(e)||(t(n.diff?[e[0],u]:e),u=e[0])})},get diff(){return n.diff}}},exports.map=u,exports.observify=function(r,u,t){void 0===t&&(t={});var e=n(r,t),i=u(e.notify);return{subscribe:function(n){var r=e.subscribe(n);return function(){r(),e.subscribed||"function"!=typeof i||i()}},get diff(){var n;return null!=(n=t.diff)&&n}}},exports.select=function(n,r){var u;return{subscribe:function(t){return n.subscribe(function(e){r(e)&&(t(n.diff?[e[0],u]:e),u=e[0])})},get diff(){return n.diff}}},exports.subjectify=n;
function n(n,r){var u,t,e;void 0===r&&(r={});var i=function(n){return new Proxy(n,{set:function(n,r,u){var t,e;return t=u,e=n[r],s.forEach(function(n){return n(t,e)}),c&&o.info({before:n[r],after:u}),n[r]=u,!0}})}({value:n}),o=null!=(u=r.logger)?u:console,c=null!=(t=r.logging)&&t,f=null==(e=r.immediate)||e,s=[];return{get subscribed(){return s.length>0},notify:function(n){var r="function"==typeof n?n(i.value):n;i.value=r},subscribe:function(n){return f&&n(i.value,void 0),s.push(n),function(){s=s.filter(function(r){return r!==n})}}}}function r(r,u){void 0===u&&(u={});var t=[],e=n(t,u),i=[];return r.forEach(function(n,r){i.push(n.subscribe(function(n){t[r]=n,e.notify([].concat(t))}))}),{subscribe:function(n){return e.subscribe(n),function(){i.forEach(function(n){return n()})}}}}function u(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,e){var i=r(n,e);t(i,u),u=i})}}}exports.combine=r,exports.combineMap=function(n,t,e){return void 0===e&&(e={}),u(r(n,e),t)},exports.exclude=function(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,e){r(n,e)||(t(n,u),u=n)})}}},exports.map=u,exports.observify=function(r,u,t){void 0===t&&(t={});var e=n(r,t),i=u(e.notify);return{subscribe:function(n){var r=e.subscribe(n);return function(){r(),e.subscribed||"function"!=typeof i||i()}}}},exports.select=function(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,e){r(n,e)&&(t(n,u),u=n)})}}},exports.subjectify=n;
//# sourceMappingURL=index.js.map

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

function n(n,r){var u,t,f,i;void 0===r&&(r={});var e=function(n){return new Proxy(n,{set:function(n,r,u){return function(n){l.forEach(function(r){return r(n)})}(c?[u,n[r]]:u),s&&o.info({before:n[r],after:u}),n[r]=u,!0}})}({value:n}),c=null!=(u=r.diff)&&u,o=null!=(t=r.logger)?t:console,s=null!=(f=r.logging)&&f,b=null==(i=r.immediate)||i,l=[];return{get subscribed(){return l.length>0},get diff(){var n;return null!=(n=r.diff)&&n},notify:function(n){var r="function"==typeof n?n(e.value):n;e.value=r},subscribe:function(n){return b&&n(c?[e.value,void 0]:e.value),l.push(n),function(){l=l.filter(function(r){return r!==n})}}}}function r(r,u){void 0===u&&(u={});var t=[];t.length=r.length;var f=n(t,u),i=[];return r.forEach(function(n,r){i.push(n.subscribe(function(n){t[r]=n,f.notify([].concat(t))}))}),{subscribe:function(n){return f.subscribe(n),function(){i.forEach(function(n){return n()})}},get diff(){var n;return null!=(n=u.diff)&&n}}}function u(n,r){return{subscribe:function(u){return n.subscribe(function(n){return u(r(n))})},get diff(){return n.diff}}}function t(n,t,f){return void 0===f&&(f={}),u(r(n,f),t)}function f(n,r){var u;return{subscribe:function(t){return n.subscribe(function(f){r(f)&&(t(n.diff?[f[0],u]:f),u=f[0])})},get diff(){return n.diff}}}function i(n,r){var u;return{subscribe:function(t){return n.subscribe(function(f){r(f)||(t(n.diff?[f[0],u]:f),u=f[0])})},get diff(){return n.diff}}}function e(n){var r;return{subscribe:function(u){return n.subscribe(function(n){u([n,r]),r=n})},get diff(){return n.diff}}}function c(r,u,t){void 0===t&&(t={});var f=n(r,t),i=u(f.notify);return{subscribe:function(n){var r=f.subscribe(n);return function(){r(),f.subscribed||"function"!=typeof i||i()}},get diff(){var n;return null!=(n=t.diff)&&n}}}export{r as combine,t as combineMap,e as diff,i as exclude,u as map,c as observify,f as select,n as subjectify};
function n(n,r){var u,t,i;void 0===r&&(r={});var e=function(n){return new Proxy(n,{set:function(n,r,u){var t,i;return t=u,i=n[r],s.forEach(function(n){return n(t,i)}),c&&o.info({before:n[r],after:u}),n[r]=u,!0}})}({value:n}),o=null!=(u=r.logger)?u:console,c=null!=(t=r.logging)&&t,f=null==(i=r.immediate)||i,s=[];return{get subscribed(){return s.length>0},notify:function(n){var r="function"==typeof n?n(e.value):n;e.value=r},subscribe:function(n){return f&&n(e.value,void 0),s.push(n),function(){s=s.filter(function(r){return r!==n})}}}}function r(r,u){void 0===u&&(u={});var t=[],i=n(t,u),e=[];return r.forEach(function(n,r){e.push(n.subscribe(function(n){t[r]=n,i.notify([].concat(t))}))}),{subscribe:function(n){return i.subscribe(n),function(){e.forEach(function(n){return n()})}}}}function u(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,i){var e=r(n,i);t(e,u),u=e})}}}function t(n,t,i){return void 0===i&&(i={}),u(r(n,i),t)}function i(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,i){r(n,i)&&(t(n,u),u=n)})}}}function e(n,r){var u;return{subscribe:function(t){return n.subscribe(function(n,i){r(n,i)||(t(n,u),u=n)})}}}function o(r,u,t){void 0===t&&(t={});var i=n(r,t),e=u(i.notify);return{subscribe:function(n){var r=i.subscribe(n);return function(){r(),i.subscribed||"function"!=typeof e||e()}}}}export{r as combine,t as combineMap,e as exclude,u as map,o as observify,i as select,n as subjectify};
//# sourceMappingURL=index.m.js.map
import type { Subscriber, Unsubscriber, ValueOrUpdator } from '../types';
export interface Observer<T, U extends boolean> {
subscribe: (subscriber: Subscriber<T, U>) => Unsubscriber;
readonly diff: boolean;
export interface Observer<T> {
subscribe: (subscriber: Subscriber<T>) => Unsubscriber;
}
export interface Subject<T, U extends boolean> extends Observer<T, U> {
export interface Subject<T> extends Observer<T> {
readonly subscribed: boolean;

@@ -8,0 +7,0 @@ notify: (valueOrUpdator: ValueOrUpdator<T>) => void;

@@ -26,2 +26,2 @@ import type { Observer } from './models';

*/
export declare function observify<T, U extends boolean = false>(init: T, trigger: Trigger<T>, options?: Options<U>): U extends true ? Observer<T, true> : Observer<T, false>;
export declare function observify<T>(init: T, trigger: Trigger<T>, options?: Options): Observer<T>;

@@ -20,2 +20,2 @@ import type { Subject } from './models';

*/
export declare function subjectify<T, U extends boolean = false>(init: T, options?: Options<U>): U extends true ? Subject<T, true> : Subject<T, false>;
export declare function subjectify<T>(init: T, options?: Options): Subject<T>;
import { Logger, Observer } from '../models';
export declare type Value<T, U extends boolean> = U extends true ? [newer: T, older: T] : T;
export declare type ValueOrUpdator<T> = T | ((value: T) => T);
export declare type Subscriber<T, U extends boolean> = (value: Value<T, U>) => void;
export declare type Subscriber<T> = (newValue: T, oldValue: T) => void;
export declare type Unsubscriber = () => void;
export declare type Tuple<T> = [T, ...Array<T>];
export declare type ObserveeOrNot<T> = T extends Observer<infer L, infer R> ? R extends true ? [newer: L, older: L] : L : never;
export declare type ObserveeOrNot<T> = T extends Observer<infer L> ? L : never;
export declare type Observees<T extends readonly unknown[]> = {
[K in keyof T]: ObserveeOrNot<T[K]>;
};
export declare type Options<T extends boolean = false> = {
export declare type Options = {
/**
* Subscribe value to be tuple like `[newer, older]` if true
* @default false
*/
diff?: T;
/**
* @type {Logger}

@@ -19,0 +13,0 @@ */

{
"name": "observevent",
"version": "0.2.0",
"version": "1.0.0",
"description": "observe event",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/koheing/observevent",

@@ -16,3 +16,5 @@ # Observent

const food = subjectify('')
const unsubscribe = food.subscribe(console.log)
const unsubscribe = food.subscribe((newValue, oldValue) => console.log(newValue, oldValue))
// or
// food.subscribe((newValue) => console.log(newValue))

@@ -26,5 +28,5 @@ food.notify('apple')

// ----------
// ''
// 'apple'
// 'apple pie'
// '', undefined
// 'apple, '
// 'apple pie, apple'
```

@@ -60,4 +62,4 @@

// ----------
// '[food] ["", undefined]'
// '[food] ["apple", ""]'
// '[food] "", undefined'
// '[food] "", apple'
```

@@ -68,23 +70,2 @@

### `diff`
Setting `diff` to `true` will notify you of the values ​​before and after the change.
Default value is `false`.
```ts
import { subjectify } from 'observevent'
const food = subjectify('', { diff: true })
const unsubscribe = food.subscribe((it) => console.log(it))
food.notify('apple')
food.notify((it) => it + ' pie')
unsubscribe()
// Output
// ----------
// ['', undefined]
// ['apple', '']
// ['apple pie', 'apple']
```
### `logging`

@@ -142,3 +123,3 @@ Setting `logging` to `true` will output changelog.

const food = subjectify('', { immediate: false })
const unsubscribe = food.subscribe(console.log)
const unsubscribe = food.subscribe((it) => console.log(it))

@@ -162,2 +143,1 @@ food.notify('apple')

- [combineMap](https://github.com/koheing/observevent/blob/main/src/derives/combinemap.ts)
- [diff](https://github.com/koheing/observevent/blob/main/src/derives/diff.ts)

Sorry, the diff of this file is not supported yet

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