2.0.3 â€Ē Published 2 months ago

tiny-guards v2.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

tiny-guards 💂

A tiny library for advanced typescript guarding

  • ðŸŠķ lightweight

  • 🍃 tree-shakable

  • ðŸ§ą composable

  • ðŸ‘Ū type-safe

  • 🔗 zero dependencies

  • 🌚 dead simple

npm coverage

npm install tiny-guards

Usage example

import {
  gt,
  isNumber,
  isString,
  maxLen,
  oneOf,
  optional,
  refine,
  shape,
  Guard,
} from "tiny-guards";

const isNaturalNumber = refine(isNumber, Number.isSafeInteger, gt(0));
const isShortString = refine(isString, maxLen(16));
const isAccountType = oneOf(["reader", "publisher", "moderator"]);

const isUser = shape({
  id: isNaturalNumber,
  username: isShortString,
  accountType: isAccountType,
  firstName: optional(isString),
  lastName: optional(isString),
});

type User = Guard.Infer<typeof isUser>;

function doSomething(v: unknown) {
  if (isUser(v)) {
    v.id; // ✅
    v.username; // ✅
  }
}
2.0.3

2 months ago

2.0.2

2 months ago

2.0.0

9 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.0-pre.5

1 year ago

0.0.0-pre.4

1 year ago

0.0.0-pre.3

1 year ago

0.0.0-pre.2

1 year ago

0.0.0-pre.1

1 year ago

0.0.0-pre.0

1 year ago

0.0.0-pre

1 year ago