npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@onibi/sanitize

v2.1.2

Published

Basic input validation tools with rich error messages.

Downloads

14

Readme

@onibi/sanitize

Basic input validation tools, although the package does provide some sanitization and is called sanitize for historic reasons, this package should be viewed mostly as a tool for user input validation and is focused on providing descriptive and useful error messages which have built in methods for converting to a HttpError from the @onibi/errors package for seamless integration into express.js based REST API's.

Usage examples

import sanitize from '@onibi/sanitize';

// Sanitizers have flexible settings that avoid throwing errors by default.
let x = sanitize.int.signed(34.7);     // Rounded to 35
let x = sanitize.int.unsigned(-73);    // Clamped to 0.
let y = sanitize.int.unsigned(null);   // Defaults to 0

Express integration

All SanitizerError types implement the ToHttpError interface from @onibi/errors, which means that they can be converted http errors that can be caught and converted to JSON by the @onibi/errorhandler.

Basic documentation

Listed below is a basic list of sanitizer functions to help you get started, checkout the full documentation on GitHub for more details like the specific rules to change the sanitizer behaviour.

| Function | Description | | :------- | :---------- | | int | Basic integer sanitizer, note that this is just an alias for int.signed. | int.signed | Signed integers, will round numbers to the nearest whole number and default to 0 for non numeric types. | int.unsigned | Unsigned integers, based on the signed integers parser but will clamp any negative input to 0. | int.ranged | Ranged integers, will clamp any input to integers within the given range. | bool | Basic boolean sanitizer, will convert input like "Yes" or "TRUE" to true and input like "No" or "FALSE" to false, note that you might want to customize the rules for stricter behavior. | enums | Basic enum sanitizer, will try to convert the given input to one of the provided enum values. | email | Email address, note that this is just an alias for email.htmlInput. | email.rfc5322 | RFC5322 email address, will throw an error for any strings that are not valid email addresses according to the RFC5322 specification. | email.htmlInput | Email address, will throw an error for any email address that would not be valid according to the checks used by the HTML <input type="email"> element, note that this is stricter than email.rfc5322 and will not allow technically valid emails like john.doe@[84.39.39.29]. | | uuid | UUID string sanitizer, will throw an error by default, but can also be provided with a default value or generator function.