# sure-assign

> Helps to assign objects into another resulting object with integrity check

Latest version **1.1.3** (published 2021-10-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install sure-assign
pnpm add sure-assign
yarn add sure-assign
bun add sure-assign
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.3 |
| Published | 2021-10-27 |
| First published | 2020-11-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 17.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jean Luc Emmanuel VERHANNEMAN |
| Maintainers | maze014 |
| Keywords | object, assign, integrity, options, merge |

## Links

- npm: https://www.npmjs.com/package/sure-assign
- Repository: https://github.com/ManuUseGitHub/sure-assign
- Homepage: https://github.com/ManuUseGitHub/sure-assign#readme
- Issues: https://github.com/ManuUseGitHub/sure-assign/issues
- npm.io page: https://npm.io/package/sure-assign

## Recent versions

- 1.1.3 (latest) — 2021-10-27
- 1.1.2 — 2021-10-27
- 1.1.1 — 2021-10-27
- 1.1.0 — 2021-10-27
- 1.0.0 — 2020-11-27

## README

# Sure ~ assign <br/>[![npm version](https://badge.fury.io/js/sure-assign.svg)](https://badge.fury.io/js/sure-assign) [![Build Status](https://app.travis-ci.com/ManuUseGitHub/sure-assign.svg?branch=master)](https://app.travis-ci.com/ManuUseGitHub/sure-assign) [![License: MIT](https://img.shields.io/badge/License-MIT-61dafb.svg)](https://github.com/ManuUseGitHub/sure-assign/blob/master/LICENSE)

Does the same thing as `Object.assign` but ensure you to only assign existing properties/fields

## Getting started

1. Install the package into your <b>node</b> project.
    ```bash
    $ npm i sure-assign
    ```
2. Instenciate :
    You will use it as an object
    ```js
    const assigner = new ConsistentAssigner ();
    ```
3. Use it :
    ```js
    const obj_A = { ... }; // A is the base
    const obj_a = { ... }; // a is subset of A => OK
    const obj_Ɑ = { ... }; // alfa is superset of A => see complience (*)

    const result = assigner.assign(obj_A, obj_a, obj_Ɑ);
    console.log(result);
    
    // Outputed object
    // result : composition of content of theses 3 objects having this relation:
    // Ɑ <= a <= A
    ```
## Options
The options help you to generate the result object of your desire and more. 

**Note** : 
None of these is mandatory. It is just a way to tweak the outcomes and behaviors of the assigner

|option|type|default|note|
|-|-|-|-|
|verbose|boolean|true||
|complient|boolean|true||
|passmiss|boolean|false||
|secure|boolean|true||
|sort|string|"no"|no, asc or dsc|

1. **Complient**
    On false, the assigner will **`THROW`** exception to prevent you to make a bad assignement.
2. **Verbose**
    Once `false`, it prevents you to have warnings, when **`complient` is `true`**.
3. **Passmiss**
   Tells if you take the triggering objects of the assignment in count in the final result.
4. **Secure**
   If you set to `false`, the assigner do the same as the `Object.assign` funciton.
5. **Sort**
   Offers you the chance to sort the fields or properties of the result object in order **ASC**, **DSC** , or **NO**ne of these

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