1.0.0 • Published 1 year ago

nordi v1.0.0

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

Why?

In many projects where it is necessary to use different APIs for the same purpose, there is a huge problem with standardization.

It is always a waste of time and almost always writing new functions and data normalization separately for each project.

What if there was a simple function that normalizes data according to a predetermined pattern? – it was on the basis of this thought that nordi was created.

Install

npm install --save nordi

# Using pnpm
pnpm add nordi

# Using yarn
yarn add nordi

Usage

1. Define Interface

To normalize data, you need to create an interface/schema beforehand.

The principle of operation is very simple. catch grabs the appropriate variable from the object and transform converts it to the selected format.

const blockInterface = {
    hash: {
        catch: ['hash', 'blockhash'],
        transform: (value: any) => String(value)
    },

    number: {
        catch: ['height', 'number', 'blockHeight'],
        transform: (value: any) => Number(value)
    },
}

2. Prepare a dataset

Of course, different data sets are required to normalize different data.

For example, I used blocks of various cryptocurrencies here.

const solanaBlock = {
    "blockhash": "4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn",
    "blockHeight": 0
}

const bitcoinBlock = {
    "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
    "height": 0
}

const ethereumBlock = {
    "hash": "0x0000000000000000000000000000000000000000",
    "number": 0,
}

3. Normalization

Of course, different data sets are required to normalize different data.

For example, I used blocks of various cryptocurrencies here.

const { useNormalizedData } from 'nordi'

const normalizedSolanaBlock = useNormalizedData(blockInterface, solanaBlock)
const normalizedBitcoinBlock = useNormalizedData(blockInterface, bitcoinBlock)
const normalizedEthereumBlock = useNormalizedData(blockInterface, ethereumBlock)

console.log(normalizedSolanaBlock)

//{
//  hash: "4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn"
//  number: 0
//}

License

MIT License © 2023 Dominik Opyd