1.0.1 • Published 2 years ago

popsoda v1.0.1

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

pop pop

GitHub code size in bytes GitHub issues Version Build

Deliciously simple validation library... popsoda helps you create:

  • Concise human-readable validations
  • Reusable code patterns
  • Easy to extend features

🥤 Getting Started

Install popsoda:

yarn add popsoda
// or npm i popsoda

Using popsoda is easy...

Use popsoda directly, all validations return booleans. Use .check() to store validation errors until the end.

const {PopSoda} = require("popsoda");

const groceries = [
    "apples",
    "bananas",
    "coffee",
]

const pop = new PopSoda();

// Check that all items are unique
pop.check(pop.unique(groceries), "unique", "groceries items must be unique")

// Check if 'coffee' is in our groceries list
pop.check(pop.in("coffee", groceries), "coffee", "groceries must include coffee")

// Check if our pattern matches item 0
pop.check(pop.matches(groceries[0], "apples"), "apples", "first item must be apples")

// Do your own thing!
pop.check(groceries.length > 0, "groceries", "must be > 0")

console.log(pop.valid())

// > true

Make it re-usable!

const {PopSoda} = require("popsoda");

type Form = {
  name: string,
  age: number,
  hobbies: string[],
}

const ValidateForm = (p: Popsoda, f: Form): boolean => {
  p.check(f.name !== "", "name", "must be provided")
  p.check(f.name.length > 3, "name", "must be longer than 3 characters")
  p.check(f.age >= 18, "name", "must be 18 or older")
  p.check(p.unique(f.hobbies), "hobbies", "must be unique")
  p.check(p.in("coding", f.hobbies), "hobbies", "must include coding")
}

const form1 = {
    name: 'ari',
    age: 5,
    hobbies: [
        'yoghurt',
        'collage',
        'pac-man'
    ]
}

const pop = new PopSoda()
ValidateForm(pop, form)

console.log(pop.valid())

// > false

Made by Ari ❤️ view on npm

1.0.1

2 years ago

1.0.0

2 years ago