webgeodatavore / osm-request

JS library for OpenStreetMap API communication
MIT License
0 stars 0 forks source link

License: MIT GitHub release Build Status Coverage Status

OSM Request

Request the OSM API (v0.6) from Javascript, with promises :)

⚠ That project is in an heavy development phase. Do not use it until the first stable release.

Installation

$ npm install osm-request

Usage

The full documentation of osm-request API is detailed in the API documentation.

Example

import OsmRequest from 'osm-request';

const osm = new OsmRequest({
  endpoint: 'https://www.openstreetmap.org',
  oauthConsumerKey: '...',
  oauthSecret: '...',
  oauthUserToken: '...',
  oauthUserTokenSecret: '...',
});

async function start() {
  let element = await osm.fetchElement('node/3683625932');
  element = osm.setProperty(element, 'key', 'value');
  element = osm.setProperties(element, {
    key1: 'value1',
    key2: 'value2',
    key3: 'value3',
  });
  element = osm.removeProperty(element, 'key2');
  element = osm.setTimestampToNow(element);
  element = osm.setCoordinates(element, 1.234, 0.456);

  const changesetId = await osm.createChangeset('Created by me', 'My changeset comment');
  const isChangesetStillOpen = await osm.isChangesetStillOpen(changesetId);
  const newElementVersion = await osm.sendElement(element, changesetId);
  element = osm.setVersion(element, newElementVersion);
}

start();

For the OSM dev instance, use that endpoint: https://api06.dev.openstreetmap.org

Contribute

To start contribute on this project, you can retrieve code using the following commands:

$ git clone git@github.com:osmlab/osm-request.git
$ cd osm-request
$ npm install
$ npm run watch

This project uses a specific work flow for branches:

Pull requests are welcome, as the project is fully open-source. If you want to work on new features, please create a branch named feature/yourFeatureName. When work is done, open a pull request to merge your branch on develop branch. The code will be reviewed by one or several developers before being merged, in order to keep a good code quality.

Make a release

$ git checkout develop
$ git pull origin develop
$ npm version patch -m "release: %s"
$ npm publish
$ git checkout master
$ git pull origin master
$ git merge develop
$ git push origin master

npm version tests the code, builds it and updates the doc. Then it upgrades the package version number according to the used keyword (patch, minor or major) and commits the modifications in Git (with a proper version tag). Finally, it pushes it to repository with the tag.