Skip to content

Commit

Permalink
Migrate switch statement to function statement
Browse files Browse the repository at this point in the history
  • Loading branch information
kzhrk committed Oct 1, 2018
1 parent 778ee53 commit 184c8e5
Show file tree
Hide file tree
Showing 50 changed files with 554 additions and 409 deletions.
413 changes: 4 additions & 409 deletions src/index.js

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions src/validation/activedescendant.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isId(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/atomic.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value)) {
throw new Error(config.messages.valueIsBoolean);
}
};
7 changes: 7 additions & 0 deletions src/validation/autocomplete.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (!/inline|list|both|none/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/busy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value)) {
throw new Error(config.messages.valueIsBoolean);
}
};
12 changes: 12 additions & 0 deletions src/validation/checked.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (
!util.isBoolean(value) &&
!/mixed/.test(value) &&
typeof value !== 'undefined'
) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/colcount.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isNumber(value)) {
throw new Error(config.messages.invalidValue);
}
};
10 changes: 10 additions & 0 deletions src/validation/colindex.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isNumber(value)) {
throw new Error(config.messages.invalidValue);
} else if (value < 1) {
throw new Error(config.messages.invalidValue);
}
};
10 changes: 10 additions & 0 deletions src/validation/colspan.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isNumber(value)) {
throw new Error(config.messages.invalidValue);
} else if (value < 1) {
throw new Error(config.messages.invalidValue);
}
};
18 changes: 18 additions & 0 deletions src/validation/controls.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (typeof value === 'string' || typeof value === 'number') {
value = '' + value;
value
.replace(/\s+/g, ' ')
.split(' ')
.forEach(val => {
if (!util.isId(val)) {
throw new Error(config.messages.invalidValue);
}
});
} else {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/current.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && !/page|step|location|date|time/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
18 changes: 18 additions & 0 deletions src/validation/describedby.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (typeof value === 'string' || typeof value === 'number') {
value = '' + value;
value
.replace(/\s+/g, ' ')
.split(' ')
.forEach(val => {
if (!util.isId(val)) {
throw new Error(config.messages.invalidValue);
}
});
} else {
throw new Error(config.messages.invalidValue);
}
};
13 changes: 13 additions & 0 deletions src/validation/details.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (typeof value === 'string' || typeof value === 'number') {
value = '' + value;
if (!util.isId(value)) {
throw new Error(config.messages.invalidValue);
}
} else {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/disabled.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value)) {
throw new Error(config.messages.invalidValue);
}
};
7 changes: 7 additions & 0 deletions src/validation/dropeffect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (!/copy|execute|link|move|none|popup/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/errormessage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isId(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/expanded.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && typeof value !== 'undefined') {
throw new Error(config.messages.invalidValue);
}
};
18 changes: 18 additions & 0 deletions src/validation/flowto.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (typeof value === 'string' || typeof value === 'number') {
value = '' + value;
value
.replace(/\s+/g, ' ')
.split(' ')
.forEach(val => {
if (!util.isId(val)) {
throw new Error(config.messages.invalidValue);
}
});
} else {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/grabbed.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && typeof value !== 'undefined') {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/haspopup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && !/menu|listbox|tree|grid|dialog/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/hidden.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && typeof value !== 'undefined') {
throw new Error(config.messages.invalidValue);
}
};
109 changes: 109 additions & 0 deletions src/validation/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
const activedescendant = require('./activedescendant');
const atomic = require('./atomic');
const autocomplete = require('./autocomplete');
const busy = require('./busy');
const checked = require('./checked');
const colcount = require('./colcount');
const colindex = require('./colindex');
const colspan = require('./colspan');
const controls = require('./controls');
const current = require('./current');
const describedby = require('./describedby');
const details = require('./details');
const disabled = require('./disabled');
const dropeffect = require('./dropeffect');
const errormessage = require('./errormessage');
const expanded = require('./expanded');
const flowto = require('./flowto');
const grabbed = require('./grabbed');
const haspopup = require('./haspopup');
const hidden = require('./hidden');
const invalid = require('./invalid');
const keyshortcuts = require('./keyshortcuts');
const label = require('./label');
const labelledby = require('./labelledby');
const level = require('./level');
const live = require('./live');
const modal = require('./modal');
const multiline = require('./multiline');
const multiselectable = require('./multiselectable');
const orientation = require('./orientation');
const owns = require('./owns');
const placeholder = require('./placeholder');
const posinset = require('./posinset');
const pressed = require('./pressed');
const readonly = require('./readonly');
const relevant = require('./relevant');
const required = require('./required');
const roledescription = require('./roledescription');
const rowcount = require('./rowcount');
const rowindex = require('./rowindex');
const rowspan = require('./rowspan');
const selected = require('./selected');
const setsize = require('./setsize');
const sort = require('./sort');
const valuemax = require('./valuemax');
const valuemin = require('./valuemin');
const valuenow = require('./valuenow');
const valuetext = require('./valuetext');

const createValidation = handlers => {
return function validation(type, value) {
if (handlers.hasOwnProperty(type)) {
return handlers[type](value);
} else {
return new Error();
}
};
};

module.exports = createValidation({
activedescendant,
atomic,
autocomplete,
busy,
checked,
colcount,
colindex,
colspan,
controls,
current,
describedby,
details,
disabled,
dropeffect,
errormessage,
expanded,
flowto,
grabbed,
haspopup,
hidden,
invalid,
keyshortcuts,
label,
labelledby,
level,
live,
modal,
multiline,
multiselectable,
orientation,
owns,
placeholder,
posinset,
pressed,
readonly,
relevant,
required,
roledescription,
rowcount,
rowindex,
rowspan,
selected,
setsize,
sort,
valuemax,
valuemin,
valuenow,
valuetext
});
8 changes: 8 additions & 0 deletions src/validation/invalid.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value) && !/grammar|spelling/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
7 changes: 7 additions & 0 deletions src/validation/keyshortcuts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (typeof value !== 'string') {
throw new Error(config.messages.invalidValue);
}
};
7 changes: 7 additions & 0 deletions src/validation/label.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (typeof value !== 'string') {
throw new Error(config.messages.invalidValue);
}
};
18 changes: 18 additions & 0 deletions src/validation/labelledby.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (typeof value === 'string' || typeof value === 'number') {
value = '' + value;
value
.replace(/\s+/g, ' ')
.split(' ')
.forEach(val => {
if (!util.isId(val)) {
throw new Error(config.messages.invalidValue);
}
});
} else {
throw new Error(config.messages.invalidValue);
}
};
7 changes: 7 additions & 0 deletions src/validation/level.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (typeof value !== 'number') {
throw new Error(config.messages.invalidValue);
}
};
7 changes: 7 additions & 0 deletions src/validation/live.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = require('../config');

module.exports = value => {
if (!/assertive|off|polite/.test(value)) {
throw new Error(config.messages.invalidValue);
}
};
8 changes: 8 additions & 0 deletions src/validation/modal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const config = require('../config');
const util = require('../util');

module.exports = value => {
if (!util.isBoolean(value)) {
throw new Error(config.messages.invalidValue);
}
};
Loading

0 comments on commit 184c8e5

Please sign in to comment.