# immutabled

> [![codecov](https://codecov.io/gh/leonp1991/immutabled/branch/master/graph/badge.svg)](https://codecov.io/gh/leonp1991/immutabled)

Latest version **0.0.11** (published 2017-05-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install immutabled
pnpm add immutabled
yarn add immutabled
bun add immutabled
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.11 |
| Published | 2017-05-01 |
| First published | 2017-04-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | leon.pearce |
| Keywords | immutable, structural sharing, data structures, data types, functional |

## Links

- npm: https://www.npmjs.com/package/immutabled
- Repository: https://github.com/leonp1991/immut
- Homepage: https://leonp1991.github.io/immutabled/
- Issues: https://github.com/leonp1991/immutabled/issues
- npm.io page: https://npm.io/package/immutabled

## Alternatives

- [@lexical/table](https://npm.io/package/@lexical/table.md) — 3.0M weekly downloads
- [mantine-datatable](https://npm.io/package/mantine-datatable.md) — 98.2K weekly downloads
- [react-native-collapsible-tab-view](https://npm.io/package/react-native-collapsible-tab-view.md) — 70.6K weekly downloads
- [@handsontable/vue3](https://npm.io/package/@handsontable/vue3.md) — 16.1K weekly downloads
- [vuewordcloud](https://npm.io/package/vuewordcloud.md) — 7.2K weekly downloads

## Recent versions

- 0.0.11 (latest) — 2017-05-01
- 0.0.10 — 2017-05-01
- 0.0.9 — 2017-04-29
- 0.0.8 — 2017-04-23
- 0.0.7 — 2017-04-23
- 0.0.6 — 2017-04-23
- 0.0.5 — 2017-04-23
- 0.0.4 — 2017-04-14
- 0.0.3 — 2017-04-14
- 0.0.2 — 2017-04-09
- 0.0.1 — 2017-04-09

## README

# Immutabled
[![codecov](https://codecov.io/gh/leonp1991/immutabled/branch/master/graph/badge.svg)](https://codecov.io/gh/leonp1991/immutabled)



## concept
Immutabled is a low cost (8kb in size) immutable data structure library. Performance is saved
through using structural sharing of copies, and developer sanity is kept through
referential transparency. this package is still a work in progress and open to ideas, check out the current api and info in the [documentation](https://leonp1991.github.io/immutabled).

## comparison to immutable-js
while immutable.js opts for an object oriented api, immutabled opts in to more functional api
featuring partial application and seperation of logic and data.

```javascript
import { map, _ } from 'immutabled';

/**
 * takes a user returns a user with loggedIn === true
 * userLoggedIn: user => user
 *
 * @example
 *   userLogin(user)
 *
 */
const userLogIn = map.set(_, 'loggedIn', true)


import { Map } from 'immutable'

/**
 * takes a user returns a user with loggedIn === true
 * userLoggedIn: user => user
 *
 * @example
 *   userLogin(user)
 *
 */
const userLogin = user => user.set('loggedIn', true)
```

## how to install
```sh
yarn add -S immutabled
```

## how to import
The recommended import is the es version if you are using webpack 2:

```javascript
import { map, _ } from 'immutabled/es'
```

For for legacy imports:
```javascript
import { map, _ } from 'immutabled'

// or

const { map, _ } = require('immutabled')
```

## configure webpack to tree shake node_modules/**/es/*

to tree shake node_modules it is important that we import the native modules versions, but
also, make sure that they are transpiled by webpack. to do this we need to configure our webpack
rule for js slightly different slightly different.

```javascript
const jsRule = {
  test: /\.jsx?$/,
  exclude: /node_modules\/(?!.*?es)/, // exclude node modules unless inside a 'es' sub directory
  use: 'babel-loader',
}
```

this will allow traditional node_modules to skip transpilation, but modules inside an 'es'
sub directory to transpiled.

---
_Source: https://npm.io/package/immutabled · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
