A Flatfile Listener plugin for number validation
npm i @flatfile/plugin-validate-number
The @flatfile/plugin-validate-number
plugin provides comprehensive number validation capabilities for your data import processes. It offers a wide range of validation options to ensure that numeric data meets specific criteria before being accepted.
Event Type:
listener.on('commit:created')
To install the plugin, use npm:
npm install @flatfile/plugin-validate-number
import { FlatfileListener } from '@flatfile/listener';
import { validateNumber } from '@flatfile/plugin-validate-number';
const listener = new FlatfileListener();
listener.use(
validateNumber({
min: 0,
max: 1000,
inclusive: true,
integerOnly: true,
precision: 10,
scale: 2,
currency: true,
step: 5,
thousandsSeparator: ',',
decimalPoint: '.',
specialTypes: ['even'],
round: true
})
);
The validateNumber
accepts a configuration object with the following options:
min
: Minimum allowed valuemax
: Maximum allowed valueinclusive
: Whether the min/max range is inclusiveintegerOnly
: Allow only integer valuesprecision
: Total number of digits allowedscale
: Number of decimal places allowedcurrency
: Validate as a currency valuestep
: Increment value (e.g., multiples of 5)thousandsSeparator
: Character used as thousands separatordecimalPoint
: Character used as decimal pointspecialTypes
: Array of special number types to validate ('prime', 'even', 'odd')round
: Round the number to the nearest integertruncate
: Truncate the decimal part of the numberThe plugin listens for the 'commit:created' event and performs validation on a specified number field (default field name is 'numberField'). It applies the configured validations and throws an error if any validation fails.
The plugin also handles number parsing, considering the specified thousands separator and decimal point. It can optionally round or truncate the number before applying validations.
If all validations pass, the plugin logs a success message. If any validation fails, it logs an error message and throws an error with a descriptive message about the validation failure.