2.0.3 âĒ Published 2 months ago
tiny-guards v2.0.3
tiny-guards ð
A tiny library for advanced typescript guarding
ðŠķ lightweight
ð tree-shakable
ð§ą composable
ðŪ type-safe
ð zero dependencies
ð dead simple
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