@bradleyhodges/swiss
v5.1.3
Published
Powerful utility functions for Next.js, Vercel, and React - your Swiss Army Knife for Next development.
Readme
TailwindCSS Utilities
This package provides a set of utilities for working with TailwindCSS.
cn (Class Names)
This utility function is used to concatenate class names together. The utility will clean up the class names, order them per TailwindCSS guidelines, and automatically resolve conflicting classes. It can accept an array of class names or a string of class names, and will resolve them accordingly without fuss.
import { cn } from '@advena/swiss/tailwind';
return (
<div className={cn('text-center text-blue-500 text-center text-red-500')}>
Hello World
</div>
);
// Output: <div className="text-red-500 text-center">Hello World</div>
return (
<div className={cn('text-center text-blue-500 text-center text-red-500', 'text-left font-bold')}>
Hello World
</div>
);
// Output: <div className="font-bold text-red-500 text-center">Hello World</div>hexToRgb
This utility function is used to convert a hex color to an RGB color. It can accept a hex color string with or without the # symbol.
import { hexToRgb } from '@advena/swiss/tailwind';
hexToRgb('#ff0000'); // { r: 255, g: 0, b: 0 }String Utilities
This package provides a set of utilities for working with strings.
Capitalize
Capitalizes all characters in a string.
import { capitalize } from '@advena/swiss/string';
capitalize('hello world'); // HELLO WORLDLowercase
Converts all characters in a string to lowercase.
import { lowercase } from '@advena/swiss/string';
lowercase('HELLO WORLD'); // hello worldProper Case
Converts the first character of each word in a string to uppercase.
import { properCase } from '@advena/swiss/string';
properCase('hello world'); // Hello WorldCapitalize First
Converts the first character of a string to uppercase.
import { capitalizeFirst } from '@advena/swiss/string';
capitalizeFirst('hello world'); // Hello worldDateTime Utilities
This package provides a set of utilities for working with dates and times.
dayjs
This utility is a wrapper around the dayjs library. It provides a set of functions for working with dates and times.
The dayjs export initializes and configures a dayjs instance with automatic localization and timezone support. Extensive documentation is available on the dayjs website.
import { dayjs } from '@advena/swiss/datetime';
dayjs().format('YYYY-MM-DD'); // 2022-01-01HIBP (Have I Been Pwned) Utilities
This package provides a set of utilities for working with the Have I Been Pwned API.
checkPassword
This utility securely checks if a password has been compromised in a data breach. It uses the Have I Been Pwned API to check the password against a database of known breaches.
[!IMPORTANT] This utility uses swr. It can only be imported on the client - it will not work with Next.js SSR/SSG and will generate errors.
import { checkPassword } from '@advena/swiss/hibp';
checkPassword('password123').then((result) => {
console.log(result); // { count: 123456, isCompromised: true }
});[!NOTE] This utility does not send the password to the API. Instead, it sends the first 5 characters of a SHA-1 hash of the password (k-anonymity) to the API. The API then returns a list of hashes that match the prefix, and the client checks if the full hash is in the list. No portion of the plaintext password ever leaves the client.
