Socket
Socket
Sign inDemoInstall

bella-scheduler

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bella-scheduler - npm Package Compare versions

Comparing version 1.1.2 to 1.1.3

dist/scheduler.js

21

dist/scheduler.min.js

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

/**
* bella-scheduler
* v1.1.2
* built: Tue, 04 Oct 2016 01:52:10 GMT
* git: https://github.com/ndaidong/bella-scheduler
* author: @ndaidong
* License: MIT
**/
;var $jscomp={scope:{},checkStringArgs:function(b,g,e){if(null==b)throw new TypeError("The 'this' value for String.prototype."+e+" must not be null or undefined");if(g instanceof RegExp)throw new TypeError("First argument to String.prototype."+e+" must not be a regular expression");return b+""}};
$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,g,e){if(e.get||e.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[g]=e.value)};$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(b,g,e,k){if(g){e=$jscomp.global;b=b.split(".");for(k=0;k<b.length-1;k++){var q=b[k];q in e||(e[q]={});e=e[q]}b=b[b.length-1];k=e[b];g=g(k);g!=k&&null!=g&&$jscomp.defineProperty(e,b,{configurable:!0,writable:!0,value:g})}};
$jscomp.polyfill("String.prototype.repeat",function(b){return b?b:function(b){var e=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279<b)throw new RangeError("Invalid count value");b|=0;for(var g="";b;)if(b&1&&(g+=e),b>>>=1)e+=e;return g}},"es6-impl","es3");
(function(b,g){if("undefined"!==typeof module&&module.exports)module.exports=g();else{var e=window||{};e.define&&e.define.amd?e.define([],g):e.exports?e.exports=g():e[b]=g()}})("scheduler",function(){var b=function(a,f){if(!a||!f)return!1;var c=!0;void 0===a[f]&&(c=f in a);return c},g=function(){this.size=0;this.data={}};g.prototype.set=function(a,f){var c=this.data;b(c,a)||this.size++;c[a]=f;return this};g.prototype.get=function(a){return this.data[a]||null};g.prototype.all=function(){var a=this.data,
f=[],c;for(c in a)void 0!==a[c]&&f.push(a[c]);return f};g.prototype.delete=function(a){var f=this.data;if(!b(f,a))return!1;f[a]=null;delete f[a];this.size--;return!0};var e=new g,k,q=function(a,f){for(var c=-1,b=0;b<a.length;b++)if(a[b]===f){c=b;break}return c},t=function(a,f){var c=a.match(/^(\d+)\s?(d|h|m|s)+$/i);if(c){a=0;f=(new Date).getTime()-f;if(c){var b=parseInt(c[1],10),c=c[2];"s"===c?a=1E3:"m"===c?a=6E4:"h"===c?a=36E5:"d"===c&&(a=864E5);a=a*b-f}else a=-1;return a}if(c=a.match(/^(sun|mon|tue|wed|thu|fri|sat)+\w*\s+(\d+)(:\d+)?(:\d+)?$/i)){var d=
c,c="sun mon tue wed thu fri sat".split(" ");a=new Date;f=a.getDay();f=q(c[f],c);var b=d[1].toLowerCase(),e=q(b,c),g=b=c=0;d[2]&&(c=parseInt(d[2],10));d[3]&&(b=parseInt(d[3].replace(/\D/gi,""),10));d[4]&&(g=parseInt(d[4].replace(/\D/gi,""),10));a.setHours(c);a.setMinutes(b);a.setSeconds(g);var k=a.getTime(),d=(new Date).getTime(),p=a;if(e<f||d>k)a=new Date(a),a.setDate(a.getDate()+f+7-a.getDay()%7),p=a;p.setHours(c);p.setMinutes(b);p.setSeconds(g);return p.getTime()-d}if(c=a.match(/^(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\d+)$/i)){d=
c;a="*"===d[1]?"*":parseInt(d[1],10);f="*"===d[2]?"*":parseInt(d[2],10);var c="*"===d[3]?"*":parseInt(d[3],10),b="*"===d[4]?"*":parseInt(d[4],10),g="*"===d[5]?"*":parseInt(d[5],10),n="*"===d[6]?"*":parseInt(d[6],10),l=new Date,h=l.getFullYear();if("*"!==a&&a<h)a=-1;else{var d=a,e=f,k=c,p=b,m=g;"*"===a&&(d=h);h=l.getMonth()+1;"*"===f&&(e=h);h=l.getDate();"*"===c&&(k=h);h=l.getHours();"*"===b&&(p=h);l=l.getMinutes();"*"===g&&(m=l);n=new Date(d,e-1,k,p,m,n);h=n.getTime();l=(new Date).getTime();h-=l;
0>h&&"*"===g&&(n.setMinutes(m+1),h=n.getTime(),h-=l);0>h&&"*"===b&&(n.setHours(p+1),h=n.getTime(),h-=l);0>h&&"*"===c&&(n.setDate(k+1),h=n.getTime(),h-=l);0>h&&"*"===f&&(n.setMonth(e),h=n.getTime(),h-=l);0>h&&"*"===a&&(n.setFullYear(d+1),h=n.getTime(),h-=l);a=h}return a}return-1},u=function(a){a.fn();var b=a.id;if(!a.repeat)return e.delete(b);var c=(new Date).getTime();a.lastTick=c;e.set(b,a);return!0},r=function(){if(0<e.size){var a=2147483647,b=[];e.all().forEach(function(c){var f=c.id,d=t(c.time,
c.lastTick);0>d?e.delete(f):0===d?(c.delay=0,b.push(c)):(c.delay=d,e.set(f,c),d<=a&&(a=d,f=[],f=b.concat(c),b=f.filter(function(b){return b.delay<=a})))});k&&clearTimeout(k);b.length&&(k=setTimeout(function(){b.map(u);setTimeout(r,1)},a))}},m=function(a,b,c){c=c?0:1;var f=(new Date).getTime(),d;for(d=[];10>d.length;)d.push(Math.random().toString(36).slice(2));d=d.join("");for(var g=d.length,k=Math.max(32,0),m="";m.length<k;)m+=d.charAt(Math.floor(Math.random()*g))||"";d=m;e.set(d,{id:d,fn:b,time:a,
repeat:c,createdAt:f,lastTick:f,delay:0});r()};return{yearly:function(a,b){m("* "+a,b)},monthly:function(a,b){m("* * "+a,b)},daily:function(a,b){m("* * * "+a,b)},hourly:function(a,b){return m("* * * * "+a,b)},every:function(a,b){return m(a,b)},once:function(a,b){return m(a,b,1)}}});
// bella-scheduler@1.1.3, by @ndaidong - built on Fri, 18 Nov 2016 07:58:10 GMT - published under MIT license
;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};(function(name,factory){if(typeof module!=="undefined"&&module.exports){module.exports=factory()}else{var root=window||{};if(root.define&&root.define.amd){root.define([],factory)}else if(root.exports){root.exports=factory()}else{root[name]=factory()}}}("scheduler",function(){var MAX_TIMEOUT=2147483647;var isUndefined=function isUndefined(v){return v===undefined};var hasProperty=function hasProperty(ob,k){if(!ob||!k){return false}var r=true;if(isUndefined(ob[k])){r=k in ob}return r};var BellaMap=function(){function BellaMap(){_classCallCheck(this,BellaMap);this.size=0;this.data={}}_createClass(BellaMap,[{key:"set",value:function set(k,v){var d=this.data;if(!hasProperty(d,k)){this.size++}d[k]=v;return this}},{key:"get",value:function get(k){var d=this.data;return d[k]||null}},{key:"all",value:function all(){var d=this.data;var a=[];for(var k in d){if(!isUndefined(d[k])){a.push(d[k])}}return a}},{key:"delete",value:function _delete(k){var d=this.data;if(!hasProperty(d,k)){return false}d[k]=null;delete d[k];this.size--;return true}}]);return BellaMap}();var TaskList=new BellaMap;var checkTimer;var now=function now(){return new Date};var time=function time(){return now().getTime()};var getIndex=function getIndex(arr,item){var r=-1;for(var i=0;i<arr.length;i++){if(arr[i]===item){r=i;break}}return r};var createId=function createId(leng,prefix){var rn=function rn(){return Math.random().toString(36).slice(2)};var a=[];while(a.length<10){a.push(rn())}var r=a.join("");var t=r.length;var px=prefix||"";var ln=Math.max(leng||32,px.length);var s=px;while(s.length<ln){var k=Math.floor(Math.random()*t);s+=r.charAt(k)||""}return s};var getNextDay=function getNextDay(t,tday){var d=new Date(t);d.setDate(d.getDate()+tday+7-d.getDay()%7);return d};var getDT1=function getDT1(mat,lastTick){var delta=0;var passed=time()-lastTick;if(!mat){return-1}var v=parseInt(mat[1],10);var s=mat[2];if(s==="s"){delta=1e3}else if(s==="m"){delta=6e4}else if(s==="h"){delta=6e4*60}else if(s==="d"){delta=6e4*60*24}delta*=v;return delta-passed};var getDT2=function getDT2(mat){var wds="sun|mon|tue|wed|thu|fri|sat".split("|");var today=new Date;var wday=today.getDay();var awd=wds[wday];var awi=getIndex(awd,wds);var dd=mat[1].toLowerCase();var ddi=getIndex(dd,wds);var hh=0;var ii=0;var ss=0;if(mat[2]){hh=parseInt(mat[2],10)}if(mat[3]){ii=parseInt(mat[3].replace(/\D/gi,""),10)}if(mat[4]){ss=parseInt(mat[4].replace(/\D/gi,""),10)}today.setHours(hh);today.setMinutes(ii);today.setSeconds(ss);var ttime=today.getTime();var ctime=time();var nextDay=today;if(ddi<awi||ctime>ttime){nextDay=getNextDay(today,awi)}nextDay.setHours(hh);nextDay.setMinutes(ii);nextDay.setSeconds(ss);return nextDay.getTime()-ctime};var getDT3=function getDT3(mat){var yy=mat[1]==="*"?"*":parseInt(mat[1],10);var mm=mat[2]==="*"?"*":parseInt(mat[2],10);var dd=mat[3]==="*"?"*":parseInt(mat[3],10);var hh=mat[4]==="*"?"*":parseInt(mat[4],10);var ii=mat[5]==="*"?"*":parseInt(mat[5],10);var ss=mat[6]==="*"?"*":parseInt(mat[6],10);var today=new Date;var ayy=today.getFullYear();if(yy!=="*"&&yy<ayy){return-1}var tyy=yy;var tmm=mm;var tdd=dd;var thh=hh;var tii=ii;var tss=ss;if(yy==="*"){tyy=ayy}var amm=today.getMonth()+1;if(mm==="*"){tmm=amm}var add=today.getDate();if(dd==="*"){tdd=add}var ahh=today.getHours();if(hh==="*"){thh=ahh}var aii=today.getMinutes();if(ii==="*"){tii=aii}var gd=new Date(tyy,tmm-1,tdd,thh,tii,tss);var ttime=gd.getTime();var ctime=time();var delta=ttime-ctime;if(delta<0){if(ii==="*"){gd.setMinutes(tii+1);ttime=gd.getTime();delta=ttime-ctime}}if(delta<0){if(hh==="*"){gd.setHours(thh+1);ttime=gd.getTime();delta=ttime-ctime}}if(delta<0){if(dd==="*"){gd.setDate(tdd+1);ttime=gd.getTime();delta=ttime-ctime}}if(delta<0){if(mm==="*"){gd.setMonth(tmm);ttime=gd.getTime();delta=ttime-ctime}}if(delta<0){if(yy==="*"){gd.setFullYear(tyy+1);ttime=gd.getTime();delta=ttime-ctime}}return delta};var getDelayTime=function getDelayTime(pat,lastTick){var pt1=/^(\d+)\s?(d|h|m|s)+$/i;var pt2=/^(sun|mon|tue|wed|thu|fri|sat)+\w*\s+(\d+)(:\d+)?(:\d+)?$/i;var pt3=/^(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\d+)$/i;var mat=pat.match(pt1);if(mat){return getDT1(mat,lastTick)}mat=pat.match(pt2);if(mat){return getDT2(mat)}mat=pat.match(pt3);if(mat){return getDT3(mat)}return-1};var execute=function execute(task){task.fn();var id=task.id;if(!task.repeat){return TaskList.delete(id)}var t=time();task.lastTick=t;TaskList.set(id,task);return true};var updateTimer=function updateTimer(){if(TaskList.size>0){(function(){var minDelay=MAX_TIMEOUT;var candidates=[];TaskList.all().forEach(function(task){var id=task.id;var delay=getDelayTime(task.time,task.lastTick);if(delay<0){TaskList.delete(id)}else if(delay===0){task.delay=0;candidates.push(task)}else{task.delay=delay;TaskList.set(id,task);if(delay<=minDelay){minDelay=delay;var arr=[];arr=candidates.concat(task);candidates=arr.filter(function(item){return item.delay<=minDelay})}}});if(checkTimer){clearTimeout(checkTimer)}if(candidates.length){checkTimer=setTimeout(function(){candidates.map(execute);setTimeout(updateTimer,1)},minDelay)}}())}};var register=function register(t,fn,once){var rep=once?0:1;var n=time();var id=createId(32);var task={id:id,fn:fn,time:t,repeat:rep,createdAt:n,lastTick:n,delay:0};TaskList.set(id,task);updateTimer()};return{yearly:function yearly(t,fn){var pt="* "+t;register(pt,fn)},monthly:function monthly(t,fn){var pt="* * "+t;register(pt,fn)},daily:function daily(t,fn){var pt="* * * "+t;register(pt,fn)},hourly:function hourly(t,fn){var pt="* * * * "+t;return register(pt,fn)},every:function every(t,fn){return register(t,fn)},once:function once(t,fn){return register(t,fn,1)}}}));
{
"version": "1.1.2",
"version": "1.1.3",
"name": "bella-scheduler",

@@ -24,3 +24,3 @@ "description": "A useful helper for any javascript program",

"coveralls": "npm test && cat ./coverage/lcov.info | coveralls",
"build": "gccmin src dist/scheduler.min.js"
"build": "gccmin"
},

@@ -38,2 +38,8 @@ "devDependencies": {

},
"gccmin": {
"source": "src",
"target": "dist",
"filename": "scheduler",
"globalVar": "scheduler"
},
"keywords": [

@@ -40,0 +46,0 @@ "cron",

@@ -23,8 +23,5 @@ bella-scheduler

[scheduler.min.js](https://cdn.rawgit.com/ndaidong/bella-scheduler/master/dist/scheduler.min.js)
- [scheduler.js](https://cdn.rawgit.com/ndaidong/bella-scheduler/master/dist/scheduler.js)
- [scheduler.min.js](https://cdn.rawgit.com/ndaidong/bella-scheduler/master/dist/scheduler.min.js)
```
<script type="text/javascript" src="https://cdn.rawgit.com/ndaidong/bella-scheduler/master/dist/scheduler.min.js"></script>
```
- This library also supports ES6 Module, AMD and UMD style.

@@ -31,0 +28,0 @@

@@ -6,396 +6,380 @@ /**

((name, factory) => {
if (typeof module !== 'undefined' && module.exports) {
module.exports = factory();
} else {
let root = window || {};
if (root.define && root.define.amd) {
root.define([], factory);
} else if (root.exports) {
root.exports = factory();
} else {
root[name] = factory();
}
}
})('scheduler', () => {
const MAX_TIMEOUT = 2147483647;
const MAX_TIMEOUT = 2147483647;
var isUndefined = (v) => {
return v === undefined; // eslint-disable-line no-undefined
};
var isUndefined = (v) => {
return v === undefined; // eslint-disable-line no-undefined
};
var hasProperty = (ob, k) => {
if (!ob || !k) {
return false;
}
let r = true;
if (isUndefined(ob[k])) {
r = k in ob;
}
return r;
};
var hasProperty = (ob, k) => {
if (!ob || !k) {
return false;
}
let r = true;
if (isUndefined(ob[k])) {
r = k in ob;
}
return r;
};
class BellaMap {
constructor() {
this.size = 0;
this.data = {};
}
class BellaMap {
constructor() {
this.size = 0;
this.data = {};
set(k, v) {
let d = this.data;
if (!hasProperty(d, k)) {
this.size++;
}
d[k] = v;
return this;
}
set(k, v) {
let d = this.data;
if (!hasProperty(d, k)) {
this.size++;
}
d[k] = v;
return this;
}
get(k) {
let d = this.data;
return d[k] || null;
}
get(k) {
let d = this.data;
return d[k] || null;
}
all() {
let d = this.data;
let a = [];
for (let k in d) {
if (!isUndefined(d[k])) {
a.push(d[k]);
}
all() {
let d = this.data;
let a = [];
for (let k in d) {
if (!isUndefined(d[k])) {
a.push(d[k]);
}
return a;
}
return a;
}
delete(k) {
let d = this.data;
if (!hasProperty(d, k)) {
return false;
}
d[k] = null;
delete d[k];
this.size--;
return true;
delete(k) {
let d = this.data;
if (!hasProperty(d, k)) {
return false;
}
d[k] = null;
delete d[k];
this.size--;
return true;
}
}
var TaskList = new BellaMap();
var checkTimer;
var TaskList = new BellaMap();
var checkTimer;
var now = () => {
return new Date();
};
var now = () => {
return new Date();
};
var time = () => {
return now().getTime();
};
var time = () => {
return now().getTime();
};
var getIndex = (arr, item) => {
let r = -1;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
r = i;
break;
}
var getIndex = (arr, item) => {
let r = -1;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
r = i;
break;
}
return r;
};
}
return r;
};
var createId = (leng, prefix) => {
let rn = () => {
return Math.random().toString(36).slice(2);
};
let a = [];
while (a.length < 10) {
a.push(rn());
}
let r = a.join('');
let t = r.length;
let px = prefix || '';
let ln = Math.max(leng || 32, px.length);
let s = px;
while (s.length < ln) {
let k = Math.floor(Math.random() * t);
s += r.charAt(k) || '';
}
return s;
var createId = (leng, prefix) => {
let rn = () => {
return Math.random().toString(36).slice(2);
};
let a = [];
while (a.length < 10) {
a.push(rn());
}
let r = a.join('');
let t = r.length;
let px = prefix || '';
let ln = Math.max(leng || 32, px.length);
let s = px;
while (s.length < ln) {
let k = Math.floor(Math.random() * t);
s += r.charAt(k) || '';
}
return s;
};
var getNextDay = (t, tday) => {
let d = new Date(t);
d.setDate(d.getDate() + tday + 7 - d.getDay() % 7);
return d;
};
var getNextDay = (t, tday) => {
let d = new Date(t);
d.setDate(d.getDate() + tday + 7 - d.getDay() % 7);
return d;
};
var getDT1 = (mat, lastTick) => {
var getDT1 = (mat, lastTick) => {
let delta = 0;
let passed = time() - lastTick;
let delta = 0;
let passed = time() - lastTick;
if (!mat) {
return -1;
}
let v = parseInt(mat[1], 10);
let s = mat[2];
if (s === 's') {
delta = 1000;
} else if (s === 'm') {
delta = 6e4;
} else if (s === 'h') {
delta = 6e4 * 60;
} else if (s === 'd') {
delta = 6e4 * 60 * 24;
}
delta *= v;
return delta - passed;
};
if (!mat) {
return -1;
}
let v = parseInt(mat[1], 10);
let s = mat[2];
if (s === 's') {
delta = 1000;
} else if (s === 'm') {
delta = 6e4;
} else if (s === 'h') {
delta = 6e4 * 60;
} else if (s === 'd') {
delta = 6e4 * 60 * 24;
}
delta *= v;
return delta - passed;
};
var getDT2 = (mat) => {
let wds = 'sun|mon|tue|wed|thu|fri|sat'.split('|');
let today = new Date();
let wday = today.getDay();
var getDT2 = (mat) => {
let wds = 'sun|mon|tue|wed|thu|fri|sat'.split('|');
let today = new Date();
let wday = today.getDay();
let awd = wds[wday];
let awi = getIndex(awd, wds);
let awd = wds[wday];
let awi = getIndex(awd, wds);
let dd = mat[1].toLowerCase();
let ddi = getIndex(dd, wds);
let dd = mat[1].toLowerCase();
let ddi = getIndex(dd, wds);
let hh = 0;
let ii = 0;
let ss = 0;
if (mat[2]) {
hh = parseInt(mat[2], 10);
}
if (mat[3]) {
ii = parseInt(mat[3].replace(/\D/gi, ''), 10);
}
if (mat[4]) {
ss = parseInt(mat[4].replace(/\D/gi, ''), 10);
}
let hh = 0;
let ii = 0;
let ss = 0;
if (mat[2]) {
hh = parseInt(mat[2], 10);
}
if (mat[3]) {
ii = parseInt(mat[3].replace(/\D/gi, ''), 10);
}
if (mat[4]) {
ss = parseInt(mat[4].replace(/\D/gi, ''), 10);
}
today.setHours(hh);
today.setMinutes(ii);
today.setSeconds(ss);
today.setHours(hh);
today.setMinutes(ii);
today.setSeconds(ss);
let ttime = today.getTime();
let ctime = time();
let ttime = today.getTime();
let ctime = time();
let nextDay = today;
if (ddi < awi || ctime > ttime) {
nextDay = getNextDay(today, awi);
}
nextDay.setHours(hh);
nextDay.setMinutes(ii);
nextDay.setSeconds(ss);
let nextDay = today;
if (ddi < awi || ctime > ttime) {
nextDay = getNextDay(today, awi);
}
nextDay.setHours(hh);
nextDay.setMinutes(ii);
nextDay.setSeconds(ss);
return nextDay.getTime() - ctime;
};
return nextDay.getTime() - ctime;
};
var getDT3 = (mat) => { // eslint-disable-line complexity
var getDT3 = (mat) => { // eslint-disable-line complexity
let yy = mat[1] === '*' ? '*' : parseInt(mat[1], 10);
let mm = mat[2] === '*' ? '*' : parseInt(mat[2], 10);
let dd = mat[3] === '*' ? '*' : parseInt(mat[3], 10);
let hh = mat[4] === '*' ? '*' : parseInt(mat[4], 10);
let ii = mat[5] === '*' ? '*' : parseInt(mat[5], 10);
let ss = mat[6] === '*' ? '*' : parseInt(mat[6], 10);
let yy = mat[1] === '*' ? '*' : parseInt(mat[1], 10);
let mm = mat[2] === '*' ? '*' : parseInt(mat[2], 10);
let dd = mat[3] === '*' ? '*' : parseInt(mat[3], 10);
let hh = mat[4] === '*' ? '*' : parseInt(mat[4], 10);
let ii = mat[5] === '*' ? '*' : parseInt(mat[5], 10);
let ss = mat[6] === '*' ? '*' : parseInt(mat[6], 10);
let today = new Date();
let ayy = today.getFullYear();
let today = new Date();
let ayy = today.getFullYear();
if (yy !== '*' && yy < ayy) {
return -1;
}
if (yy !== '*' && yy < ayy) {
return -1;
}
let tyy = yy;
let tmm = mm;
let tdd = dd;
let thh = hh;
let tii = ii;
let tss = ss;
let tyy = yy;
let tmm = mm;
let tdd = dd;
let thh = hh;
let tii = ii;
let tss = ss;
if (yy === '*') {
tyy = ayy;
}
if (yy === '*') {
tyy = ayy;
}
let amm = today.getMonth() + 1;
if (mm === '*') {
tmm = amm;
}
let add = today.getDate();
if (dd === '*') {
tdd = add;
}
let ahh = today.getHours();
if (hh === '*') {
thh = ahh;
}
let aii = today.getMinutes();
if (ii === '*') {
tii = aii;
}
let amm = today.getMonth() + 1;
if (mm === '*') {
tmm = amm;
}
let add = today.getDate();
if (dd === '*') {
tdd = add;
}
let ahh = today.getHours();
if (hh === '*') {
thh = ahh;
}
let aii = today.getMinutes();
if (ii === '*') {
tii = aii;
}
let gd = new Date(tyy, tmm - 1, tdd, thh, tii, tss);
let ttime = gd.getTime();
let ctime = time();
let delta = ttime - ctime;
let gd = new Date(tyy, tmm - 1, tdd, thh, tii, tss);
let ttime = gd.getTime();
let ctime = time();
let delta = ttime - ctime;
if (delta < 0) {
if (ii === '*') {
gd.setMinutes(tii + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
if (delta < 0) {
if (ii === '*') {
gd.setMinutes(tii + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
if (delta < 0) {
if (hh === '*') {
gd.setHours(thh + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
}
if (delta < 0) {
if (hh === '*') {
gd.setHours(thh + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
if (delta < 0) {
if (dd === '*') {
gd.setDate(tdd + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
}
if (delta < 0) {
if (dd === '*') {
gd.setDate(tdd + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
}
if (delta < 0) {
if (mm === '*') {
gd.setMonth(tmm);
ttime = gd.getTime();
delta = ttime - ctime;
}
if (delta < 0) {
if (mm === '*') {
gd.setMonth(tmm);
ttime = gd.getTime();
delta = ttime - ctime;
}
}
if (delta < 0) {
if (yy === '*') {
gd.setFullYear(tyy + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
if (delta < 0) {
if (yy === '*') {
gd.setFullYear(tyy + 1);
ttime = gd.getTime();
delta = ttime - ctime;
}
}
return delta;
};
return delta;
};
var getDelayTime = (pat, lastTick) => {
var getDelayTime = (pat, lastTick) => {
let pt1 = /^(\d+)\s?(d|h|m|s)+$/i;
let pt2 = /^(sun|mon|tue|wed|thu|fri|sat)+\w*\s+(\d+)(:\d+)?(:\d+)?$/i;
let pt3 = /^(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\d+)$/i;
let pt1 = /^(\d+)\s?(d|h|m|s)+$/i;
let pt2 = /^(sun|mon|tue|wed|thu|fri|sat)+\w*\s+(\d+)(:\d+)?(:\d+)?$/i;
let pt3 = /^(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\*|\d+)\s+(\d+)$/i;
let mat = pat.match(pt1);
if (mat) {
return getDT1(mat, lastTick);
}
let mat = pat.match(pt1);
if (mat) {
return getDT1(mat, lastTick);
}
mat = pat.match(pt2);
if (mat) {
return getDT2(mat);
}
mat = pat.match(pt2);
if (mat) {
return getDT2(mat);
}
mat = pat.match(pt3);
if (mat) {
return getDT3(mat);
}
mat = pat.match(pt3);
if (mat) {
return getDT3(mat);
}
return -1;
};
return -1;
};
var execute = (task) => {
task.fn();
let id = task.id;
if (!task.repeat) {
return TaskList.delete(id);
}
var execute = (task) => {
task.fn();
let id = task.id;
if (!task.repeat) {
return TaskList.delete(id);
}
let t = time();
task.lastTick = t;
TaskList.set(id, task);
return true;
};
let t = time();
task.lastTick = t;
TaskList.set(id, task);
return true;
};
var updateTimer = () => {
if (TaskList.size > 0) {
let minDelay = MAX_TIMEOUT;
let candidates = [];
TaskList.all().forEach((task) => {
let id = task.id;
let delay = getDelayTime(task.time, task.lastTick);
if (delay < 0) {
TaskList.delete(id);
} else if (delay === 0) {
task.delay = 0;
candidates.push(task);
} else {
task.delay = delay;
TaskList.set(id, task);
if (delay <= minDelay) {
minDelay = delay;
let arr = [];
arr = candidates.concat(task);
candidates = arr.filter((item) => {
return item.delay <= minDelay;
});
}
var updateTimer = () => {
if (TaskList.size > 0) {
let minDelay = MAX_TIMEOUT;
let candidates = [];
TaskList.all().forEach((task) => {
let id = task.id;
let delay = getDelayTime(task.time, task.lastTick);
if (delay < 0) {
TaskList.delete(id);
} else if (delay === 0) {
task.delay = 0;
candidates.push(task);
} else {
task.delay = delay;
TaskList.set(id, task);
if (delay <= minDelay) {
minDelay = delay;
let arr = [];
arr = candidates.concat(task);
candidates = arr.filter((item) => {
return item.delay <= minDelay;
});
}
});
if (checkTimer) {
clearTimeout(checkTimer);
}
if (candidates.length) {
checkTimer = setTimeout(() => {
candidates.map(execute);
setTimeout(updateTimer, 1);
}, minDelay);
}
});
if (checkTimer) {
clearTimeout(checkTimer);
}
};
if (candidates.length) {
checkTimer = setTimeout(() => {
candidates.map(execute);
setTimeout(updateTimer, 1);
}, minDelay);
}
var register = (t, fn, once) => {
let rep = once ? 0 : 1;
let n = time();
let id = createId(32);
let task = {
id,
fn,
time: t,
repeat: rep,
createdAt: n,
lastTick: n,
delay: 0
};
TaskList.set(id, task);
updateTimer();
}
};
var register = (t, fn, once) => {
let rep = once ? 0 : 1;
let n = time();
let id = createId(32);
let task = {
id,
fn,
time: t,
repeat: rep,
createdAt: n,
lastTick: n,
delay: 0
};
TaskList.set(id, task);
updateTimer();
};
return {
yearly(t, fn) {
let pt = '* ' + t;
register(pt, fn);
},
monthly(t, fn) {
let pt = '* * ' + t;
register(pt, fn);
},
daily(t, fn) {
let pt = '* * * ' + t;
register(pt, fn);
},
hourly(t, fn) {
let pt = '* * * * ' + t;
return register(pt, fn);
},
every(t, fn) {
return register(t, fn);
},
once(t, fn) {
return register(t, fn, 1);
}
};
});
module.exports = {
yearly(t, fn) {
let pt = '* ' + t;
register(pt, fn);
},
monthly(t, fn) {
let pt = '* * ' + t;
register(pt, fn);
},
daily(t, fn) {
let pt = '* * * ' + t;
register(pt, fn);
},
hourly(t, fn) {
let pt = '* * * * ' + t;
return register(pt, fn);
},
every(t, fn) {
return register(t, fn);
},
once(t, fn) {
return register(t, fn, 1);
}
};
/**
* Check built-file to ensure it has been regenated
* Check built-files to ensure they have been regenated correctly
* @ndaidong

@@ -10,6 +10,6 @@ */

var pkgFake = require('../../package.json');
var proFile = './dist/scheduler.min.js';
var proFile = './dist/scheduler.js';
var devFile = './dist/scheduler.min.js';
test('Testing minified result', (assert) => {
test('Validate production output', (assert) => {
assert.ok(fs.existsSync(proFile), 'Production file must be generated');

@@ -30,1 +30,18 @@

});
test('Validate development output', (assert) => {
assert.ok(fs.existsSync(devFile), 'Development file must be generated');
let s = fs.readFileSync(devFile, 'utf8');
let a = s.split('\n');
assert.ok(s.length > 0 && a.length > 1, 'Development file must be not empty');
let cmt = a[0];
let pack = `${pkgFake.name}@${pkgFake.version}`;
assert.ok(cmt.includes(pack), 'Package must be presented with name and version');
let author = `${pkgFake.author}`;
assert.ok(cmt.includes(author), 'Package author must be correct');
let license = `${pkgFake.license}`;
assert.ok(cmt.includes(license), 'Package license must be correct');
assert.end();
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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