fix(core): update

This commit is contained in:
Philipp Kunz 2023-11-13 14:40:01 +01:00
parent 8fc0438c75
commit ff0d745170
4 changed files with 41 additions and 2 deletions

View File

@ -1846,7 +1846,7 @@ packages:
'@web/parse5-utils': 2.1.0
chokidar: 3.5.3
clone: 2.1.2
es-module-lexer: 1.3.1
es-module-lexer: 1.4.1
get-stream: 6.0.1
is-stream: 2.0.1
isbinaryfile: 5.0.0
@ -2891,6 +2891,10 @@ packages:
resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==}
dev: true
/es-module-lexer@1.4.1:
resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
dev: true
/es-set-tostringtag@2.0.2:
resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
engines: {node: '>= 0.4'}

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/lik',
version: '6.0.6',
version: '6.0.7',
description: 'light little helpers for node'
}

34
ts/backpressuredarray.ts Normal file
View File

@ -0,0 +1,34 @@
import * as plugins from './lik.plugins.js';
export class BackpressuredArray<T> {
private data: T[];
private highWaterMark: number;
public hasSpace: plugins.smartrx.rxjs.Subject<void>;
constructor(highWaterMark: number = 16) {
this.data = [];
this.highWaterMark = highWaterMark;
this.hasSpace = new plugins.smartrx.rxjs.Subject<void>();
}
push(item: T): boolean {
this.data.push(item);
const spaceAvailable = this.checkSpaceAvailable();
if (spaceAvailable) {
this.hasSpace.next();
}
return spaceAvailable
}
shift(): T | undefined {
const item = this.data.shift();
if (this.checkSpaceAvailable()) {
this.hasSpace.next();
}
return item;
}
checkSpaceAvailable(): boolean {
return this.data.length < this.highWaterMark;
}
}

View File

@ -1,4 +1,5 @@
export * from './lik.asyncexecutionstack.js';
export * from './backpressuredarray.js';
export * from './lik.fastmap.js';
export * from './lik.interestmap.js';
export * from './lik.interestmap.interest.js';