# @dagonmetric/ng-entity-change-checker

> Object dirty checker and change states (such as Added, Modified or Deleted) and modified properties detector service for Angular applications.

Latest version **1.0.2** (published 2021-01-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install @dagonmetric/ng-entity-change-checker
pnpm add @dagonmetric/ng-entity-change-checker
yarn add @dagonmetric/ng-entity-change-checker
bun add @dagonmetric/ng-entity-change-checker
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2021-01-25 |
| First published | 2020-11-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 101.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | DagonMetric |
| Maintainers | mmzliveid, dagonmetric-contributor |
| Keywords | angular-entity-change-checker, entity-change-checker, trackable-entities, angular, typescript |

## Links

- npm: https://www.npmjs.com/package/@dagonmetric/ng-entity-change-checker
- Repository: https://github.com/Dagonmetric/ng-entity-change-checker
- Issues: https://github.com/Dagonmetric/ng-entity-change-checker/issues
- npm.io page: https://npm.io/package/@dagonmetric/ng-entity-change-checker

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^2.0.0

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2021-01-25
- 1.0.1 — 2021-01-04
- 1.0.0 — 2020-11-02

## README

# Entity Change Checker for Angular

[![Azure Pipelines Status](https://dev.azure.com/DagonMetric/ng-entity-change-checker/_apis/build/status/DagonMetric.ng-entity-change-checker?repoName=DagonMetric%2Fng-entity-change-checker&branchName=main)](https://dev.azure.com/DagonMetric/ng-entity-change-checker/_build/latest?definitionId=25&repoName=DagonMetric%2Fng-entity-change-checker&branchName=main)
[![GitHub Actions Status](https://github.com/DagonMetric/ng-entity-change-checker/workflows/Main%20Workflow/badge.svg)](https://github.com/DagonMetric/ng-entity-change-checker/actions)

Object dirty checker and change states (such as Added, Modified or Deleted) and modified properties detector service for Angular applications.

## Get Started

### Installation

npm

```bash
npm install @dagonmetric/ng-entity-change-checker
```

or yarn

```bash
yarn add @dagonmetric/ng-entity-change-checker
```

Latest npm package is [![npm version](https://badge.fury.io/js/%40dagonmetric%2Fng-entity-change-checker.svg)](https://www.npmjs.com/package/@dagonmetric/ng-entity-change-checker)

### Module Setup (app.module.ts)

```typescript
import { EntityChangeCheckerModule } from '@dagonmetric/ng-entity-change-checker';

@NgModule({
  imports: [
    // Other module imports

    // ng-entity-change-checker module
    EntityChangeCheckerModule    
  ]
})
export class AppModule { }
```

### Usage (app.component.ts)

```typescript
import { Component } from '@angular/core';

import { EntityChangeChecker } from '@dagonmetric/ng-entity-change-checker';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']  
})
export class AppComponent {
  constructor(private readonly entityChangeChecker: EntityChangeChecker) {
    const sourceObj: MyType = {
        prop1: 'hello',
        prop2: 500,
        prop3: false,
        trackingState: TrackingState.Unchanged,
        modifiedProperties: []
    };

    const modObj = JSON.parse(JSON.stringify(sourceObj)) as MyType;
    modObj.prop1 = 'my';
    modObj.prop3 = true;               

    const isDirty = entityChangeChecker.checkChanges(modObj, sourceObj);
    console.log('isDirty: ', isDirty); // Output: true
    console.log('trackingState: ', modObj.trackingState); // Output: 2
    console.log('modifiedProperties: ', modObj.modifiedProperties); // Output: ['prop1', 'prop3']
  }
}
```

## Feedback and Contributing

Check out the [Contributing](https://github.com/DagonMetric/ng-entity-change-checker/blob/master/CONTRIBUTING.md) page.

## License

This repository is licensed with the [MIT](https://github.com/DagonMetric/ng-entity-change-checker/blob/master/LICENSE) license.

---
_Source: https://npm.io/package/@dagonmetric/ng-entity-change-checker · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
