Skip to content

✨ Monorepo of tools crafted to seamlessly integrate with the Nominatim API (pnpm and Node environments).

License

Notifications You must be signed in to change notification settings

jonathanlinat/simple-nominatim

Repository files navigation

Simple Nominatim Logo

Simple Nominatim

This is a monorepo packed with bespoke tools crafted to seamlessly integrate with the Nominatim API.

Disclaimers

The utilization of this project is governed by the Nominatim Usage Policy (aka Geocoding Policy). Please adhere to fair usage practices as outlined by the OSMF Operations Working Group.

The owner and contributors of the Simple Nominatim project, including its libraries, assume no responsibility for any misuse.

Usage

Simple Nominatim currently only supports the Search, Reverse and Status endpoints.

For detailed instructions on how to use the tools, navigate to the ./packages directory and consult the corresponding README.md file associated with each package.

How to Contribute

Pre-requisites

Coding Standards & Tools

To maintain code quality and consistency, this project adopts various linting, formatting and automated tools.

  • Changesets: A tool that manages versioning and changelog generation with a focus on multi-package repositories.
  • Commitlint: Enforces a consistent commit convention, which helps in generating changelogs and navigating the history.
  • ESLint: Analyzes the JavaScript code for potential errors and deviations from coding standards.
  • Lint Staged: Runs linters on pre-committed code in git. Ensures you're only committing files that meet your linting criteria.
  • Markdownlint: Lints the Markdown files to ensure consistent and correct Markdown syntax.
  • Prettier: An opinionated code formatter that enforces a consistent style by parsing code and reprinting it.
  • Simple Git Hooks: Provides tools to set up Git hooks to automate tasks like running linters before commits.
  • Turborepo: A high-performance build system for JavaScript and TypeScript monorepos, optimizing task execution across workspaces.
  • Unbuild: An unified and simplified JavaScript build system.

It's recommended to familiarize yourself with these tools, their configurations, and the associated NPM scripts to ensure smooth contribution and integration within the project.

Setting up the Project

  1. Clone the repository to your local machine:

    $ git clone git@github.com:jonathanlinat/simple-nominatim.git
    $ cd simple-nominatim/
  2. Once inside the project directory, install the required dependencies:

    $ pnpm install

License

Simple Nominatim is MIT licensed.