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

@cycle/time

Package Overview
Dependencies
Maintainers
2
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cycle/time - npm Package Compare versions

Comparing version 0.3.1 to 0.4.0

dist/record.d.ts

2

dist/assert-equal.d.ts
import xs from 'xstream';
declare function makeAssertEqual(schedule: any, currentTime: any, interval: any, addAssert: any): (actual: xs<any>, expected: xs<any>) => void;
declare function makeAssertEqual(timeSource: any, schedule: any, currentTime: any, interval: any, addAssert: any): (actual: xs<any>, expected: xs<any>) => void;
export { makeAssertEqual };
"use strict";
var xstream_1 = require("xstream");
var deepEqual = require("deep-equal");

@@ -55,6 +56,7 @@ function checkEqual(completeStore, assert, interval) {

}
function makeAssertEqual(schedule, currentTime, interval, addAssert) {
function makeAssertEqual(timeSource, schedule, currentTime, interval, addAssert) {
return function assertEqual(actual, expected) {
var calledComplete = 0;
var completeStore = {};
var Time = timeSource();
var assert = {

@@ -69,27 +71,14 @@ state: 'pending',

addAssert(assert);
function complete(label, diagram) {
calledComplete++;
if (calledComplete === 2) {
var actualLog$ = actual.compose(Time.record);
var expectedLog$ = expected.compose(Time.record);
xstream_1.default.combine(actualLog$, expectedLog$).addListener({
next: function (_a) {
var aLog = _a[0], bLog = _a[1];
completeStore['actual'] = aLog;
completeStore['expected'] = bLog;
},
complete: function () {
checkEqual(completeStore, assert, interval);
}
}
var completeListener = function (label) {
var entries = [];
completeStore[label] = entries;
return {
next: function (ev) {
entries.push({ type: 'next', value: ev, time: currentTime() });
},
complete: function () {
entries.push({ type: 'complete', time: currentTime() });
complete(label, entries);
},
error: function (error) {
entries.push({ type: 'error', time: currentTime(), error: error });
complete(label, entries);
}
};
};
actual.addListener(completeListener('actual'));
expected.addListener(completeListener('expected'));
});
};

@@ -96,0 +85,0 @@ }

@@ -6,2 +6,3 @@ import xs from 'xstream';

diagram: (diagramString: string, values?: {}) => xs<any>;
record: (stream: xs<any>) => xs<any>;
assertEqual: (actual: xs<any>, expected: xs<any>) => void;

@@ -18,4 +19,5 @@ delay: (delayTime: number) => <T>(stream: xs<T>) => xs<T>;

throttleAnimation: <T>(stream: xs<T>) => xs<T>;
run(doneCallback?: (err: any) => void): void;
run(doneCallback?: (err: any) => void, timeToRunTo?: any): void;
_scheduler: {
_schedule: () => any[];
next(stream: any, time: any, value: any, f?: () => void): any;

@@ -25,3 +27,4 @@ error(stream: any, time: any, error: any): any;

};
_time: () => number;
};
export { mockTimeSource };
"use strict";
var combineErrors = require("combine-errors");
require('setimmediate');
var scheduler_1 = require("./scheduler");

@@ -12,2 +11,4 @@ var delay_1 = require("./delay");

var throttle_animation_1 = require("./throttle-animation");
var record_1 = require("./record");
var run_virtually_1 = require("./run-virtually");
function raiseError(err) {

@@ -46,30 +47,9 @@ if (err) {

}
function processEvent() {
var eventToProcess = scheduler.shiftNextEntry();
if (!eventToProcess) {
finish(asserts, done);
return;
}
if (eventToProcess.cancelled) {
setImmediate(processEvent);
return;
}
time = eventToProcess.time;
if (eventToProcess.f) {
eventToProcess.f(eventToProcess, time);
}
if (eventToProcess.type === 'next') {
eventToProcess.stream.shamefullySendNext(eventToProcess.value);
}
if (eventToProcess.type === 'error') {
eventToProcess.stream.shamefullySendError(eventToProcess.error);
}
if (eventToProcess.type === 'complete') {
eventToProcess.stream.shamefullySendComplete();
}
setImmediate(processEvent);
function setTime(newTime) {
time = newTime;
}
var timeSource = {
diagram: diagram_1.makeDiagram(scheduler.add, currentTime, interval),
assertEqual: assert_equal_1.makeAssertEqual(scheduler.add, currentTime, interval, addAssert),
record: record_1.makeRecord(scheduler.add, currentTime, interval),
assertEqual: assert_equal_1.makeAssertEqual(function () { return timeSource; }, scheduler.add, currentTime, interval, addAssert),
delay: delay_1.makeDelay(scheduler.add, currentTime),

@@ -81,8 +61,10 @@ debounce: debounce_1.makeDebounce(scheduler.add, currentTime),

throttleAnimation: throttle_animation_1.makeThrottleAnimation(function () { return timeSource; }, scheduler.add, currentTime),
run: function (doneCallback) {
run: function (doneCallback, timeToRunTo) {
if (doneCallback === void 0) { doneCallback = raiseError; }
if (timeToRunTo === void 0) { timeToRunTo = null; }
done = doneCallback;
setImmediate(processEvent);
run_virtually_1.runVirtually(scheduler, function () { return finish(asserts, done); }, currentTime, setTime, timeToRunTo);
},
_scheduler: scheduler.add
_scheduler: scheduler.add,
_time: currentTime
};

@@ -89,0 +71,0 @@ return timeSource;

@@ -6,3 +6,3 @@ "use strict";

var stopped = false;
function scheduleNextEvent(entry, time) {
function scheduleNextEvent(entry, time, schedule, currentTime) {
if (stopped) {

@@ -9,0 +9,0 @@ return;

@@ -6,2 +6,3 @@ declare function makeScheduler(): {

add: {
_schedule: () => any[];
next(stream: any, time: any, value: any, f?: () => void): any;

@@ -8,0 +9,0 @@ error(stream: any, time: any, error: any): any;

@@ -5,2 +5,5 @@ "use strict";

var schedule = [];
function getSchedule() {
return schedule;
}
var addScheduleEntry = makeAccumulator({

@@ -26,2 +29,3 @@ key: function (entry) { return entry.time; },

add: {
_schedule: getSchedule,
next: function (stream, time, value, f) {

@@ -28,0 +32,0 @@ if (f === void 0) { f = noop; }

@@ -13,3 +13,13 @@ import xs from 'xstream';

throttleAnimation: <T>(stream: xs<T>) => xs<T>;
_time: () => number;
_scheduler: {
_schedule: () => any[];
next(stream: any, time: any, value: any, f?: () => void): any;
error(stream: any, time: any, error: any): any;
completion(stream: any, time: any): any;
};
_pause: () => boolean;
_resume: (time: any) => void;
_runVirtually: (done: any, timeToRunTo: any) => void;
};
export { timeDriver };

@@ -10,2 +10,3 @@ "use strict";

var throttle_animation_1 = require("./throttle-animation");
var run_virtually_1 = require("./run-virtually");
function popAll(array) {

@@ -18,14 +19,16 @@ var poppedItems = [];

}
function timeDriver(_, streamAdapter) {
var time = 0;
var frameCallbacks = [];
var scheduler = scheduler_1.makeScheduler();
function currentTime() {
return time;
}
function addFrameCallback(callback) {
frameCallbacks.push(callback);
}
function runRealtime(scheduler, frameCallbacks, currentTime, setTime) {
var paused = false;
var pause = function () { return paused = true; };
var resume = function (time) {
setTime(time);
paused = false;
};
function processEvent(eventTime) {
time = eventTime;
if (paused) {
requestAnimationFrame(processEvent);
return;
}
var time = eventTime;
setTime(time);
var currentCallbacks = popAll(frameCallbacks);

@@ -42,3 +45,3 @@ currentCallbacks.forEach(function (callback) { return callback(time); });

if (eventToProcess.f) {
eventToProcess.f(eventToProcess, time);
eventToProcess.f(eventToProcess, time, scheduler.add, currentTime);
}

@@ -56,4 +59,20 @@ if (eventToProcess.type === 'next') {

}
requestAnimationFrame(processEvent);
return { pause: pause, resume: resume };
}
function timeDriver(_, streamAdapter) {
var time = 0;
var frameCallbacks = [];
var scheduler = scheduler_1.makeScheduler();
function currentTime() {
return time;
}
function setTime(newTime) {
time = newTime;
}
function addFrameCallback(callback) {
frameCallbacks.push(callback);
}
// TODO - cancel requestAnimationFrame on dispose
requestAnimationFrame(processEvent);
var _a = runRealtime(scheduler, frameCallbacks, currentTime, setTime), pause = _a.pause, resume = _a.resume;
var timeSource = {

@@ -65,3 +84,11 @@ animationFrames: animation_frames_1.makeAnimationFrames(addFrameCallback, currentTime),

throttle: throttle_1.makeThrottle(scheduler.add, currentTime),
throttleAnimation: throttle_animation_1.makeThrottleAnimation(function () { return timeSource; }, scheduler.add, currentTime)
throttleAnimation: throttle_animation_1.makeThrottleAnimation(function () { return timeSource; }, scheduler.add, currentTime),
_time: currentTime,
_scheduler: scheduler.add,
_pause: pause,
_resume: resume,
_runVirtually: function (done, timeToRunTo) {
// TODO - frameCallbacks?
run_virtually_1.runVirtually(scheduler, done, currentTime, setTime, timeToRunTo);
}
};

@@ -68,0 +95,0 @@ return timeSource;

{
"name": "@cycle/time",
"version": "0.3.1",
"version": "0.4.0",
"description": "A time driver designed to enable awesome testing and dev tooling",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

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