Socket
Socket
Sign inDemoInstall

@plandek-utils/time-utils

Package Overview
Dependencies
1
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.1 to 2.0.0

5

build/main/index.d.ts

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

import { Dayjs } from "dayjs";
/**

@@ -25,3 +24,3 @@ * Executes the given function, freezing the time first to the given `time`, and resetting the function execution (uses `timekeeper`)

*/
export declare function freezeTime<T>(time: Dayjs | Date, fn: () => T): T;
export declare function freezeTime<T>(time: Date, fn: () => T): T;
/**

@@ -36,2 +35,2 @@ * same as `freezeTime()` but it expects an async function. It will await for the function's return and return it before resetting the time

*/
export declare function freezeTimeAwait<T>(time: Dayjs | Date, fn: () => Promise<T>): Promise<T>;
export declare function freezeTimeAwait<T>(time: Date, fn: () => Promise<T>): Promise<T>;

37

build/main/index.js

@@ -6,11 +6,4 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const dayjs_1 = require("dayjs");
const timekeeper_1 = __importDefault(require("timekeeper"));
/**
* @internal
*/
function getDate(time) {
return dayjs_1.isDayjs(time) ? time.toDate() : time;
}
/**
* Executes the given function, freezing the time first to the given `time`, and resetting the function execution (uses `timekeeper`)

@@ -39,6 +32,12 @@ *

function freezeTime(time, fn) {
timekeeper_1.default.freeze(getDate(time));
const result = fn();
timekeeper_1.default.reset();
return result;
timekeeper_1.default.freeze(time);
try {
const result = fn();
timekeeper_1.default.reset();
return result;
}
catch (e) {
timekeeper_1.default.reset();
throw e;
}
}

@@ -56,8 +55,14 @@ exports.freezeTime = freezeTime;

async function freezeTimeAwait(time, fn) {
timekeeper_1.default.freeze(getDate(time));
const result = await fn();
timekeeper_1.default.reset();
return result;
timekeeper_1.default.freeze(time);
try {
const result = await fn();
timekeeper_1.default.reset();
return result;
}
catch (e) {
timekeeper_1.default.reset();
throw e;
}
}
exports.freezeTimeAwait = freezeTimeAwait;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBdUM7QUFDdkMsNERBQW9DO0FBRXBDOztHQUVHO0FBQ0gsU0FBUyxPQUFPLENBQUMsSUFBa0I7SUFDakMsT0FBTyxlQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzlDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILFNBQWdCLFVBQVUsQ0FBSSxJQUFrQixFQUFFLEVBQVc7SUFDM0Qsb0JBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDcEIsb0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBTEQsZ0NBS0M7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxlQUFlLENBQUksSUFBa0IsRUFBRSxFQUFvQjtJQUMvRSxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQzFCLG9CQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUxELDBDQUtDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0REFBb0M7QUFFcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxTQUFnQixVQUFVLENBQUksSUFBVSxFQUFFLEVBQVc7SUFDbkQsb0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEIsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLG9CQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1Ysb0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQVhELGdDQVdDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsZUFBZSxDQUFJLElBQVUsRUFBRSxFQUFvQjtJQUN2RSxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUMxQixvQkFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLG9CQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLENBQUM7S0FDVDtBQUNILENBQUM7QUFYRCwwQ0FXQyJ9

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

import { Dayjs } from "dayjs";
/**

@@ -25,3 +24,3 @@ * Executes the given function, freezing the time first to the given `time`, and resetting the function execution (uses `timekeeper`)

*/
export declare function freezeTime<T>(time: Dayjs | Date, fn: () => T): T;
export declare function freezeTime<T>(time: Date, fn: () => T): T;
/**

@@ -36,2 +35,2 @@ * same as `freezeTime()` but it expects an async function. It will await for the function's return and return it before resetting the time

*/
export declare function freezeTimeAwait<T>(time: Dayjs | Date, fn: () => Promise<T>): Promise<T>;
export declare function freezeTimeAwait<T>(time: Date, fn: () => Promise<T>): Promise<T>;

@@ -1,10 +0,3 @@

import { isDayjs } from "dayjs";
import timekeeper from "timekeeper";
/**
* @internal
*/
function getDate(time) {
return isDayjs(time) ? time.toDate() : time;
}
/**
* Executes the given function, freezing the time first to the given `time`, and resetting the function execution (uses `timekeeper`)

@@ -33,6 +26,12 @@ *

export function freezeTime(time, fn) {
timekeeper.freeze(getDate(time));
const result = fn();
timekeeper.reset();
return result;
timekeeper.freeze(time);
try {
const result = fn();
timekeeper.reset();
return result;
}
catch (e) {
timekeeper.reset();
throw e;
}
}

@@ -49,7 +48,13 @@ /**

export async function freezeTimeAwait(time, fn) {
timekeeper.freeze(getDate(time));
const result = await fn();
timekeeper.reset();
return result;
timekeeper.freeze(time);
try {
const result = await fn();
timekeeper.reset();
return result;
}
catch (e) {
timekeeper.reset();
throw e;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2QyxPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxJQUFrQjtJQUNqQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxJQUFrQixFQUFFLEVBQVc7SUFDM0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNwQixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUksSUFBa0IsRUFBRSxFQUFvQjtJQUMvRSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDMUIsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXBDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxJQUFVLEVBQUUsRUFBVztJQUNuRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNwQixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxDQUFDO0tBQ1Q7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FBSSxJQUFVLEVBQUUsRUFBb0I7SUFDdkUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUMxQixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxDQUFDO0tBQ1Q7QUFDSCxDQUFDIn0=

@@ -5,2 +5,15 @@ # Changelog

## [2.0.0](https://github.com/plandek-utils/ts-time-utils/compare/v1.1.1...v2.0.0) (2020-04-15)
### ⚠ BREAKING CHANGES
* In v1.x dayjs objects were supported. This ended up being problematic because of
issues with dayjs versions. It also added a dependency that is not strictly needed. That's why from
v2.x on dayjs is no longer supported and it is removed as a dependency
### Features
* drop dayjs support + ensure unfreeze time if errors ([807e4b5](https://github.com/plandek-utils/ts-time-utils/commit/807e4b515580c8f2cd9e6799b4eff5bc32413500))
### [1.1.1](https://github.com/plandek-utils/ts-time-utils/compare/v1.1.0...v1.1.1) (2020-04-14)

@@ -7,0 +20,0 @@

{
"name": "@plandek-utils/time-utils",
"version": "1.1.1",
"version": "2.0.0",
"author": "Eduardo Turiño <eturino@plandek.com>",

@@ -54,3 +54,2 @@ "description": "small utils for managing Time, supported by Dayjs. It is intended to be used in tests.",

"dependencies": {
"dayjs": "^1.8.19",
"timekeeper": "^2.2.0"

@@ -74,3 +73,3 @@ },

"ts-jest": "^25.0.0",
"ts-loader": "^6.0.4",
"ts-loader": "^7.0.0",
"ts-node": "^8.3.0",

@@ -77,0 +76,0 @@ "tslint": "^6.1.1",

@@ -12,3 +12,3 @@ # `@plandek-utils/time-utils`

small utils for managing Time, supported by `Dayjs`. It is intended to be used in tests.
small utils for managing Time. It is intended to be used in tests.

@@ -21,4 +21,8 @@ ## Installation

it requires [`timekeeper`](https://www.npmjs.com/package/timekeeper) and [`Dayjs`](https://www.npmjs.com/package/dayjs)
it requires [`timekeeper`](https://www.npmjs.com/package/timekeeper)
### V2 Drops dayjs support
In v1.x dayjs objects were supported. This ended up being problematic because of issues with dayjs versions. It also added a dependency that is not strictly needed. That's why from v2.x on dayjs is no longer supported and it is removed as a dependency.
## Usage

@@ -25,0 +29,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc