Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/rxjs/dist/esm/internal/operators/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import { Subject } from '../Subject';
import { asyncScheduler } from '../scheduler/async';
import { Subscription } from '../Subscription';
import { operate } from '../util/lift';
import { OperatorSubscriber } from './OperatorSubscriber';
import { arrRemove } from '../util/arrRemove';
import { popScheduler } from '../util/args';
export function windowTime(windowTimeSpan, ...otherArgs) {
var _a, _b;
const scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;
const windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;
const maxWindowSize = otherArgs[1] || Infinity;
return operate((source, subscriber) => {
let windowRecords = [];
let restartOnClose = false;
const closeWindow = (record) => {
const { window, subs } = record;
window.complete();
subs.unsubscribe();
arrRemove(windowRecords, record);
restartOnClose && startWindow();
};
const startWindow = () => {
if (windowRecords) {
const subs = new Subscription();
subscriber.add(subs);
const window = new Subject();
const record = {
window,
subs,
seen: 0,
};
windowRecords.push(record);
subscriber.next(window.asObservable());
subs.add(scheduler.schedule(() => closeWindow(record), windowTimeSpan));
}
};
windowCreationInterval !== null && windowCreationInterval >= 0
?
subscriber.add(scheduler.schedule(function () {
startWindow();
!this.closed && subscriber.add(this.schedule(null, windowCreationInterval));
}, windowCreationInterval))
: (restartOnClose = true);
startWindow();
const loop = (cb) => windowRecords.slice().forEach(cb);
const terminate = (cb) => {
loop(({ window }) => cb(window));
cb(subscriber);
subscriber.unsubscribe();
};
source.subscribe(new OperatorSubscriber(subscriber, (value) => {
loop((record) => {
record.window.next(value);
maxWindowSize <= ++record.seen && closeWindow(record);
});
}, () => terminate((consumer) => consumer.complete()), (err) => terminate((consumer) => consumer.error(err))));
return () => {
windowRecords = null;
};
});
}
//# sourceMappingURL=windowTime.js.map |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0063 ]-- |