set-harmonic-interval
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -0,1 +1,9 @@ | ||
## [1.0.1](https://github.com/streamich/set-harmonic-interval/compare/v1.0.0...v1.0.1) (2019-10-23) | ||
### Bug Fixes | ||
* husky hooks now should be defined in separate package.json field; ([6a444f7](https://github.com/streamich/set-harmonic-interval/commit/6a444f7)) | ||
* prettier expects doubleqotes on file template ([d449a86](https://github.com/streamich/set-harmonic-interval/commit/d449a86)) | ||
# 1.0.0 (2019-08-25) | ||
@@ -2,0 +10,0 @@ |
@@ -0,0 +0,0 @@ export declare type Listener = () => void; |
@@ -1,7 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
let counter = 0; | ||
const buckets = {}; | ||
exports.setHarmonicInterval = (fn, ms) => { | ||
const id = counter++; | ||
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
var counter = 0; | ||
var buckets = {}; | ||
var setHarmonicInterval = function (fn, ms) { | ||
var _a; | ||
var id = counter++; | ||
if (buckets[ms]) { | ||
@@ -11,7 +14,8 @@ buckets[ms].listeners[id] = fn; | ||
else { | ||
const timer = setInterval(() => { | ||
const { listeners } = buckets[ms]; | ||
let didThrow = false; | ||
let lastError; | ||
for (const listener of Object.values(listeners)) { | ||
var timer = setInterval(function () { | ||
var listeners = buckets[ms].listeners; | ||
var didThrow = false; | ||
var lastError; | ||
for (var _i = 0, _a = Object.values(listeners); _i < _a.length; _i++) { | ||
var listener = _a[_i]; | ||
try { | ||
@@ -29,7 +33,7 @@ listener(); | ||
buckets[ms] = { | ||
ms, | ||
timer, | ||
listeners: { | ||
[id]: fn, | ||
}, | ||
ms: ms, | ||
timer: timer, | ||
listeners: (_a = {}, | ||
_a[id] = fn, | ||
_a), | ||
}; | ||
@@ -39,9 +43,10 @@ } | ||
bucket: buckets[ms], | ||
id, | ||
id: id, | ||
}; | ||
}; | ||
exports.clearHarmonicInterval = ({ bucket, id }) => { | ||
var clearHarmonicInterval = function (_a) { | ||
var bucket = _a.bucket, id = _a.id; | ||
delete bucket.listeners[id]; | ||
let hasListeners = false; | ||
for (const listener in bucket.listeners) { | ||
var hasListeners = false; | ||
for (var listener in bucket.listeners) { | ||
hasListeners = true; | ||
@@ -55,1 +60,4 @@ break; | ||
}; | ||
exports.clearHarmonicInterval = clearHarmonicInterval; | ||
exports.setHarmonicInterval = setHarmonicInterval; |
{ | ||
"name": "set-harmonic-interval", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "", | ||
@@ -16,2 +16,6 @@ "author": { | ||
"main": "lib/index.js", | ||
"module": "lib/index.esm.js", | ||
"esnext": "lib/index.next.esm.js", | ||
"types": "lib/index.d.ts", | ||
"typings": "lib/index.d.ts", | ||
"files": [ | ||
@@ -21,13 +25,19 @@ "lib/" | ||
"scripts": { | ||
"prettier": "prettier --ignore-path .gitignore --write 'src/**/*.{ts,tsx,js,jsx}'", | ||
"prettier:diff": "prettier -l 'src/**/*.{ts,tsx,js,jsx}'", | ||
"prepush": "yarn prettier:diff", | ||
"precommit": "pretty-quick --staged && yarn tslint", | ||
"prettier": "prettier --ignore-path .gitignore --write \"src/**/*.{ts,tsx,js,jsx}\"", | ||
"prettier:diff": "prettier -l \"src/**/*.{ts,tsx,js,jsx}\"", | ||
"tslint": "tslint 'src/**/*.{js,jsx,ts,tsx}' -t verbose", | ||
"commitmsg": "commitlint -E GIT_PARAMS", | ||
"clean": "rimraf lib", | ||
"build": "tsc", | ||
"build": "rimraf ./dist && rollup --config", | ||
"test": "jest --no-cache --config='jest.config.js'", | ||
"release": "semantic-release" | ||
"release": "semantic-release", | ||
"demo1": "yarn build && node demo1.js", | ||
"demo2": "yarn build && node demo2.js" | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS", | ||
"pre-commit": "pretty-quick --staged && yarn tslint", | ||
"pre-push": "yarn prettier:diff" | ||
} | ||
}, | ||
"keywords": [], | ||
@@ -47,2 +57,4 @@ "dependencies": {}, | ||
"rimraf": "^3.0.0", | ||
"rollup": "^1.20.3", | ||
"rollup-plugin-typescript2": "^0.24.0", | ||
"semantic-release": "^15.13.24", | ||
@@ -55,4 +67,2 @@ "ts-jest": "^24.0.2", | ||
}, | ||
"types": "lib/index.d.ts", | ||
"typings": "lib/index.d.ts", | ||
"release": { | ||
@@ -59,0 +69,0 @@ "verifyConditions": [ |
# set-harmonic-interval | ||
New project... | ||
Works similar to `setInterval`, but calls all callbacks scheduled using `setHarmonicInterval` all at once, which have same | ||
delay in milliseconds. | ||
## Install | ||
``` | ||
npm install set-harmonic-interval | ||
``` | ||
## Usage | ||
In below example `1` and `2` will always be printed together every second. | ||
```js | ||
const { setHarmonicInterval, clearHarmonicInterval } = require('set-harmonic-interval'); | ||
setHarmonicInterval(() => console.log(1), 1000); | ||
setTimeout(() => { | ||
setHarmonicInterval(() => console.log(2), 1000); | ||
}, 500); | ||
``` | ||
## License | ||
[Unlicense](LICENSE) — public domain. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9440
8
172
29
19