Skip to content

Commit

Permalink
es6 things
Browse files Browse the repository at this point in the history
  • Loading branch information
SomeoneWeird committed Mar 8, 2015
1 parent de4e337 commit c4a916e
Show file tree
Hide file tree
Showing 19 changed files with 175 additions and 182 deletions.
4 changes: 2 additions & 2 deletions src/deleteKey.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@

"use strict";

var DELETEKEY = { htDeleteKey: true };
const DELETEKEY = { htDeleteKey: true };

module.exports = DELETEKEY;
export default DELETEKEY;
26 changes: 13 additions & 13 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@

"use strict";

var fs = require("fs");
var path = require("path");
import fs from "fs";
import path from "path";

var merge = require("./merge");
import merge from "./merge";

var validators = {};
let validators = {};

var validatorsPath = path.resolve(__dirname, "../validators");
let validatorsPath = path.resolve(__dirname, "../validators");

var files = fs.readdirSync(validatorsPath);
let files = fs.readdirSync(validatorsPath);

files.forEach(function(file) {
var t = require(path.join(validatorsPath, file));
let t = require(path.join(validatorsPath, file));
validators[t.name] = makeParser(t.fn);
});

Expand Down Expand Up @@ -42,17 +42,17 @@ function makeParser(parserFunc, docFunc) {
case 1: {

// One argument, are they args or validators?
var areValidators = false;
let areValidators = false;

if(Array.isArray(arguments[0])) {
for(var i = 0; i < arguments[0].length; i++) {
for(let i = 0; i < arguments[0].length; i++) {
if(typeof arguments[0][i] == "object" && arguments[0][i].hasOwnProperty("childValidators")) {
areValidators = true;
break;
}
}
} else {
for(var k in arguments[0]) {
for(let k in arguments[0]) {
if(typeof arguments[0][k] == "object" && arguments[0][k].hasOwnProperty("childValidators")) {
areValidators = true;
break;
Expand All @@ -75,14 +75,14 @@ function makeParser(parserFunc, docFunc) {

return new(function(args, childValidators) {

var self = this;
let self = this;
self.childValidators = childValidators;
self.args = args;

self.parse = function(data, key, first) {
//All validators should handle opt (optional)
var args = merge(self.args, { opt: false });
var val = parserFunc.call(self, args, self.childValidators, data, key);
let args = merge(self.args, { opt: false });
let val = parserFunc.call(self, args, self.childValidators, data, key);
if(first && val !== null && typeof val == "object" && val.htDeleteKey) return null;
return val;
};
Expand Down
12 changes: 6 additions & 6 deletions src/merge.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

function merge() {
// Merge objects passed as arguments, left to right precidence.
var result = {};
for (var i = 0; i < arguments.length; i++) {
var keys = Object.keys(arguments[i]);
for (var k = 0; k < keys.length; k++) {
var key = keys[k];
let result = {};
for (let i = 0; i < arguments.length; i++) {
let keys = Object.keys(arguments[i]);
for (let k = 0; k < keys.length; k++) {
let key = keys[k];
if(!result.hasOwnProperty(key)) {
result[key] = arguments[i][key];
}
Expand All @@ -16,4 +16,4 @@ function merge() {
return result;
}

module.exports = merge;
export default merge;
11 changes: 5 additions & 6 deletions test-src/any.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@

"use strict";

var assert = require("assert");

var s = require("../");
import assert from "assert";
import s from "../";

describe("Any validator", function() {

it("should require value", function() {
var schema = s.Any();
let schema = s.Any();
assert.throws(function() {
schema.validate();
});
});

it("should allow optional value", function() {
var schema = s.Any({ opt: true });
let schema = s.Any({ opt: true });
schema.validate();
});

it("should allow any value", function() {
var schema = s.Array([ s.Any() ]);
let schema = s.Array([ s.Any() ]);
schema.validate([ true, 5, "hello" ]);
});

Expand Down
29 changes: 14 additions & 15 deletions test-src/array.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@

"use strict";

var assert = require("assert");

var s = require("../");
import assert from "assert";
import s from "../";

describe("Array validator", function() {

var numArray = [ 1, 2, 3 ];
var mixedArray = [ 1, 2, 3, "bananna" ];
var messyArray = [ 1, 2, 3, "bananna", { name: "cat", colour: "brown" } ];
let numArray = [ 1, 2, 3 ];
let mixedArray = [ 1, 2, 3, "bananna" ];
let messyArray = [ 1, 2, 3, "bananna", { name: "cat", colour: "brown" } ];

it("should require value", function() {
var schema = s.Array([ s.Any() ]);
let schema = s.Array([ s.Any() ]);
assert.throws(function() {
schema.validate();
});
});

it("should allow optional value if opt is set", function() {

var schema = s.Array({ opt: true });
let schema = s.Array({ opt: true });

assert.doesNotThrow(function() {
schema.validate(undefined);
Expand All @@ -29,24 +28,24 @@ describe("Array validator", function() {
});

it("should accept a valid simple Array", function() {
var schema = s.Array([s.Number()]);
let schema = s.Array([s.Number()]);
assert.deepEqual(schema.validate(numArray), numArray);
});

it("should reject an invalid simple Array", function() {
var schema = s.Array([s.Number()]);
let schema = s.Array([s.Number()]);
assert.throws(function() {
schema.validate(mixedArray);
}, Error);
});

it("should accept a valid simple mixed Array", function() {
var schema = s.Array([ s.Number(), s.String() ]);
let schema = s.Array([ s.Number(), s.String() ]);
assert.deepEqual(schema.validate(mixedArray), mixedArray);
});

it("should accept a valid complex mixed Array", function() {
var schema = s.Array([
let schema = s.Array([
s.Number(),
s.String(),
s.Object({
Expand All @@ -59,7 +58,7 @@ describe("Array validator", function() {

it("should accept length option", function() {

var schema = s.Array({ length: 5 }, [ s.Number() ]);
let schema = s.Array({ length: 5 }, [ s.Number() ]);

assert.throws(function() {
schema.validate([ 1, 2, 3, 4 ]);
Expand All @@ -71,7 +70,7 @@ describe("Array validator", function() {

it("should accept minLength option", function() {

var schema = s.Array({ minLength: 3 }, [ s.Number() ]);
let schema = s.Array({ minLength: 3 }, [ s.Number() ]);

assert.throws(function() {
schema.validate([ 1, 2 ]);
Expand All @@ -84,7 +83,7 @@ describe("Array validator", function() {

it("should accept maxLength option", function() {

var schema = s.Array({ maxLength: 3 }, [ s.Number() ]);
let schema = s.Array({ maxLength: 3 }, [ s.Number() ]);

assert.throws(function() {
schema.validate([ 1, 2, 3, 4 ]);
Expand Down
17 changes: 8 additions & 9 deletions test-src/boolean.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@

"use strict";

var assert = require("assert");

var s = require("../");
import assert from "assert";
import s from "../";

describe("Boolean validator", function() {

it("should require value", function() {

var schema = s.Boolean();
let schema = s.Boolean();

assert.throws(function() {
schema.validate();
Expand All @@ -19,7 +18,7 @@ describe("Boolean validator", function() {

it("should allow optional value if opt is set", function() {

var schema = s.Boolean({ opt: true });
let schema = s.Boolean({ opt: true });

assert.doesNotThrow(function() {
schema.validate(undefined);
Expand All @@ -29,17 +28,17 @@ describe("Boolean validator", function() {

it("should coerce given value if coerce is set", function() {

var schema = s.Boolean({ coerce: true });
let schema = s.Boolean({ coerce: true });

var result = schema.validate("hello");
let result = schema.validate("hello");

assert.equal(result, true);

});

it("should throw if value given is not boolean", function() {

var schema = s.Boolean();
let schema = s.Boolean();

assert.throws(function() {
schema.validate(42);
Expand All @@ -49,7 +48,7 @@ describe("Boolean validator", function() {

it("should validate correctly", function() {

var schema = s.Boolean();
let schema = s.Boolean();

assert.doesNotThrow(function() {

Expand Down
29 changes: 14 additions & 15 deletions test-src/date.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@

"use strict";

var assert = require("assert");

var s = require("../");
import assert from "assert";
import s from "../";

describe("Date validator", function() {
var old = new Date("1979");
var oldString = "1979";
var older = new Date("1970");
var now = new Date();
var notADate = { dinosaur: "rawwwr" };
let old = new Date("1979");
let oldString = "1979";
let older = new Date("1970");
let now = new Date();
let notADate = { dinosaur: "rawwwr" };

it("should require value", function() {

var schema = s.Date();
let schema = s.Date();

assert.throws(function() {
schema.validate();
Expand All @@ -24,7 +23,7 @@ describe("Date validator", function() {

it("should allow optional value if opt is set", function() {

var schema = s.Date({ opt: true });
let schema = s.Date({ opt: true });

assert.doesNotThrow(function() {
schema.validate(undefined);
Expand All @@ -33,31 +32,31 @@ describe("Date validator", function() {
});

it("should accept a valid Date", function() {
var schema = s.Date();
let schema = s.Date();
assert.equal(schema.validate(old).getTime(), old.getTime());
});

it("should reject an invalid Date", function() {
var schema = s.Date();
let schema = s.Date();
assert.throws(function() {
schema.validate(notADate);
}, Error);
});

it("should accept a valid Date as a string", function() {
var schema = s.Date();
let schema = s.Date();
assert.equal(schema.validate(oldString).getTime(), old.getTime());
});

it("should reject a Date less than min", function() {
var schema = s.Date({min: old});
let schema = s.Date({min: old});
assert.throws(function() {
schema.validate(older);
}, Error);
});

it("should reject a Date greater than max", function() {
var schema = s.Date({max: old});
let schema = s.Date({max: old});
assert.throws(function() {
schema.validate(now);
}, Error);
Expand Down
Loading

0 comments on commit c4a916e

Please sign in to comment.