npm package: @se-oss/object
Description: A TypeScript-first utility library for JavaScript object operations.
Author: Shahrad Elahi
Latest version: 1.1.0

# @se-oss/object

[![CI](https://github.com/shahradelahi/ts-object/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/shahradelahi/ts-object/actions/workflows/ci.yml)
[![NPM Version](https://img.shields.io/npm/v/@se-oss/object.svg)](https://www.npmjs.com/package/@se-oss/object)
[![MIT License](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](/LICENSE)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@se-oss/object)
[![Install Size](https://packagephobia.com/badge?p=@se-oss/object)](https://packagephobia.com/result?p=@se-oss/object)

_@se-oss/object_ is a TypeScript-first utility library for working with JavaScript objects. It provides a set of immutable-by-default functions designed to be tree-shakable and easy to use.

---

- [Installation](#-installation)
- [Documentation](#-documentation)
- [Contributing](#-contributing)
- [License](#license)

## 📦 Installation

```bash
npm install @se-oss/object
```

<details>
<summary>Install using your favorite package manager</summary>

**pnpm**

```bash
pnpm install @se-oss/object
```

**yarn**

```bash
yarn add @se-oss/object
```

</details>

## 📚 Documentation

This library implements the following object utility functions:

### Accessors & Path Helpers

- [`get`](https://www.jsdocs.io/package/@se-oss/object#get)
- [`has`](https://www.jsdocs.io/package/@se-oss/object#has)
- [`set`](https://www.jsdocs.io/package/@se-oss/object#set)
- [`unset`](https://www.jsdocs.io/package/@se-oss/object#unset)

### Pick/Omit & Selection

- [`pick`](https://www.jsdocs.io/package/@se-oss/object#pick)
- [`omit`](https://www.jsdocs.io/package/@se-oss/object#omit)
- [`omitBy`](https://www.jsdocs.io/package/@se-oss/object#omitBy)
- [`pickBy`](https://www.jsdocs.io/package/@se-oss/object#pickBy)

### Cloning & Immutability Helpers

- [`clone`](https://www.jsdocs.io/package/@se-oss/object#clone)
- [`deepClone`](https://github.com/shahradelahi/ts-deep-clone)

### Deep Utilities

- [`deepEqual`](https://github.com/shahradelahi/ts-deep-equal)
- [`flatten`](https://www.jsdocs.io/package/@se-oss/object#flatten)
- [`unflatten`](https://www.jsdocs.io/package/@se-oss/object#unflatten)

### Merging & Defaults

- [`merge`](https://www.jsdocs.io/package/@se-oss/object#merge)
- [`deepMerge`](https://github.com/shahradelahi/ts-deep-merge)

### Type & Introspection

- [`isEmptyObject`](https://www.jsdocs.io/package/@se-oss/object#isEmptyObject)
- [`isPlainObject`](https://www.jsdocs.io/package/@se-oss/object#isPlainObject)
- [`keys`](https://www.jsdocs.io/package/@se-oss/object#keys)
- [`values`](https://www.jsdocs.io/package/@se-oss/object#values)
- [`removeUndefined`](https://www.jsdocs.io/package/@se-oss/object#removeUndefined)

### Path Utilities

- [`toPath`](https://www.jsdocs.io/package/@se-oss/object#toPath)
- [`joinPath`](https://www.jsdocs.io/package/@se-oss/object#joinPath)

For all configuration options, please see [the API docs](https://www.jsdocs.io/package/@se-oss/object).

## 🤝 Contributing

Want to contribute? Awesome! To show your support is to star the project, or to raise issues on [GitHub](https://github.com/shahradelahi/ts-object).

Thanks again for your support, it is much appreciated! 🙏

## License

[MIT](/LICENSE) © [Shahrad Elahi](https://github.com/shahradelahi) and [contributors](https://github.com/shahradelahi/ts-object/graphs/contributors).