Skip to content

Latest commit

 

History

History
258 lines (203 loc) · 5.13 KB

README.md

File metadata and controls

258 lines (203 loc) · 5.13 KB

NgxMitaa

Made in Tanzania

This library provides an Angular service to get all locations

Installation

npm install ngx-mitaa

Or if you use yarn

yarn add ngx-mitaa

Usage

Import the service in your component where you want to use it

import { NgxMitaaService } from 'ngx-mitaa';

Inject the service in your component's constructor or using inject function

constructor(private ngxMitaaService: NgxMitaaService) {}

// or

const ngxMitaaService = inject(NgxMitaaService);
// Get all locations
const locations = this.ngxMitaaService.getLocations();

This will return an array of objects with the following structure;

[
  {
    continent: 'Africa',
    countries: [
      {
        country: 'Tanzania',
        regions: [
          {
            region: 'Dar es Salaam',
            districts: [
              {
                district: 'Ilala Cbd',
                wards: [
                  {
                    ward: 'Kivukoni',
                    streets: ['Kivukoni', 'Sea View'],
                  },
                  {
                    ward: 'Upanga Mashariki',
                    streets: ['Kitonga', 'Kibasila'],
                  },
                ],
              },
            ],
          },
        ],
      },
    ],
  },
];
// Get all continents
const continents = this.ngxMitaaService.getContinents();

This will return an array of strings with the following structure;

[
  'Africa',
  'Antarctica',
  'Asia',
  'Australia',
  'Europe',
  'North America',
  'South America',
];
// Get all countries by continent(defaults to Africa)
const countries = this.ngxMitaaService.getCountries('Africa');

This will return an array of strings with the following structure;

["Tanzania", "Burundi", "Kenya", , "Rwanda", "South Sudan", "Uganda" ...];
// Get all regions by country(default to Tanzania) and continent(defaults to Africa)
const regions = this.ngxMitaaService.getRegions('Tanzania', 'Africa');

This will return an array of strings with the following structure;

[
  "Dar es Salaam",
  "Dodoma",
  "Iringa",
  "Kagera",
  "Kigoma",
  "Kilimanjaro",
  "Lindi",
  "Manyara",
  "Mara",
  "Mbeya",
  ...
];
// Get all districts by region(defaults to Dar es Salaam), country(defaults to Tanzania) and continent(defaults to Africa)
const districts = this.ngxMitaaService.getDistricts(
  'Dar es Salaam',
  'Tanzania',
  'Africa'
);

This will return an array of strings with the following structure;

[
  "Ilala Cbd",
  "Kinondoni",
  "Kigamboni",
  "Temeke",
  "Ubungo",
  "Kurasini",
  ...
];
// Get all wards by district(defaults to Kinondoni), region(defaults to Dar es Salaam), country(defaults to Tanzania) and continent(defaults to Africa)
const wards = this.ngxMitaaService.getWards(
  'Kinondoni',
  'Dar es Salaam',
  'Tanzania',
  'Africa'
);

This will return an array of strings with the following structure;

[
  "Bunju",
  "Hananasif",
  "Kawe",
  "Kigogo",
  "Kijitonyama",
  "Kinondoni",
  "Kunduchi",
  "Mabwepande",
  "Magomeni",
  ...
];
// Get all streets by ward(defaults to Magomeni), district(defaults to Kinondoni), region(defaults to Dar es Salaam), country(defaults to Tanzania) and continent(defaults to Africa)
const streets = this.ngxMitaaService.getStreets(
  'Magomeni',
  'Kinondoni',
  'Dar es Salaam',
  'Tanzania',
  'Africa'
);
``;

This will return an array of strings with the following structure;

["Dossi", "Idrisa", "Makuti A", "Makuti B", "Suna" ...];

Interface

interface Continent {
  continent: string;
  countries: Country[];
}

interface Country {
  country: string;
  regions: Region[];
}

interface Region {
  region: string;
  districts: District[];
}

interface District {
  district: string;
  wards: Ward[];
}

interface Ward {
  ward: string;
  streets: string[];
}

All interfaces can be imported from the library

import { Continent, Country, Region, District, Ward } from 'ngx-mitaa';

License

MIT

Author

Munir Issa

Give a Star! ⭐

If you find this library useful, give it a star so that other deveopers can get to know about it.

Disclaimer

All the location I used to build this repository, I got from an public repository titled tanzania-locations-db, I'm not responsible for any kind of misinformation in it, I tried to locate my home with it found its pretty accurate, so use it to your own risk

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Acknowledgements