1.1.2 • Published 3 years ago

predicat v1.1.2

Weekly downloads
67
License
Unlicense
Repository
github
Last release
3 years ago

Predicat

A cute library to create, combine, and enjoy common predicates. 🐱

Maintenance Build status Coverage Code quality Dependencies

Npm version Package size License Documentation Changelog

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
1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.0-beta.0

3 years ago

1.0.4-beta.0

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.6.0

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.7

3 years ago

0.3.0

3 years ago

0.1.1

3 years ago

0.3.1

3 years ago

0.1.0

3 years ago