New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

object-data-mapper

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-data-mapper

data-mapper: A powerful npm package for effortless object data mapping and transformation between structures

latest
npmnpm
Version
1.0.4
Version published
Maintainers
1
Created
Source

Object Data Mapper

npm version License

Data Mapper is a powerful npm package that simplifies object data mapping and transformation between different structures and formats in JavaScript. It provides an intuitive way to define property mappings, allowing you to extract and rearrange data from complex nested objects effortlessly. The library supports custom transformation functions to further manipulate data during mapping. Additionally, Object Data Mapper comes with flexible error handling options, enabling you to gracefully handle missing or invalid properties based on your specific needs.

Installation

You can install Object Data Mapper using npm:

Usage

const { createDataMapperFactory, mapProperty } = require('object-data-mapper');

// Your property mappings
const propertyMappings = {
	'userData.firstName': mapProperty('userData.firstName', 'profile.firstName'),
	'userData.lastName': mapProperty('userData.lastName', 'profile.lastName'),
	'userData.email': mapProperty('userData.email', 'profile.email'),
	'userData.address.line1': mapProperty(
		'userData.address.line1',
		'profile.address.street'
	),
	'userData.address.city': mapProperty(
		'userData.address.city',
		'profile.address.city'
	),
	'userData.address.postalCode': mapProperty(
		'userData.address.postalCode',
		'profile.address.zipCode'
	),
	'userData.address.country': mapProperty(
		'userData.address.country',
		'profile.address.country'
	),
	'userData.phoneNumbers.primary': mapProperty(
		'userData.phoneNumbers.primary',
		'contact.primary'
	),
	'userData.phoneNumbers.secondary': mapProperty(
		'userData.phoneNumbers.secondary',
		'contact.secondary',
		// Transform value
		(value) => value?.replace(/^\+1/, '')
	),
};

// Create the data mapper factory with default error handling
const defaultErrorMessage = 'Invalid property encountered during data mapping.';
const defaultStatusCode = 400;
const dataMapperFactory = createDataMapperFactory(
	propertyMappings,
	defaultErrorMessage(optional),
	defaultStatusCode(optional)
);

// Your sample data
const userData = {
	firstName: 'John',
	lastName: 'Doe',
	email: 'john.doe@example.com',
	address: {
		line1: '123 Main Street',
		city: 'New York',
		postalCode: '10001',
		country: 'USA',
	},
	phoneNumbers: {
		primary: '+1 123-456-7890',
		secondary: '+1 987-654-3210',
	},
};

// Map the data using the factory
try {
	const result = dataMapperFactory.mapData({
		userData, // Add other data properties if needed
	});
	console.log(result);
} catch (error) {
	console.error(`${error.message} (Status Code: ${error.statusCode})`);
}

Keywords

data

FAQs

Package last updated on 27 Jul 2023

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