1.0.2 • Published 2 years ago

merge-locations v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

merge-locations

Getting list of locations and return unique and non nested ones.

Install

Install with npm

$ npm i merge-locations --save

Usage

const mergeLocations = require('merge-locations')

API

merge-locations

Params

  • locations {Location type object}: locations list to compare and merge

Example

const mergeLocations = require('merge-locations')

mergeLocations([
                 [
                   {
                     "key": "NL",
                     "name": "Netherlands",
                     "type": "country",
                     "country_code": "NL",
                     "country_name": "Netherlands"
                   },
                   {
                     "key": "1175968",
                     "name": "Cagliari",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "IT",
                     "country_name": "Italy",
                     "radius": 10
                   },
                   {
                     "key": "1559844",
                     "name": "Xico",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "MX",
                     "country_name": "Mexico",
                     "radius": 10
                   }
                 ],
                 [
                   {
                     "key": "eea",
                     "name": "European Economic Area (EEA)",
                     "type": "country_group",
                     "country_codes": [
                       "AT",
                       "BE",
                       "BG",
                       "HR",
                       "CY",
                       "CZ",
                       "DK",
                       "EE",
                       "FI",
                       "FR",
                       "DE",
                       "GR",
                       "HU",
                       "IE",
                       "IT",
                       "LV",
                       "LT",
                       "LU",
                       "MT",
                       "NL",
                       "PL",
                       "PT",
                       "RO",
                       "SK",
                       "SI",
                       "ES",
                       "SE",
                       "GB",
                       "IS",
                       "LI",
                       "NO"
                     ]
                   },
                   {
                     "key": "2448741",
                     "name": "Canada",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "US",
                     "country_name": "United States",
                     "radius": 45
                   },
                   {
                     "key": "MX",
                     "name": "Mexico",
                     "type": "country",
                     "country_code": "MX",
                     "country_name": "Mexico"
                   },
                   {
                     "key": "CA",
                     "name": "Canada",
                     "type": "country",
                     "country_code": "CA",
                     "country_name": "Canada"
                   },
                   {
                     "key": "293810",
                     "name": "Hamilton",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "CA",
                     "country_name": "Canada",
                     "radius": 10
                   }
                 ],
                 [
                   {
                     "key": "MX",
                     "name": "Mexico",
                     "type": "country",
                     "country_code": "MX",
                     "country_name": "Mexico"
                   },
                   {
                     "key": "1559844",
                     "name": "Xico",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "MX",
                     "country_name": "Mexico",
                     "radius": 45
                   },
                   {
                     "key": "CA",
                     "name": "Canada",
                     "type": "country",
                     "country_code": "CA",
                     "country_name": "Canada"
                   },
                   {
                     "key": "2448741",
                     "name": "Canada",
                     "type": "city",
                     "distance_unit": "mile",
                     "country_code": "US",
                     "country_name": "United States",
                     "radius": 10
                   }
                 ]
               ])

Should return

[
    [
        {
            "key": "eea",
            "name": "European Economic Area (EEA)",
            "type": "country_group",
            "country_codes": [
                "AT",
                "BE",
                "BG",
                "HR",
                "CY",
                "CZ",
                "DK",
                "EE",
                "FI",
                "FR",
                "DE",
                "GR",
                "HU",
                "IE",
                "IT",
                "LV",
                "LT",
                "LU",
                "MT",
                "NL",
                "PL",
                "PT",
                "RO",
                "SK",
                "SI",
                "ES",
                "SE",
                "GB",
                "IS",
                "LI",
                "NO"
            ]
        },
        {
            "key": "MX",
            "name": "Mexico",
            "type": "country",
            "country_code": "MX",
            "country_name": "Mexico"
        }
    ],
    [
        {
            "key": "eea",
            "name": "European Economic Area (EEA)",
            "type": "country_group",
            "country_codes": [
                "AT",
                "BE",
                "BG",
                "HR",
                "CY",
                "CZ",
                "DK",
                "EE",
                "FI",
                "FR",
                "DE",
                "GR",
                "HU",
                "IE",
                "IT",
                "LV",
                "LT",
                "LU",
                "MT",
                "NL",
                "PL",
                "PT",
                "RO",
                "SK",
                "SI",
                "ES",
                "SE",
                "GB",
                "IS",
                "LI",
                "NO"
            ]
        },
        {
            "key": "2448741",
            "name": "Canada",
            "type": "city",
            "distance_unit": "mile",
            "country_code": "US",
            "country_name": "United States",
            "radius": 45
        },
        {
            "key": "MX",
            "name": "Mexico",
            "type": "country",
            "country_code": "MX",
            "country_name": "Mexico"
        },
        {
            "key": "CA",
            "name": "Canada",
            "type": "country",
            "country_code": "CA",
            "country_name": "Canada"
        }
    ],
    [
        {
            "key": "MX",
            "name": "Mexico",
            "type": "country",
            "country_code": "MX",
            "country_name": "Mexico"
        },
        {
            "key": "CA",
            "name": "Canada",
            "type": "country",
            "country_code": "CA",
            "country_name": "Canada"
        },
        {
            "key": "2448741",
            "name": "Canada",
            "type": "city",
            "distance_unit": "mile",
            "country_code": "US",
            "country_name": "United States",
            "radius": 45
        }
    ]
]