Please give me some feedback about my npm package
Muhammad Sifat Hossain

Muhammad Sifat Hossain @h_sifat

About: A desperate programmer with an unquenchable thirst of knowledge.

Joined:
Jul 30, 2022

Please give me some feedback about my npm package

Publish Date: Aug 23 '22
1 0

Hi everyone, this is my first post on Dev.to and I'm very excited to hear from you guys.

For the last couple of weeks I've been working on a validation library and yesterday I've published the second major version of it on npm. This package was my first npm package.

See it on npm: handy-types

GitHub Repository: handy-types

It's a lite weight validation library that I've developed as a side project to reduce validation boilerplate in my other validation library that I've been working on for the past few months 😅. But I've decided to publish on npm in case others find it useful.

Example Usages (TypeScript):

import { is, assert } from "handy-types";

let value: unknown;

is("integer", value); // false
is("positive_number", value); // false
is("8bit_unsigned_integer", value); // false
is("non_null_object | plain_object", value); // false

if (is<string | string[]>("non_empty_string | non_empty_string[]", value)) {
  value; // here the type of value is: string | string[]
}

// we can use caching for improved performance
if ( is.cache<string | string[]>("non_empty_string | non_empty_string[]", value)) {
  value; // here the type of value is: string | string[]
}

assert("integer", value);
// throws error: `Value must be of type Integer`

assert("integer", value, {
  name: "Age",
  code: "INVALID_AGE",
});
// throws error: `Age must be of type Integer`, with code: "INVALID_AGE"

assert("non_empty_string", value, {
  message: "Invalid path",
  otherInfo: {
    path: value,
    errorId: -3,
  },
});
// throws error: `Invalid path` , with properties path: undefined, errorId: -3

// use caching for improved performance
assert.cache<string | string[]>(
  "non_empty_string | non_empty_string[]",
  value,
  { name: "hobbies" }
); // throws error: "hobbies must of type: Non-Empty String or Non-Empty String Array"
Enter fullscreen mode Exit fullscreen mode

Please refer to the github README for detailed documentation.

Kindly let me know if you think I can improve something. Thanks in advance 💝.

Comments 0 total

    Add comment