UNPKG

@nasriya/atomix

Version:

Composable helper functions for building reliable systems

88 lines (72 loc) 4.7 kB
[![N|Solid](https://static.wixstatic.com/media/72ffe6_da8d2142d49c42b29c96ba80c8a91a6c~mv2.png)](https://nasriya.net) # Atomix. [![NPM License](https://img.shields.io/npm/l/%40nasriya%2Fatomix?color=lightgreen)](https://github.com/nasriyasoftware/Atomix?tab=License-1-ov-file) ![NPM Version](https://img.shields.io/npm/v/%40nasriya%2Fatomix) ![NPM Unpacked Size](https://img.shields.io/npm/unpacked-size/%40nasriya%2Fatomix) ![Last Commit](https://img.shields.io/github/last-commit/nasriyasoftware/Atomix.svg) [![Status](https://img.shields.io/badge/Status-Stable-lightgreen.svg)](link-to-your-status-page) ##### Visit us at [www.nasriya.net](https://nasriya.net). Made with ❤️ in **Palestine** 🇵🇸 ___ ### Overview A lightweight, zero-dependency utility library for TypeScript and JavaScript, providing modular, well-typed helpers across common domains like strings, arrays, numbers, and time. Designed for consistency, reusability, and seamless integration in Node.js and modern server-side environments. > [!IMPORTANT] > > 🌟 **Support Our Open-Source Development!** 🌟 > We need your support to keep our projects going! If you find our work valuable, please consider contributing. Your support helps us continue to develop and maintain these tools. > > **[Click here to support us!](https://fund.nasriya.net/)** > > Every contribution, big or small, makes a difference. Thank you for your generosity and support! ___ ### Installation ```shell npm i @nasriya/atomix ``` ### Importing Import in **ES6** module ```ts import atomix from '@nasriya/atomix'; ``` Import in **CommonJS (CJS)** ```js const atomix = require('@nasriya/atomix').default; ``` ___ ## Usage Overview Import the default instance and use the modular helper methods grouped by domain: Here's a quick example: ```ts import atomix from '@nasriya/atomix'; // Normalize a file path const normalizedPath = atomix.path.normalizePath('/Users/Ahmad/Docs/../Downloads'); // Check if a value is a string if (atomix.valueIs.string('hello world')) { console.log('Confirmed string!'); } ``` ### Detailed Domain Usage You can access each domain via the main `atomix` instance followed by the domain name. For example: ```ts atomix.dataTypes; // Access the Data Types domain atomix.valueIs; // Access the Value Is domain for generic validations atomix.fs; // Access the File System domain ``` | Domain (Module) | Description | Examples | | ------------------------ | ------------------------------------------------------------------------------------------ | --------------------------------------------- | | Data Types (`dataTypes`) | Helpers for `arrays`, `strings`, `numbers`, and more | [Examples](./examples/dataTypes/dataTypes.md) | | Value Is (`valueIs`) | Generic validations & type guards across multiple domains, including `instanceOf` and more | [Examples](./examples/valueIs.md) | | Path (`path`) | File and directory path utilities | [Examples](./examples/path.md) | | File System (`fs`) | Sync and async file operations, access checks | [Examples](./examples/fs.md) | | HTTP (`http`) | HTTP request/response utilities | [Examples](./examples/http.md) | | Network (`networks`) | Network utilities | [Examples](./examples/networks.md) | | Runtime (`runtime`) | Runtime environment helpers | [Examples](./examples/runtime.md) | | General (`utils`) | Common utilities and guards | [Examples](./examples/utils.md) | | Tools (`tools`) | Advanced utility classes such as `TasksQueue` for managing async workflows | [Examples](./examples/tools/tools.md) | --- ## Compatibility This package is built and tested on **Node.js v22.16.x** and later. Earlier versions of Node.js are not guaranteed to be compatible. Also supports: - Bun (tested on v1.2.15+) - Deno (untested, may require polyfills) ___ ## License This software is licensed under the **Nasriya Open License (NOL)**, version 1.0. Please read the license from [here](https://github.com/nasriyasoftware/Atomix?tab=License-1-ov-file).