Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
validateString
✓ import { validateString } from 'simple-validators'
✗ import validateString from 'simple-validators'
ESM-only; no default export. Named exports only.
ValidationOptions
✓ import type { ValidationOptions } from 'simple-validators'
✗ import { ValidationOptions } from 'simple-validators'
TypeScript-only type; use `import type` for type-only imports. In CJS (require) it is not available at runtime.
validateObjectKeys
✓ import { validateObjectKeys, validateString, defined, validationError, incrementOptions } from 'simple-validators'
✗ const simple_validators = require('simple-validators'); const validateObjectKeys = simple_validators.validateObjectKeys;
CommonJS require is allowed but not recommended; prefer named ESM imports.
validationError
✓ import { validationError } from 'simple-validators'
✗ import { ValidationError } from 'simple-validators'
Function name is lowercase `validationError`, not the class-like `ValidationError`.
Demonstrates building an Author validator with required id, optional fields, and custom error handling.
import {
defined,
incrementOptions,
validateBoolean,
validateEmail,
validateObjectKeys,
validateString,
validationError,
ValidationOptions,
} from 'simple-validators';
export type Author = {
id: string;
name?: string;
email?: string;
corresponding?: boolean;
};
export function validateAuthor(input: any, opts: ValidationOptions) {
const value = validateObjectKeys(
input,
{ required: ['id'], optional: ['name', 'corresponding', 'email'] },
opts,
);
if (value === undefined) return undefined;
const id = validateString(value.id, {
...incrementOptions('id', opts),
regex: '^[a-z][a-zA-Z0-9]{19}$',
});
if (id === undefined) return undefined;
const output: Author = { id };
if (defined(value.name)) {
output.name = validateString(value.name, incrementOptions('name', opts));
}
if (defined(value.email)) {
output.email = validateEmail(value.email, incrementOptions('email', opts));
}
if (defined(value.corresponding)) {
const correspondingOpts = incrementOptions('corresponding', opts);
if (value.corresponding && !defined(value.email)) {
validationError('corresponding author must have email', correspondingOpts);
}
output.corresponding = validateBoolean(value.corresponding, correspondingOpts);
}
return output;
}
Errors
Common errors & fixes
TypeError: simple_validators.validateObjectKeys is not a function
Using default import instead of named import.
fixChange to import { validateObjectKeys } from 'simple-validators' Uncaught Error: Unable to load author from file
Validation returned undefined; check opts.messages.errors for details.
fixInspect opts.messages.errors array to see specific validation failures.
Cannot find module 'simple-validators' or its corresponding type declarations.
TypeScript cannot resolve the module; likely missing dependency.
fixRun `npm install simple-validators` and ensure tsconfig includes 'node_modules/@types'.
TypeError: Cannot read property 'id' of undefined
validateObjectKeys returned undefined; code accesses value.id without checking.
fixAdd if (value === undefined) return undefined; before accessing properties.
Audit
Dependencies
node:fsoptionalused in example for file reading, but package itself has no dependencies