Skip to content

Commit

Permalink
Use const by default (instead of let)
Browse files Browse the repository at this point in the history
  • Loading branch information
qzb committed May 22, 2016
1 parent cc18898 commit e381abc
Show file tree
Hide file tree
Showing 21 changed files with 366 additions and 366 deletions.
6 changes: 3 additions & 3 deletions lib/fields/array.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* An array field. It uses provided field for data validation and serialization.
*
* @example
* let field = new ArrayField(new IntegerField());
* const field = new ArrayField(new IntegerField());
*
* field.deserialize([ 1, '2', '3.0' ]); // returns [ 1, 2, 3 ]
* field.deserialize([ 'foo', 'bar' ]); // throws validation error
Expand Down Expand Up @@ -50,8 +50,8 @@ class ArrayField extends Field {
throw new Field.ValidationError(`Value must have at most ${this.params.maxLength} elements`);
}

let result = [];
let errors = {};
const result = [];
const errors = {};
let errorOccurred = false;

for (let i = 0; i < value.length; ++i) {
Expand Down
2 changes: 1 addition & 1 deletion lib/fields/boolean.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* A true/false field. Handles booleans and strings representing booleans. Serializes to boolean.
*
* @example
* let field = new BooleanField();
* const field = new BooleanField();
*
* field.deserialize(false); // returns false
* field.deserialize('yes'); // returns true
Expand Down
2 changes: 1 addition & 1 deletion lib/fields/email.js
Expand Up @@ -8,7 +8,7 @@ const StringField = require('./string');
* A {@link StringField} which checks if value is a valid email.
*
* @example
* let field = new EmailField();
* const field = new EmailField();
*
* field.deserialize('SOME.EMAIL@GMAIL.COM'); // returns "some.email@gmail.com"
* field.deserialize('SOME.EMAIL.GMAIL.COM'); // throws validation error
Expand Down
6 changes: 3 additions & 3 deletions lib/fields/enum.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* An enum field. It accepts only specified strings.
*
* @example
* let field = new EnumField([ 'one', 'two', 'three' ]);
* const field = new EnumField([ 'one', 'two', 'three' ]);
*
* field.deserialize('one'); // returns "one"
* field.deserialize('TWO'); // returns "two"
Expand Down Expand Up @@ -39,9 +39,9 @@ class EnumField extends Field {
throw new Error('All choices must be a strings');
}

let choicesMap = {};
const choicesMap = {};

for (let choice of choices) {
for (const choice of choices) {
if (this.params.caseSensitive) {
choicesMap[choice.trim()] = choice;
} else {
Expand Down
2 changes: 1 addition & 1 deletion lib/fields/integer.js
Expand Up @@ -7,7 +7,7 @@ const NumberField = require('./number');
* A NumberField which additionally checks if value is an integer.
*
* @example
* let field = new IntegerField();
* const field = new IntegerField();
*
* field.deserialize(123); // returns 123
* field.deserialize(1.3); // throws validation error
Expand Down
2 changes: 1 addition & 1 deletion lib/fields/model.js
Expand Up @@ -7,7 +7,7 @@ const Field = require('./field');
* An object field. It uses provided model for data validation and serialization.
*
* @example
* let field = new ModelField({
* const field = new ModelField({
* id: new IntegerField(),
* name: new StringField({ default: 'abc' })
* });
Expand Down
2 changes: 1 addition & 1 deletion lib/fields/number.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* A number field. Accepts double precision real numbers.
*
* @example
* let field = new StringField({ maxLength: 3 });
* const field = new StringField({ maxLength: 3 });
*
* field.deserialize('123.4'); // returns 123.4
* field.deserialize(123.4); // returns 123.4
Expand Down
12 changes: 6 additions & 6 deletions lib/fields/object.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* An object field. It uses provided field for properties validation and serialization.
*
* @example
* let field = new ObjectField(new IntegerField());
* const field = new ObjectField(new IntegerField());
*
* field.deserialize({ foo: 1, bar: '2.0' }); // returns { foo: 1, bar: 2 }
* field.deserialize({ foo: 'bar' }); // throws validation error
Expand Down Expand Up @@ -40,11 +40,11 @@ class ObjectField extends Field {
throw new Field.ValidationError('Value must be an object');
}

let result = {};
let errors = {};
const result = {};
const errors = {};
let errorOccurred = false;

for (let key of Object.keys(value)) {
for (const key of Object.keys(value)) {
try {
result[key] = this.field.deserialize(value[key], options);
} catch (error) {
Expand All @@ -68,9 +68,9 @@ class ObjectField extends Field {
* @returns {object}
*/
serialize(value, options) {
let result = {};
const result = {};

for (let key of Object.keys(value)) {
for (const key of Object.keys(value)) {
result[key] = this.field.serialize(value[key], options);
}

Expand Down
2 changes: 1 addition & 1 deletion lib/fields/string.js
Expand Up @@ -6,7 +6,7 @@ const Field = require('./field');
* A text field. Accepts any string.
*
* @example
* let field = new StringField({ maxLength: 3 });
* const field = new StringField({ maxLength: 3 });
*
* field.deserialize('123'); // returns "123"
* field.deserialize(123); // throws validation error
Expand Down
22 changes: 11 additions & 11 deletions lib/model.js
Expand Up @@ -89,13 +89,13 @@ class Model {
static deserialize(data, options) {
options = options || {};

let result = {};
let errors = {};
const result = {};
const errors = {};

// Deserialize values
for (let key of Object.keys(this.fields)) {
let field = this.fields[key];
let value = data[key];
for (const key of Object.keys(this.fields)) {
const field = this.fields[key];
const value = data[key];

try {
if (field.isBlank(value)) {
Expand Down Expand Up @@ -132,11 +132,11 @@ class Model {
static serialize(data, options) {
options = options || {};

let result = {};
const result = {};

for (let key of Object.keys(this.fields)) {
let field = this.fields[key];
let value = data[key];
for (const key of Object.keys(this.fields)) {
const field = this.fields[key];
const value = data[key];

if (field.isBlank(value)) {
if (!options.partial) {
Expand All @@ -158,13 +158,13 @@ class Model {
*/
static extend(fields) {
// Create new class
let Cls = class extends this {};
const Cls = class extends this {};

// Create fields property
Cls.fields = Object.assign({}, this.fields);

// Copy fields to fields property
for (let key of Object.keys(fields)) {
for (const key of Object.keys(fields)) {
if (fields[key] instanceof Field) {
Cls.fields[key] = fields[key];
} else {
Expand Down
68 changes: 34 additions & 34 deletions test/fields/array-spec.js
Expand Up @@ -11,16 +11,16 @@ chai.use(spies);
describe('ArrayField', function() {
describe('constructor', function() {
it('should create new instance of field using specified field', function() {
let field = new Field();
let arrayField = new ArrayField(field);
const field = new Field();
const arrayField = new ArrayField(field);

expect(arrayField).to.be.instanceOf(Field);
expect(arrayField).to.be.instanceOf(ArrayField);
expect(arrayField).to.have.property('field', field);
});

it('should create new instance of field when all params are specified', function () {
let field = new ArrayField(new Field(), {
const field = new ArrayField(new Field(), {
blank: true,
default: [ 1, 2 ],
minLength: 1,
Expand All @@ -32,7 +32,7 @@ describe('ArrayField', function() {
});

it('should throw error when field is not specified', function() {
let call = () => new ArrayField();
const call = () => new ArrayField();

expect(call).to.throw('Field is missing');
});
Expand All @@ -44,25 +44,25 @@ describe('ArrayField', function() {
deserialize() { return true }
}

let field = new ArrayField(new CustomField());
const field = new ArrayField(new CustomField());

let result = field.deserialize([ 1, 2 ]);
const result = field.deserialize([ 1, 2 ]);

expect(result).to.be.deep.equal([ true, true ]);
});

it('should deserialize empty array', function () {
let field = new ArrayField(new Field());
const field = new ArrayField(new Field());

let result = field.deserialize([]);
const result = field.deserialize([]);

expect(result).to.be.deep.equal([]);
});

it('should throw error when value is not an array', function() {
let field = new ArrayField(new Field());
const field = new ArrayField(new Field());

let call = () => field.deserialize(123);
const call = () => field.deserialize(123);

expect(call).to.throw(Field.ValidationError, 'Value must be an array');
});
Expand All @@ -72,7 +72,7 @@ describe('ArrayField', function() {
deserialize(v) { throw new Field.ValidationError(v) }
}

let field = new ArrayField(new InvalidField());
const field = new ArrayField(new InvalidField());

try {
field.deserialize([ 1, 2 ]);
Expand All @@ -84,62 +84,62 @@ describe('ArrayField', function() {
});

it('should not intercept errors other than ValidationError', function () {
let error = new Error();
const error = new Error();

class InvalidField extends Field {
deserialize(v) { throw error }
}

let field = new ArrayField(new InvalidField());
const field = new ArrayField(new InvalidField());

let call = () => field.deserialize([ 1 ]);
const call = () => field.deserialize([ 1 ]);

expect(call).to.throw(error);
});

it('should throw error array\'s length is less than min length', function() {
let field = new ArrayField(new Field(), { minLength: 2 });
const field = new ArrayField(new Field(), { minLength: 2 });

let call = () => field.deserialize([ 1 ]);
const call = () => field.deserialize([ 1 ]);

expect(call).to.throw(Field.ValidationError, 'Value must have at least 2 elements');
});

it('should throw when array\'s length is greater than than max length', function() {
let field = new ArrayField(new Field(), { maxLength: 2 });
const field = new ArrayField(new Field(), { maxLength: 2 });

let call = () => field.deserialize([ 1, 2, 3 ]);
const call = () => field.deserialize([ 1, 2, 3 ]);

expect(call).to.throw(Field.ValidationError, 'Value must have at most 2 elements');
});

it('should not throw when array\'s length is less than or equal to max length', function() {
let field = new ArrayField(new Field(), { maxLength: 2 });
const field = new ArrayField(new Field(), { maxLength: 2 });

let call1 = () => field.deserialize([ 1, 2 ]);
let call2 = () => field.deserialize([ 1 ]);
const call1 = () => field.deserialize([ 1, 2 ]);
const call2 = () => field.deserialize([ 1 ]);

expect(call1).to.not.throw();
expect(call2).to.not.throw();
});

it('should not throw when array\'s length is greater than or equal to min length', function() {
let field = new ArrayField(new Field(), { minLength: 2 });
const field = new ArrayField(new Field(), { minLength: 2 });

let call1 = () => field.deserialize([ 1, 2, 3 ]);
let call2 = () => field.deserialize([ 1, 2 ]);
const call1 = () => field.deserialize([ 1, 2, 3 ]);
const call2 = () => field.deserialize([ 1, 2 ]);

expect(call1).to.not.throw();
expect(call2).to.not.throw();
});

it('should pass specified options to child-field\'s deserialize method', function () {
let childField = new Field();
let arrayField = new ArrayField(childField);
const childField = new Field();
const arrayField = new ArrayField(childField);

childField.deserialize = chai.spy();

let opts = { option: 'option' };
const opts = { option: 'option' };

arrayField.deserialize([ 1 ], opts);

Expand All @@ -153,28 +153,28 @@ describe('ArrayField', function() {
serialize() { return true }
}

let field = new ArrayField(new CustomField());
const field = new ArrayField(new CustomField());

let result = field.serialize([ 1, 2 ]);
const result = field.serialize([ 1, 2 ]);

expect(result).to.be.deep.equal([ true, true ]);
});

it('should deserialize empty array', function () {
let field = new ArrayField(new Field());
const field = new ArrayField(new Field());

let result = field.serialize([]);
const result = field.serialize([]);

expect(result).to.be.deep.equal([]);
});

it('should pass specified options to child-field\'s serialize method', function () {
let childField = new Field();
let arrayField = new ArrayField(childField);
const childField = new Field();
const arrayField = new ArrayField(childField);

childField.serialize = chai.spy();

let opts = { option: 'option' };
const opts = { option: 'option' };

arrayField.serialize([ 1 ], opts);

Expand Down

0 comments on commit e381abc

Please sign in to comment.