@flatfile/plugin-validate-number
v0.3.0
Published
A Flatfile Listener plugin for number validation
Downloads
173
Readme
@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')
Features
- Min/Max value validation
- Integer-only validation
- Precision and scale validation
- Currency formatting validation
- Step (increment) validation
- Special number type validation (prime, even, odd)
- Rounding and truncation options
- Customizable thousands separator and decimal point
- Inclusive/exclusive range validation
Installation
To install the plugin, use npm:
npm install @flatfile/plugin-validate-number
Example Usage
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,
fields: ['numberField']
})
);
Configuration
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 numberfields
: Array of field names to apply the validation tosheetSlug
: The slug of the sheet to apply the validation to
Behavior
The 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.