2.1.1 • Published 4 years ago

@dh-analysis/state v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@dh-analysis/state

Readme in Czech (Readme v Češtině)

A tool for analyzing the state of variables. Analyze objects, arrays, and their internal parts to see if they share the same memory address.

Method register

Registering a variable for analysis.

use :

import Analysis from "@dh-analysis/state";

const analysis = new Analysis(); // or new Analysis(ownReporter);
const variable = {...};
analysis.register(variable, "variable");
...

Metoda report

Display analysis results.

use :

import Analysis from "@dh-analysis/state";

const analysis = new Analysis(); // or new Analysis(ownReporter);
const variable = {...};
...
analysis.register(variable, "variable");
analysis.report(); // displays the analysis

By default, the report is displayed using (console.log): a list of duplicate addresses and their current paths in the analyzed variable. The default report can be replaced by your own report, which you insert into the constructor.


Example of use

const analysis = new Analysis(); // or new Analysis(ownReporter);
const address = { street: "Street 123" };
const age = { age: 12 };
const user = {
  name: "arthur",
  aaa: { newAddress: address },
  bbb: { newAge: age },
  ccc: { oldAddress: address },
  ddd: { oldAge: age },
};
analysis.register(user, "user");
analysis.report(); // displays the analysis

metoda report : console.log - výstup

group : 0
 - user/ccc/oldAddress
 - user/aaa/newAddress

group : 1
 - user/ddd/oldAge
 - user/bbb/newAge

The variable user has 2 groups of duplicates. Marked here as group 0 and group 1. For each duplicate, the depth path in the object to that duplicate location is displayed.

Use your own report

Use the bound (method bind) local duplicate variables - storeGroup (returns the getStoreGroup method) and storeSKeys (returns the getStoreSKeys method) - to create your own report.

storeSKeys: list of key ids. Each key has a duplicate group identifier value.

Example storeSKeys :

{
  sKey1: group1,
  sKey5: group1,
  sKey7: group2
}

storeGroup: list of group ids. For each group id, the value is a list of paths to the same duplicate object or field.

Example storeGroup :

{
  group1: {
    sKey1: pathA/pathB/pathC,
    sKey5: pathF/pathG/pathH
  },
  group2: {
    sKey7: pathX/pathY/pathZ
  }
}

Example of a default report to create your own report

let defaultReporter = function () {
  const groups = this.duplicates.getStoreGroup();
  for (const propsG in groups) {
    const group = groups[propsG];
    let paths = [];
    for (const propsK in group) {
      const path = group[propsK];
      paths.push(path);
    }
    paths = paths.sort();
    console.log(`group : ${propsG}`);
    paths.forEach((path) => {
      console.log(` - ${path}`);
    });
    console.log();
  }
};

export default defaultReporter;
2.1.1

4 years ago

2.0.0

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago