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

node-schedule

Package Overview
Dependencies
Maintainers
4
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-schedule - npm Package Compare versions

Comparing version 1.2.2 to 1.2.3

55

lib/schedule.js

@@ -348,2 +348,53 @@

RecurrenceRule.prototype.isValid = function() {
function isValidType(num) {
if (Array.isArray(num) || (num instanceof Array)) {
return num.every(function(e) {
return isValidType(e);
});
}
return !(Number.isNaN(Number(num)) && !(num instanceof Range));
}
if (this.month !== null && (this.month < 0 || this.month > 11 || !isValidType(this.month))) {
return false;
}
if (this.dayOfWeek !== null && (this.dayOfWeek < 0 || this.dayOfWeek > 6 || !isValidType(this.dayOfWeek))) {
return false;
}
if (this.hour !== null && (this.hour < 0 || this.hour > 23 || !isValidType(this.hour))) {
return false;
}
if (this.minute !== null && (this.minute < 0 || this.minute > 59 || !isValidType(this.minute))) {
return false;
}
if (this.second !== null && (this.second < 0 || this.second > 59 || !isValidType(this.second))) {
return false;
}
if (this.date !== null) {
if(!isValidType(this.date)) {
return false;
}
switch (this.month) {
case 3:
case 5:
case 8:
case 10:
if (this.date < 1 || this. date > 30) {
return false;
}
break;
case 1:
if (this.date < 1 || this. date > 29) {
return false;
}
break;
default:
if (this.date < 1 || this. date > 31) {
return false;
}
}
}
return true;
};
RecurrenceRule.prototype.nextInvocationDate = function(base) {

@@ -355,2 +406,6 @@ base = ((base instanceof CronDate) || (base instanceof Date)) ? base : (new Date());

if(!this.isValid()) {
return null;
}
var now = new CronDate(Date.now(), this.tz);

@@ -357,0 +412,0 @@ var fullYear = now.getFullYear();

2

package.json
{
"name": "node-schedule",
"version": "1.2.2",
"version": "1.2.3",
"description": "A cron-like and not-cron-like job scheduler for Node.",

@@ -5,0 +5,0 @@ "keywords": [

@@ -298,9 +298,79 @@

rule.hour = '10';
var next = rule.nextInvocationDate(base);
test.deepEqual(new Date(2010, 3, 30, 10, 5, 50, 0), next);
test.done();
},
"nextInvocationDate on an invalid month should return null": function(test) {
var rule = new schedule.RecurrenceRule();
rule.month = 12;
var next = rule.nextInvocationDate(next);
test.equal(next, null);
var rule = new schedule.RecurrenceRule();
rule.month = 'asdfasdf';
next = rule.nextInvocationDate(next);
test.equal(next, null);
test.done();
},
"nextInvocationDate on an invalid second should return null": function(test) {
var rule = new schedule.RecurrenceRule();
rule.second = 60;
var next = rule.nextInvocationDate(next);
test.equal(next, null);
var rule = new schedule.RecurrenceRule();
rule.second = 'asdfasdf';
next = rule.nextInvocationDate(next);
test.equal(next, null);
test.done();
},
"nextInvocationDate on an invalid hour should return null": function(test) {
var rule = new schedule.RecurrenceRule();
rule.hour = 24;
var next = rule.nextInvocationDate(next);
test.equal(next, null);
var rule = new schedule.RecurrenceRule();
rule.hour = 'asdfasdf';
next = rule.nextInvocationDate(next);
test.equal(next, null);
test.done();
},
"nextInvocationDate on an invalid date should return null": function(test) {
var rule = new schedule.RecurrenceRule();
rule.date = 90;
var next = rule.nextInvocationDate(next);
test.equal(next, null);
// Test February
var rule = new schedule.RecurrenceRule();
rule.month = 1;
rule.date = 30;
next = rule.nextInvocationDate(next);
test.equal(next, null);
var rule = new schedule.RecurrenceRule();
rule.date = 'asdfasdf';
next = rule.nextInvocationDate(next);
test.equal(next, null);
test.done();
},
"nextInvocationDate on an invalid dayOfWeek should return null": function(test) {
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = 90;
var next = rule.nextInvocationDate(next);
test.equal(next, null);
var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = 'asdfasdf';
next = rule.nextInvocationDate(next);
test.equal(next, null);
test.done();
}
}
};
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