Go to file
Álvaro c792421687
undefined might come as a string (#1196)
so a hack to check and cast it to a real undefined

Co-authored-by: Álvaro Manera <amanera@cartodb.com>
2021-01-15 10:44:05 +01:00
.github/workflows 🤬 yaml 2020-12-21 13:21:44 +01:00
assets timeout error vector with lines 2017-11-07 15:57:33 +01:00
config/environments undefined might come as a string (#1196) 2021-01-15 10:44:05 +01:00
docs Professional -> Individual 2019-09-02 17:32:06 +02:00
lib Use env vars and fix tests 2020-12-16 16:32:32 +01:00
metro Adapt JSON output to the standard structure 2020-07-21 16:36:23 +02:00
private@fb7ea6baa6 submodule bump 2020-12-23 07:37:54 +01:00
scripts Merge pre-install scripts 2019-11-29 13:43:05 +01:00
test minor PR comments 2020-12-18 07:27:59 +01:00
.eslintignore Apply automatic eslint fixes 2019-10-21 19:07:24 +02:00
.eslintrc.js Remove jshint, add eslint and config 2019-10-21 18:50:01 +02:00
.gitignore Use env vars and fix tests 2020-12-16 16:32:32 +01:00
.gitmodules add submodule 2020-12-16 16:40:41 +01:00
app.js small fixes 2020-12-18 15:22:26 +01:00
carto-package.json Update carto-package.json 2020-06-05 14:09:40 +02:00
HOW_TO_RELEASE.md Minor doc fixes 2019-12-30 12:43:00 +01:00
LICENSE Adds notes about contributing 2015-09-08 16:44:44 +02:00
LOGGING.md Markdown about how to write log traces 2020-08-03 16:31:00 +02:00
NEWS.md Update 'camshaft' to version 0.67.2 2020-11-18 12:37:38 +00:00
package-lock.json Use env vars and fix tests 2020-12-16 16:32:32 +01:00
package.json Use env vars and fix tests 2020-12-16 16:32:32 +01:00
README.md Use env vars and fix tests 2020-12-16 16:32:32 +01:00

Windshaft-CartoDB Build Status

The CARTO Maps API tiler. It extends Windshaft and exposes a web service with extra functionality:

Build

Requirements:

Optional:

PostGIS setup

A template_postgis database is expected. One can be set up with

$ createdb --owner postgres --template template0 template_postgis
$ psql -d template_postgis -c 'CREATE EXTENSION postgis;'

Install

To fetch and build all node-based dependencies, run:

$ npm install

Run

You can inject the configuration through environment variables at run time. Check the file ./config/environments/config.js to see the ones you have available.

While the migration to the new environment based configuration, you can still use the old method of copying a config file. To enabled the one with environment variables you need to pass CARTO_WINDSHAFT_ENV_BASED_CONF=true. You can use the docker image to run it.

Old way:

$ node app.js <env>

Where <env> is the name of a configuration file under ./config/environments/.

Test

You can easily run the tests against the dependencies from the dev-env. To do so, you need to build the test docker image:

$ docker-compose build

Then you can run the tests like:

$ docker-compose run windshaft-tests

It will mount your code inside a volume. In case you want to play and run npm test or something else you can do:

$ docker-compose run --entrypoint bash windshaft-tests

So you will have a bash shell inside the test container, with the code from your host.

Coverage

$ npm run cover

Open ./coverage/lcov-report/index.html.

Docker support

We provide docker images just for testing and continuous integration purposes:

You can find instructions to install Docker, download, and update images here.

Useful npm scripts

Run test in a docker image with a specific Node.js version:

$ DOCKER_IMAGE=<docker-image-tag> NODE_VERSION=<nodejs-version> npm run test:docker

Where:

  • <docker-image-tag>: the tag of required docker image, e.g. carto/nodejs-xenial-pg1121:latest
  • <nodejs-version>: the Node.js version, e.g. 10.15.1

In case you need to debug:

$ DOCKER_IMAGE=<docker-image-tag> npm run docker:bash

Documentation

You can find an overview, guides, full reference, and support in CARTO's developer center. The docs directory contains different documentation resources, from a higher level to more detailed ones.

Contributing

Developing with a custom Windshaft version

If you plan or want to use a custom / not released yet version of windshaft (or any other dependency), the best option is to use npm link. You can read more about it at npm-link: symlink a package folder.

$ cd /path/to/Windshaft
$ npm install
$ npm link
$ cd /path/to/Windshaft-cartodb
$ npm link windshaft

Versioning

We follow SemVer for versioning. For available versions, see the tags on this repository.

License

This project is licensed under the BSD 3-clause "New" or "Revised" License. See the LICENSE file for details.