mass-data-transform
Transforms an array of objects into a custom format. Was developed because I wanted my data to look a certain way after retrieving data from an API. This library allows you to transform, add, delete, and rename fields.
Installing
npm install mass-data-transform
yarn add mass-data-transform
Initializing
;var transform = ;
How To Use
Syntax
let transformedData = ;
Parameters
arrObj : The array of objects
e.g:
const arrObj = [{id:1,name:'Bulbasaur',{id:2,name:'Squirtle'}}]
options : an object that exists of up to 4 different key values - transformFields, addFields, deleteFields, and renameFields. All 4 are optional.
e.g:
const options = {
transformFields:/*optional object here*/,
addFields:/*optional object here*/,
deleteFields:/*optional array here*/,
renameFields/*optional object here*/
}
Please refer to examples for more information.
options - in depth
transformFields: object that consists of the key value and functions used to transform the data.
addFields: object that consists of the new key value names and functions used for the new fields.
deleteFields: array that consists of the strings of the keys to be deleted.
renameFields: object that consists of the old key / new key.
The order of precedence for the operations is transform -> add -> delete -> rename.
Examples
Example set 1 - BASIC
//arrObj1 used for all examples in set 1const arrObj1 = id: 1 enabled: true name: "Anakin Skywalker" id: 2 enabled: true name: "Ahsoka Tano" id: 3 enabled: false name: "Darth Maul" ;
//transformFields onlyconst options1 = transformFields: rid + 1 rname + " The Chosen One" renabled = !renabled ; ;//output id: 2 enabled: false name: "Anakin Skywalker The Chosen One" id: 3 enabled: false name: "Ahsoka Tano The Chosen One" id: 4 enabled: true name: "Darth Maul The Chosen One" ;
//addFields onlyconst options2 = addFields: rid < 3 ? "good" : "evil" ; ;//output id: 1 enabled: true name: "Anakin Skywalker" alignment: "good" id: 2 enabled: true name: "Ahsoka Tano" alignment: "good" id: 3 enabled: false name: "Darth Maul" alignment: "evil" ;
//deleteFields onlyconst options3 = deleteFields: "enabled" "id"; ;//output name: "Anakin Skywalker" name: "Ahsoka Tano" name: "Darth Maul" ;
//renameFields onlyconst options4 = renameFields: id: "newId" enabled: "newEnabled" ; ;//output newId: 1 newEnabled: true name: "Anakin Skywalker" newId: 2 newEnabled: true name: "Ahsoka Tano" newId: 3 newEnabled: false name: "Darth Maul" ;
Example set 2 - INTERMEDIATE
//arrObj2 used for all examples in set 2const arrObj2 = id: 0 series: "bleach" status: "enabled" name: firstName: "ichigo" lastName: "kurosaki" team: "soul society" hasWife: true id: 1 series: "naruto" status: "enabled" name: firstName: "naruto" lastName: "uzumaki" team: "leaf village" hasWife: true id: 2 series: "fairy tail" status: "disabled" name: firstName: "natsu" lastName: "dragneel" team: "fairy tail guild" hasWife: false ;
options5 = transformFields: "000" + rid addFields: rnamefirstName rnamelastName rstatus === "enabled" ? true : false deleteFields: "name" "status" renameFields: hasWife: "hasPartner" ; ;//output id: "000" series: "bleach" enabled: true firstName: "ichigo" lastName: "kurosaki" team: "soul society" hasPartner: true id: "001" series: "naruto" enabled: true firstName: "naruto" lastName: "uzumaki" team: "leaf village" hasPartner: true id: "002" series: "fairy tail" enabled: false firstName: "natsu" lastName: "dragneel" team: "fairy tail guild" hasPartner: false ;