replay-table
Version:
Visualize sport seasons with interactive standings
52 lines (43 loc) • 1.54 kB
JavaScript
import * as visualizers from './visualizers';
import * as controls from './controls';
import isString from '../helpers/general/is-string';
import parseObject from '../helpers/parsing/parse-object';
import validateObject from '../helpers/validation/validate-object';
import validateArray from '../helpers/validation/validate-array';
export default {
id: {
default: '',
parse: input => input,
validate: isString
},
visualizer: {
default: 'classic',
parse: input => input,
validate: value => visualizers.hasOwnProperty(value)
},
controls: {
default: ['play', 'previous', 'next', 'slider'],
parse: input => input.split(','),
validate: value => validateArray(value, value => controls.hasOwnProperty(value))
},
startFromRound: {
default: null,
parse: input => Number.parseInt(input, 10),
validate: value => !value || !Number.isNaN(value)
},
roundsTotalNumber: {
default: null,
parse: input => Number.parseInt(input, 10) || undefined,
validate: value => !value || !Number.isNaN(value)
},
positionWhenTied: {
default: 'strict',
parse: input => input,
validate: value => ['strict', 'highest', 'range', 'average'].includes(value)
},
animationSpeed: {
default: 1.0,
parse: Number.parseFloat,
validate: value => !Number.isNaN(value) && value > 0.0 && value <= 10.0
}
};