UNPKG

@kikiutils/node

Version:

A modular utility library for Node.js offering secure hashing, flexible logging, datetime manipulation, and more.

140 lines (90 loc) 3.42 kB
# @kikiutils/node [![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![codecov][codecov-src]][codecov-href] [![License][license-src]][license-href] A modular utility library for Node.js offering secure hashing, flexible logging, datetime manipulation, and more. - [✨ Release Notes](./CHANGELOG.md) ## Features - 📜 Simple and flexible logging with Consola and Pino - 🔒 Secure hash utilities: MD5, SHA3-224, SHA3-256, SHA3-384, SHA3-512 - 📅 Datetime utilities for formatting, ranges, and offsets - 🔢 Enum helpers to extract values - 🌱 Environment variable checker with error handling - 📈 Math utilities like percentage formatting - 💎 Number formatting utilities (e.g. compact representation) - 🔤 String tools such as random string generation - ⚙️ General-purpose utilities like value extractors - 📦 Modular by design — import only what you need via `@kikiutils/node/<module>` ## Requirements - **Node.js** `>= 18.12.1` ## Installation Using [pnpm](https://pnpm.io): ```bash pnpm add @kikiutils/node ``` You can also use `yarn`, `npm`, or `bun`. > [!NOTE] > This package is modular. It does not install all dependencies by default. > > If a utility depends on a third-party package (e.g. `date-fns`), you must install it manually. ## Usage Import the functions or modules you want to use: ```typescript import { logger } from '@kikituils/node/consola'; import { extractFirstValue } from '@kikituils/node/general'; const data = [ 0, 1 ]; const value = extractFirstValue(data); console.log(value); // 0 logger.info(value); ``` ## Modules & Functions Each module file includes function-level comments and usage examples. ### [consola](./src/consola.ts) - Console logger integration ### [crypto-hash](./src/crypto-hash.ts) - `cryptoMd5`, `cryptoMd5ToBuffer` - `cryptoSha3224`, `cryptoSha3224ToBuffer` - `cryptoSha3256`, `cryptoSha3256ToBuffer` - `cryptoSha3384`, `cryptoSha3384ToBuffer` - `cryptoSha3512`, `cryptoSha3512ToBuffer` ### [datetime](./src/datetime.ts) - `formatDate` - `getDateRangeFromDate` - `getMidnightDateFromToday` ### [enum](./src/enum.ts) - `getEnumStringValues` - `getEnumNumberValues` ### [env](./src/env.ts) - `checkAndGetEnvValue` ### [general](./src/general.ts) - `extractFirstValue` ### [hash](./src/hash.ts) - `sha3224` - `sha3256` - `sha3384` - `sha3512` ### [math](./src/math.ts) - `toPercentageString` ### [number](./src/number.ts) - `toCompactNumberString` ### [pino](./src/pino.ts) - Pino logger integration ### [random](./src/random.ts) - `generateWithNestedRandomLength` ### [string](./src/string.ts) - `randomString` ## License [MIT License](./LICENSE) <!-- Badges --> [npm-version-href]: https://npmjs.com/package/@kikiutils/node [npm-version-src]: https://img.shields.io/npm/v/@kikiutils/node/latest.svg?style=flat&colorA=18181B&colorB=28CF8D [npm-downloads-href]: https://npmjs.com/package/@kikiutils/node [npm-downloads-src]: https://img.shields.io/npm/dm/@kikiutils/node.svg?style=flat&colorA=18181B&colorB=28CF8D [codecov-href]: https://codecov.io/github/kikiutils/node [codecov-src]: https://codecov.io/github/kikiutils/node/graph/badge.svg?token=GRSQ7JO39E [license-href]: https://github.com/kikiutils/node/blob/main/LICENSE [license-src]: https://img.shields.io/npm/l/@kikiutils/node.svg?style=flat&colorA=18181B&colorB=28CF8D