1.1.4 • Published 1 year ago

handle-metric v1.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Metrics Handler

This package is for handling metric data like below

# Category 1
TotalSupply 1000
Price 20
Holders 3000

# Category 2
TotalSupply 10000
Price 2
Holders 150

# Category 3
TotalSupply 5000
Price 1000
Holders 300

Usage

Support CJS, ESM

const metrics = require('metrics-handler')

import metrics from 'metrics-handler'

Parse Metrics

const metricsObj = metrics.parseMetric(metricsStr);

/*
{
  'Category 1': { TotalSupply: '1000', Price: '20', Holders: '3000' },
  'Category 2': { TotalSupply: '10000', Price: '2', Holders: '150' },
  'Category 3': { TotalSupply: '5000', Price: '1000', Holders: '300' }
}
*/

Stringify Metrics

const metricsStr = metrics.stringify(metricsObj);
/*
# Category 1
TotalSupply 1000
Price 20
Holders 3000

# Category 2
TotalSupply 10000
Price 2
Holders 150

# Category 3
TotalSupply 5000
Price 1000
Holders 300
===
# Category 1
TotalSupply 1000
Price 20
Holders 3000

# Category 2
TotalSupply 10000
Price 2
Holders 150

# Category 3
TotalSupply 5000
Price 1000
Holders 300
*/

Create Metric Instance

const newMetrics = new metrics.metric();

Add Data

Params : (category, key, value)

newMetrics.addValue("Category 1", "TotalSupply", 1000);
newMetrics.addValue("Category 1", "Price", 20);
newMetrics.addValue("Category 1", "Holders", 3000);

newMetrics.addValue("Category 2", "TotalSupply", 10000);
newMetrics.addValue("Category 2", "Price", 2);
newMetrics.addValue("Category 2", "Holders", 150);

newMetrics.addValue("Category 3", "TotalSupply", 5000);
newMetrics.addValue("Category 3", "Price", 1000);
newMetrics.addValue("Category 3", "Holders", 300);

console.log(newMetrics.data);
/*
{
  'Category 1': { TotalSupply: 1000, Price: 20, Holders: 3000 },
  'Category 2': { TotalSupply: 10000, Price: 2, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 }
}
*/

Edit Data

Params : (category, key, value)

If category doesn't exists, it will be created

newMetrics.editValue("Category 2", "Price", 50000000000000);
console.log(newMetrics.data);
/*
{
  'Category 1': { TotalSupply: 1000, Price: 20, Holders: 3000 },
  'Category 2': { TotalSupply: 10000, Price: 50000000000000, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 }
}
*/

newMetrics.editValue("Category 4", "Price", 100);
console.log(newMetrics.data);
/*
{
  'Category 1': { TotalSupply: 1000, Price: 20, Holders: 3000 },
  'Category 2': { TotalSupply: 10000, Price: 50000000000000, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 },
  'Category 4': { Price: 100 }
}
*/

Delete Data

Params : (category, key, isDeleteCat)

When isDeleteCat is truthy, if the category is empty after being delete the data, delete the category too.

newMetrics.deleteValue("Category 4", "Price");
console.log(newMetrics.data);
/*
{
  'Category 1': { TotalSupply: 1000, Price: 20, Holders: 3000 },
  'Category 2': { TotalSupply: 10000, Price: 50000000000000, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 },
  'Category 4': {}
}
*/
newMetrics.deleteValue("Category 4", "Price", true);
console.log(newMetrics.data);
/*
{
  'Category 1': { TotalSupply: 1000, Price: 20, Holders: 3000 },
  'Category 2': { TotalSupply: 10000, Price: 50000000000000, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 }
}
*/

Delete Category

Params : (category)

newMetrics.deleteCategory("Category 1");
console.log(newMetrics.data);
/*
{
  'Category 2': { TotalSupply: 10000, Price: 50000000000000, Holders: 150 },
  'Category 3': { TotalSupply: 5000, Price: 1000, Holders: 300 }
}
*/

stringify Metric

const metricsString = newMetrics.toString();
console.log(metricsString);
/*
# Category 2
TotalSupply 10000
Price 50000000000000
Holders 150

# Category 3
TotalSupply 5000
Price 1000
Holders 300
*/
1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago