predicat
v1.1.2
Published
A cute library to create, combine, and enjoy common predicates
Downloads
20
Readme
Predicat
A cute library to create, combine, and enjoy common predicates. 🐱
Installation
Using NPM
$ npm install predicat
Or Yarn
$ yarn add predicat
Or directly to the HTML page right before the closing tag:
<!-- ... other HTML ... -->
<script src="https://unpkg.com/predicat/umd/predicat.js" crossorigin></script> <!-- When deploying, use predicat.min.js -->
</body>
Usage
Available Predicates and Type-Guards
See the detailed documentation here.
Create your own predicate
// In JavaScript
const hasStock = ({ stock }) => stock > 0;
// In TypeScript
const hasStock = ({ stock }: { stock: number }): boolean => stock > 0;
// In TypeScript, you may use the Predicate type for better readability
import { Predicate } from 'predicat';
const hasStock: Predicate<{ stock: number }> = ({ stock }) => stock > 0;
Combine predicates
import { allOf, isNill, not, some } from 'predicat';
const hasStock: Predicate<{ stock: number }> = ({ stock }) => stock > 0;
const myCombinedPredicate: Predicate<{ stock: number }> = allOf(
not(isNill),
hasStock,
);
myCombinedPredicate(undefined); // false
myCombinedPredicate(null); // false
myCombinedPredicate({}); // false
myCombinedPredicate({ stock: 0 }); // false
myCombinedPredicate({ stock: 42 }); // true
// You can also use booleans with combination operators every/allOf and some/oneOf
const myOtherCombinedPredicate: Predicate<void> = some(
false,
() => myGlobalVar < 100,
);
License
Predicat is public domain software. See LICENSE for more details.
Contribute
Please submit a Pull Request! 😺
Commit
# git add, then use
$ yarn commit
Tag and publish
# Merge in master
$ git checkout master && git pull
$ yarn release # Updates package.json, the changelog and creates an annotated git tag
$ git push --follow-tags origin master
# CircleCI will test, build, then publish the new version to NPM and deploy the documentation to the 'gh-pages' branch