Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonathanlinat/simple-nominatim
✨ Monorepo of tools crafted to seamlessly integrate with the Nominatim API (pnpm and Node environments).
https://github.com/jonathanlinat/simple-nominatim
api geocoding javascript monorepo node nominatim openstreetmap pnpm reverse search status workspace
Last synced: 21 days ago
JSON representation
✨ Monorepo of tools crafted to seamlessly integrate with the Nominatim API (pnpm and Node environments).
- Host: GitHub
- URL: https://github.com/jonathanlinat/simple-nominatim
- Owner: jonathanlinat
- License: mit
- Created: 2023-11-01T04:53:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-31T04:55:38.000Z (11 months ago)
- Last Synced: 2024-11-22T13:39:36.074Z (30 days ago)
- Topics: api, geocoding, javascript, monorepo, node, nominatim, openstreetmap, pnpm, reverse, search, status, workspace
- Language: JavaScript
- Homepage:
- Size: 248 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Simple Nominatim
This is a monorepo packed with bespoke tools crafted to seamlessly integrate with the [Nominatim API](https://nominatim.org/release-docs/develop/api/Overview/).
> **Disclaimers**
>
> The utilization of this project is governed by the [Nominatim Usage Policy (aka Geocoding Policy)](https://operations.osmfoundation.org/policies/nominatim/). Please adhere to fair usage practices as outlined by the [OSMF Operations Working Group](https://operations.osmfoundation.org/).
>
> 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](https://nominatim.org/release-docs/develop/api/Search/), [Reverse](https://nominatim.org/release-docs/develop/api/Reverse/) and [Status](https://nominatim.org/release-docs/develop/api/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.
- **Simple Nominatim Core**
* GitHub: [README](https://github.com/jonathanlinat/simple-nominatim/tree/main/packages/core#readme)
* npm: [@simple-nominatim/core](https://www.npmjs.com/package/@simple-nominatim/core)
- **Simple Nominatim CLI**
* GitHub: [README](https://github.com/jonathanlinat/simple-nominatim/tree/main/packages/cli#readme)
* npm: [@simple-nominatim/cli](https://www.npmjs.com/package/@simple-nominatim/cli)## How to Contribute
### Pre-requisites
Before you can modify the source code and test the application locally, ensure you have the following tools/packages installed:
- **Git**: [Download Git](https://git-scm.com/)
- **Node.js (v20.x)**: [Download Node.js](https://nodejs.org/dist/latest-v20.x/) or use [NVM](https://github.com/nvm-sh/nvm) for version management
- **pnpm (v8.15.8)**: [Install pnpm](https://pnpm.io/installation#installing-a-specific-version)### 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:
```bash
$ git clone [email protected]:jonathanlinat/simple-nominatim.git
``````bash
$ cd simple-nominatim/
```2. Once inside the project directory, install the required dependencies:
```bash
$ pnpm install
```## License
**Simple Nominatim** is [MIT licensed](LICENSE).