fullfiller
Version:
Feature-rich filler text generator.
46 lines (35 loc) • 1.34 kB
text/typescript
import {
quantityNotNumber,
quantityTooSmall,
} from 'fullfiller-common/src/errorMessages';
import { unitType, breakdownOptionType } from 'fullfiller-common/src/types';
function getType(value: unknown) {
return Array.isArray(value) ? 'array' : typeof value;
}
function validateQuantity(
quantity: number,
unit: unitType,
sentencesPerParagraph: breakdownOptionType,
wordsPerSentence: breakdownOptionType
): string[] {
const errors: string[] = [];
const type = getType(quantity);
if (type !== 'number' || Number.isNaN(quantity)) {
errors.push(quantityNotNumber);
}
// if (type === 'number' && (unit === 'words' || unit === 'paragraphs')) {
// const wordsPerParagraphMin =
// sentencesPerParagraphDefault.min * wordsPerSentenceDefault.min;
// const minimumQuantityAllowed = unit === 'words' ? wordsPerParagraphMin : 1;
// if (quantity < minimumQuantityAllowed) {
// errors.push(quantityTooSmall(minimumQuantityAllowed));
if (type === 'number' && (unit === 'words' || unit === 'paragraphs')) {
const minimumQuantityAllowed =
unit === 'words' ? sentencesPerParagraph.min * wordsPerSentence.min : 1;
if (quantity < minimumQuantityAllowed) {
errors.push(quantityTooSmall(minimumQuantityAllowed));
}
}
return errors;
}
export default validateQuantity;