🚀 DAY 1 OF LAUNCH WEEK: Reachability for Ruby Now in Beta.Learn more →
Socket
Book a DemoInstallSign in
Socket

@beardedtim/config-mapper

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@beardedtim/config-mapper

A basic object to object mapper

latest
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

Config Mapper

One final schema to bind them

Usage

yarn add @beardedtim/config-mapper


Mapper

Mapper : Object -> Object -> Object
const Mapper = (config, input) => Object

The config object must look like the following:

const config = {
  [FINAL_KEY_NAME_DESIRED]: {
    resourceName: [KEY_NAME_ON_INPUT_DATA],
    {...otherValues}
  }
}
  • Each key on the config object is the key that we desire on the output object.
  • Each key MUST have a resourceName and that is to be set to the key on the input object that we want to map to the config key.
  • We can pass in any other values that this configured object needs.

The input object can be any object with any keys. The following is an example of using this function:

const config = {
  realName: {
    resourceName: 'name'
  },
  username: {
    resourceName: 'handle'
  }
}

const input = {
  handle: 'beardedtim',
  name: 'Tim',
  age: 28
}

const configured = Mapped(config, input)

configured === ({
    realName: {
      value: 'Tim'
    },
    username: {
      value: 'beardedtim'
    },
    age: 28
})

Maker

Maker : Object -> Object -> Object
const Maker = (config, input) => Object

The config object should look like this:

{
  [KEY_WE_WANT_TO_AFFECT]: [FUNCTION_TO_MODIFY_VALUE_AS_NEEDED]
}

The function called will be passed the following values:

  • input[key] : The value of the input object at the given key.
  • key : The key we are currently dealing with.
  • input : The input object we were given this value from.

The input object should look like this:

{
  [KEY_WE_WANT_TO_AFFECT]: [VALUE_WE_WANT_TO_MODIFY]
}

The following is an example of using the Maker function. Suppose that we have data coming into a function that we want to make sure is valid ( we could try/catch our Maker calls and ensure validation or we can truncate text if it is too long coming in as a prop ) for the component/routine/class/et al we are using the input from.

const config = {
  donorIDs: list => list.slice(0,5)
}

const input = {
  donorIDs: [1,2,3,4,5,6,7,8,9,10]
}

const configured = Maker(config,input)

const configured === ({
    donorIDs: [1,2,3,4,5]
})

FAQs

Package last updated on 22 Feb 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts