fj
flunt-js
npm i flunt-js
fj

flunt-js

Library for notifications and validations

by Jhones da Silva Gonçalves

1.0.6 (see all)License:MITTypeScript:Not Found
npm i flunt-js
Readme

FluntJS

Build Status Coverage Status License: MIT

What is Flunt?

Inspired in Flunt, Every app has business rules and validations, and you probably will need to keep all the errors and notifications that happened and send it to somewhere, maybe to your UI.

Flunt implements the Notification Pattern and helps you to track everything that happend, consolidating your notifications and making it easy to access and manipulate.

Installation

$ npm install flunt-js --save

How to use

ES6


import Flunt from 'flunt-js';

// extends your class to Flunt.Notifiable
class Customer extends Flunt.Notifiable{

  constructor(name, lastname, age){
    super()
    this.name = name;
    this.lastname = lastname;
    this.age = age;

    super.AddNotifications(
      new Flunt.Contract()
        .isRequired(name, "Name", "Name is required")
        .isRequired(lastname, "Lastname", "Lastname is required")
        .isGreaterThan(age, 18, "Age", "You need more than 18 years")
    )
  }
}

// instance class
var customer = new Customer(null, "Goncalves", 10);

// take your messages
customer.notifications.forEach(element => {
  console.log(element.message)
});

//take all notifications
console.log(customer.notifications)

ES5


const Flunt = require('flunt-js');

// extends your class to Flunt.Notifiable
class Customer extends Flunt.Notifiable{

  constructor(name, lastname, age){
    super()
    this.name = name;
    this.lastname = lastname;
    this.age = age;

    super.AddNotifications(
      new Flunt.Contract()
        .isRequired(name, "Name", "Name is required")
        .isRequired(lastname, "Lastname", "Lastname is required")
        .isGreaterThan(age, 18, "Age", "You need more than 18 years")
    )
  }
}

// To use class
module.exports = Customer

// instance class
var customer = new Customer(null, "Goncalves", 10);

// take your messages
customer.notifications.forEach(element => {
  console.log(element.message)
});

//take all notifications
console.log(customer.notifications)

Methods

Follow the methods that the library provides.

Contract

Validations methods.

--

Example

isRequired(value, property, message)
hasMinLen(value, min,property, message)
hasMaxLen(value, max, property, message)
isFixedLen(value, len, property, message)
isEmail(value, property, message)
IsGreaterThan(val, comparer, property, message)

//To get messages and notifications
getNotifications()
getMessages()

// To know if is valid
isValid()

Notifiable

Class turn another class notifiable and works with flunt.

--

Example

AddNotification(property, message)
AddNotifications(contract)

// To get messages
getMessages()

// To know if is valid
isValid()

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

Jhones Gonçalves
Jhones Gonçalves

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Downloads/wk

13

GitHub Stars

17

LAST COMMIT

3yrs ago

MAINTAINERS

1

CONTRIBUTORS

1

OPEN ISSUES

0

OPEN PRs

13
VersionTagPublished
1.0.6
latest
3yrs ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate