5.1.2 • Published 10 months ago
safe-data v5.1.2
safe-data
safe-data is a simple library for data validation and parsing.
Installation
npm install --save safe-data
Basic usage
import { validator } from 'safe-data';
enum Priority {
low = 'low',
medium = 'medium',
high = 'high',
};
type Task = {
name: string;
note: string;
tags: string[];
priority: Priority;
completed?: boolean;
completedAt?: Date | null;
};
const taskValidator = validator.shape<Task>({
name: validator.string().notEmpty({ ignoreWhitespace: true }),
note: validator.string(),
tags: validator.array(validator.string().pattern(/^#[a-z]+/i)),
priority: validator.enum(Priority),
completed: validator.boolean().optional(),
completedAt: validator.date().optionalOrNullable(),
});
// Use the task validator to validate data.
// E.g. check HTML form data...
const form = document.getElementById('task-form');
const formData = new FormData(form);
const result = taskValidator.validate({
name: formData.get('name'),
note: formData.get('note'),
tags: formData.get('tags'),
priority: formData.get('priority'),
});
if (result.ok) {
saveTask(result.value);
} else {
console.warn('Invalid task data:', result.error);
}
// ...or a server response.
fetchTask()
.then((res) => taskValidator.parse(res))
.catch((error) => console.error(error));
Optional and null values
All validators are required by default. However, you can use:
optional()
method to acceptundefined
,nullable()
method to acceptnull
,optionalOrNullable()
method to acceptundefined
andnull
.
5.1.2
10 months ago
5.1.1
1 year ago
5.1.0
1 year ago
5.0.0
1 year ago
4.0.1
2 years ago
4.0.0
2 years ago
3.2.1
2 years ago
3.2.0
2 years ago
3.1.1
2 years ago
3.1.0
2 years ago
3.0.0
2 years ago
2.2.0
2 years ago
2.1.1
2 years ago
2.1.0
2 years ago
2.0.1
2 years ago
2.0.0
2 years ago
1.3.0
2 years ago
1.2.0
2 years ago
1.1.0
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago