New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@xtia/jel

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xtia/jel - npm Package Compare versions

Comparing version
0.7.2
to
0.8.0
+3
-2
index.d.ts
export { DomEntity, ElementClassDescriptor, ElementDescriptor, DOMContent, DomHelper, StyleAccessor, JelEntity } from "./internal/types";
import { $ } from "./internal/element";
import { DomEntity } from "./internal/types";
export { createEntity } from "./internal/util";
export { createEventSource, interval, timeout, SubjectEmitter, toEventEmitter } from "./internal/emitter";
export { createEventSource, interval, timeout, SubjectEmitter, toEventEmitter, type EventEmitter, combineEmitters } from "./internal/emitter";
export { $ };
export declare const $body: import(".").DomEntity<HTMLElement>;
export declare const $body: DomEntity<HTMLElement>;
+2
-2
import { $ } from "./internal/element";
export { createEntity } from "./internal/util";
export { createEventSource, interval, timeout, SubjectEmitter, toEventEmitter } from "./internal/emitter";
export { createEventSource, interval, timeout, SubjectEmitter, toEventEmitter, combineEmitters } from "./internal/emitter";
export { $ };
export const $body = $(document.body);
export const $body = "document" in globalThis ? $(document.body) : undefined;

@@ -124,2 +124,5 @@ import { EmitterLike } from "./types";

or<U>(...emitters: EmitterLike<U>[]): EventEmitter<T | U>;
memo(): Memo<T | undefined>;
memo(initial: T): Memo<T>;
memo<U>(initial: U): Memo<T | U>;
}

@@ -161,6 +164,2 @@ /**

};
export declare function createListenable<T>(sourceListen?: () => UnsubscribeFunc | undefined): {
listen: (fn: (v: T) => void) => UnsubscribeFunc;
emit: (value: T) => void;
};
export declare function interval(ms: number | {

@@ -172,2 +171,9 @@ asMilliseconds: number;

}): EventEmitter<void>;
declare class Memo<T> {
private _value;
private unsubscribeFunc;
get value(): T;
constructor(source: EmitterLike<T>, initial: T);
dispose(): void;
}
export declare class SubjectEmitter<T> extends EventEmitter<T> {

@@ -198,2 +204,11 @@ private emit;

export declare function toEventEmitter<T, E extends string>(source: EventSource<T, E>, eventName: E): EventEmitter<T>;
type Dictionary<T> = Record<string | symbol, T>;
type ExtractEmitterValue<T> = T extends EmitterLike<infer U> ? U : never;
type CombinedRecord<T extends Dictionary<EmitterLike<any>>> = {
readonly [K in keyof T]: ExtractEmitterValue<T[K]>;
};
export declare function combineEmitters<U extends Dictionary<EmitterLike<any>>>(emitters: U): EventEmitter<CombinedRecord<U>>;
export declare function combineEmitters<U extends EmitterLike<any>[]>(emitters: [...U]): EventEmitter<{
[K in keyof U]: ExtractEmitterValue<U[K]>;
}>;
export {};

@@ -317,2 +317,5 @@ import { isReactiveSource } from "./util";

}
memo(initial) {
return new Memo(this, initial);
}
}

@@ -359,3 +362,3 @@ /**

}
export function createListenable(sourceListen) {
function createListenable(sourceListen) {
const handlers = [];

@@ -406,2 +409,18 @@ let onRemoveLast;

}
class Memo {
get value() {
return this._value;
}
constructor(source, initial) {
this._value = initial;
const emitter = toEventEmitter(source);
this.unsubscribeFunc = emitter.listen(v => this._value = v);
}
dispose() {
this.unsubscribeFunc();
this.unsubscribeFunc = () => {
throw new Error("Memo object already disposed");
};
}
}
export class SubjectEmitter extends EventEmitter {

@@ -462,1 +481,37 @@ constructor(initial) {

}
function combineArray(emitters) {
let values = Array.from({ length: emitters.length });
const { emit, listen } = createListenable(() => {
const unsubFuncs = emitters.map((emitter, idx) => {
return emitter.listen(v => {
values[idx] = { value: v };
if (values.every(v => v !== undefined))
emit(values.map(vc => vc.value));
});
});
return () => unsubFuncs.forEach(f => f());
});
return new EventEmitter(listen);
}
function combineRecord(emitters) {
const keys = Object.keys(emitters);
let values = {};
const { emit, listen } = createListenable(() => {
const unsubFuncs = keys.map(key => {
return emitters[key].listen(v => {
values[key] = { value: v };
if (keys.every(k => values[k] !== undefined)) {
const record = Object.fromEntries(Object.entries(values).map(([k, vc]) => [k, vc.value]));
emit(record);
}
});
});
return () => unsubFuncs.forEach(f => f());
});
return new EventEmitter(listen);
}
export function combineEmitters(emitters) {
if (Array.isArray(emitters))
return combineArray(emitters.map(toEventEmitter));
return combineRecord(Object.fromEntries(Object.entries(emitters).map(([k, e]) => [k, toEventEmitter(e)])));
}
{
"name": "@xtia/jel",
"version": "0.7.2",
"version": "0.8.0",
"repository": {

@@ -5,0 +5,0 @@ "url": "https://github.com/tiadrop/jel-ts",