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

js-key-validator

v1.0.18

Published

Javascript key validator

Downloads

28

Readme

js-key-validator

The js-key-validator package provides a utility function called keyValidator for validating values based on their type and options.

Table of Contents

Motivation

The js-key-validator library was created with the aim of simplifying the handling of undefined and null values in JavaScript. Many developers often encounter scenarios where they need to perform checks for these values before proceeding with further logic. This repetitive task can lead to code clutter and decreased readability.

The keyValidator function provided by this library offers a streamlined solution to validate values and handle potential undefined and null cases more efficiently. By encapsulating the validation logic within a single function, the need for lengthy and repetitive code blocks is significantly reduced.

Installation

You can install js-key-validator using npm:

npm install js-key-validator

Usage

To use the keyValidator function, import it into your JavaScript file:

import keyValidator from "js-key-validator";

const obj = {
  name: "John",
  age: 30,
  active: true,
  phones: {
    home: "123456789",
    work: "333444555",
  },
};

Parameters

The keyValidator function accepts the following parameters:

| Parameter | Type | Description | | --------- | ---------------- | --------------------------------------------- | | value | any | The value to be validated. | | type | string | The type of validation to perform. | | options | string | object | The path within the object for validation or The options for the validation.|

The available types and their corresponding options are as follows:

isString

| Option | Type | Description | | ------------ | ---------------- | --------------------------------------------------------------------- | | path | string |The path within the object for validation, representing the nested property path.| | minLength | number | Specifies the minimum length of the string (optional). | | maxLength | number | Specifies the maximum length of the string (optional). | | regex | RegExp | Specifies a regular expression pattern that the string must match (optional). |

// Check if object has name and it is a string
const validateName = keyValidator(obj, "isString", "name");

console.log(validateName.isValid); // Output: true
console.log(validateName.value); // Output: John

isNumber

| Option | Type | Description | | --------------- | ---------------- | ------------------------------------------------------------------------------- | | path | string | The path within the object for validation, representing the nested property path. | | min | number | Specifies the minimum value of the number (optional). | | max | number | Specifies the maximum value of the number (optional). | | integerOnly | boolean | Specifies whether the number must be an integer (optional). | | evenOnly | boolean | Specifies whether the number must be even (optional). | | oddOnly | boolean | Specifies whether the number must be odd (optional). | | positiveOnly | boolean | Specifies whether the number must be positive (optional). | | negativeOnly | boolean | Specifies whether the number must be negative (optional). |

// Check if age is a number
const validateAge = keyValidator(obj, "isNumber", "age");

console.log(validateAge.isValid); // Output: true
console.log(validateAge.value); // Output: 30

isBoolean

| Option | Type | Description | | ------------ | ---------------- | --------------------------------------------------------------------- | | path | string | The path within the object for validation, representing the nested property path. |

isURL

Validates if the value is a URL.

| Option | Type | Description | | ------------ | ---------------- | --------------------------------------------------------------------- | | path | string | The path within the object for validation, representing the nested property path. |

isEmail

Validates if the value is an email.

| Option | Type | Description | | ------------ | ---------------- | --------------------------------------------------------------------- | | path | string | The path within the object for validation, representing the nested property path. |

You can use these options to customize the validation behavior according to your specific requirements.

Roadmap and Contributions

The js-key-validator library is currently in progress, and there are more features and enhancements planned for the future. Your feedback, suggestions, and contributions are highly appreciated.

If you have any ideas for additional functionalities or improvements, please feel free to open an issue on the GitHub repository. Your input will help shape the future development of the library.

We welcome contributions from the community. If you would like to contribute to the project, please refer to the contribution guidelines for more information on how to get involved.

Together, we can make js-key-validator even better and more versatile!