Implement NodeJS based server fully replicating osrm-routed

This commit is contained in:
Siarhei Fedartsou 2022-10-23 15:59:51 +02:00
parent 8273e8b0e2
commit 61810b9205
6 changed files with 356 additions and 370 deletions

View File

@ -119,8 +119,6 @@ jobs:
popd
./scripts/error_on_dirty.sh
# docker-image:
# needs: format-taginfo-docs
# runs-on: ubuntu-22.04
@ -169,62 +167,62 @@ jobs:
strategy:
matrix:
include:
# - name: gcc-9-debug-cov
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Debug
# CCOMPILER: gcc-9
# CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: g++-9
# ENABLE_COVERAGE: ON
- name: gcc-9-debug-cov
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Debug
CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9
ENABLE_COVERAGE: ON
# - name: gcc-9-debug-asan-ubsan
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Debug
# CCOMPILER: gcc-9
# CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: g++-9
# ENABLE_SANITIZER: ON
# TARGET_ARCH: x86_64-asan-ubsan
# OSRM_CONNECTION_RETRIES: 10
# OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
- name: gcc-9-debug-asan-ubsan
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Debug
CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9
ENABLE_SANITIZER: ON
TARGET_ARCH: x86_64-asan-ubsan
OSRM_CONNECTION_RETRIES: 10
OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
# - name: clang-6.0-debug
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# CUCUMBER_TIMEOUT: 60000
- name: clang-6.0-debug
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
CUCUMBER_TIMEOUT: 60000
# - name: clang-11.0-debug-clang-tidy
# continue-on-error: false
# node: 12
# runs-on: ubuntu-22.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Debug
# CCOMPILER: clang-14
# CXXCOMPILER: clang++-14
# CUCUMBER_TIMEOUT: 60000
# ENABLE_CLANG_TIDY: ON
- name: clang-11.0-debug-clang-tidy
continue-on-error: false
node: 12
runs-on: ubuntu-22.04
BUILD_TOOLS: ON
BUILD_TYPE: Debug
CCOMPILER: clang-14
CXXCOMPILER: clang++-14
CUCUMBER_TIMEOUT: 60000
ENABLE_CLANG_TIDY: ON
# - name: conan-linux-debug-asan-ubsan
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: clang-11
# CXXCOMPILER: clang++-11
# ENABLE_CONAN: ON
# ENABLE_SANITIZER: ON
- name: conan-linux-debug-asan-ubsan
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: clang-11
CXXCOMPILER: clang++-11
ENABLE_CONAN: ON
ENABLE_SANITIZER: ON
- name: conan-linux-release
continue-on-error: false
@ -236,290 +234,290 @@ jobs:
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
# - name: gcc-11-release
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-11
# CXXCOMPILER: g++-11
# ENABLE_BENCHMARKS: ON
- name: gcc-11-release
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-11
CXXCOMPILER: g++-11
ENABLE_BENCHMARKS: ON
# - name: gcc-10-release
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-10
# CXXCOMPILER: g++-10
- name: gcc-10-release
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-10
CXXCOMPILER: g++-10
# - name: gcc-9-release
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-9
# CXXCOMPILER: g++-9
# CXXFLAGS: -Wno-cast-function-type
- name: gcc-9-release
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-9
CXXCOMPILER: g++-9
CXXFLAGS: -Wno-cast-function-type
# - name: gcc-9-conan-release-i686
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-9
# CFLAGS: "-m32 -msse2 -mfpmath=sse"
# CXXCOMPILER: g++-9
# CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
# TARGET_ARCH: i686
# ENABLE_CONAN: ON
- name: gcc-9-conan-release-i686
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-9
CFLAGS: "-m32 -msse2 -mfpmath=sse"
CXXCOMPILER: g++-9
CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
TARGET_ARCH: i686
ENABLE_CONAN: ON
# - name: gcc-8-release
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-8
# CXXCOMPILER: g++-8
# CXXFLAGS: -Wno-cast-function-type
- name: gcc-8-release
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-8
CXXCOMPILER: g++-8
CXXFLAGS: -Wno-cast-function-type
# - name: gcc-7-release
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: gcc-7
# CXXCOMPILER: g++-7
- name: gcc-7-release
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: gcc-7
CXXCOMPILER: g++-7
# - name: conan-macos-x64-release-node-12
# build_node_package: true
# continue-on-error: false
# node: 12
# runs-on: macos-11
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-12
build_node_package: true
continue-on-error: false
node: 12
runs-on: macos-11
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
# - name: conan-macos-x64-release-node-14
# build_node_package: true
# continue-on-error: false
# node: 14
# runs-on: macos-11
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-14
build_node_package: true
continue-on-error: false
node: 14
runs-on: macos-11
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
# - name: conan-macos-x64-release-node-16
# build_node_package: true
# continue-on-error: false
# node: 16
# runs-on: macos-11
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-16
build_node_package: true
continue-on-error: false
node: 16
runs-on: macos-11
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-16
# build_node_package: true
# continue-on-error: false
# node: 16
# runs-on: macos-11
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON
- name: conan-macos-arm64-release-node-16
build_node_package: true
continue-on-error: false
node: 16
runs-on: macos-11
BUILD_TOOLS: ON
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON
# - name: gcc-7-release-shared
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TOOLS: ON
# BUILD_TYPE: Release
# BUILD_SHARED_LIBS: ON
# CCOMPILER: gcc-7
# CXXCOMPILER: g++-7
- name: gcc-7-release-shared
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TOOLS: ON
BUILD_TYPE: Release
BUILD_SHARED_LIBS: ON
CCOMPILER: gcc-7
CXXCOMPILER: g++-7
# - name: node-12-conan-linux-release
# build_node_package: true
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TYPE: Release
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-12-conan-linux-release
build_node_package: true
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TYPE: Release
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-12-conan-linux-debug
# build_node_package: true
# continue-on-error: false
# node: 12
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-12-conan-linux-debug
build_node_package: true
continue-on-error: false
node: 12
runs-on: ubuntu-20.04
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-14-conan-linux-release
# build_node_package: true
# continue-on-error: false
# node: 14
# runs-on: ubuntu-20.04
# BUILD_TYPE: Release
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-release
build_node_package: true
continue-on-error: false
node: 14
runs-on: ubuntu-20.04
BUILD_TYPE: Release
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-14-conan-linux-debug
# build_node_package: true
# continue-on-error: false
# node: 14
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-debug
build_node_package: true
continue-on-error: false
node: 14
runs-on: ubuntu-20.04
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-16-conan-linux-release
# build_node_package: true
# continue-on-error: false
# node: 16
# runs-on: ubuntu-20.04
# BUILD_TYPE: Release
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-release
build_node_package: true
continue-on-error: false
node: 16
runs-on: ubuntu-20.04
BUILD_TYPE: Release
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-16-conan-linux-debug
# build_node_package: true
# continue-on-error: false
# node: 16
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-debug
build_node_package: true
continue-on-error: false
node: 16
runs-on: ubuntu-20.04
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-macos-x64-release-node-latest
# build_node_package: true
# continue-on-error: true
# node: latest
# runs-on: macos-11
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-latest
build_node_package: true
continue-on-error: true
node: latest
runs-on: macos-11
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-latest
# build_node_package: true
# continue-on-error: true
# node: latest
# runs-on: macos-11
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON
- name: conan-macos-arm64-release-node-latest
build_node_package: true
continue-on-error: true
node: latest
runs-on: macos-11
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON
# - name: node-latest-conan-linux-release
# build_node_package: true
# continue-on-error: true
# node: latest
# runs-on: ubuntu-20.04
# BUILD_TYPE: Release
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-latest-conan-linux-release
build_node_package: true
continue-on-error: true
node: latest
runs-on: ubuntu-20.04
BUILD_TYPE: Release
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-latest-conan-linux-debug
# build_node_package: true
# continue-on-error: true
# node: latest
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-latest-conan-linux-debug
build_node_package: true
continue-on-error: true
node: latest
runs-on: ubuntu-20.04
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-macos-x64-release-node-lts
# build_node_package: true
# continue-on-error: true
# node: "lts/*"
# runs-on: macos-11
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-lts
build_node_package: true
continue-on-error: true
node: "lts/*"
runs-on: macos-11
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-lts
# build_node_package: true
# continue-on-error: true
# node: "lts/*"
# runs-on: macos-11
# BUILD_TYPE: Release
# CCOMPILER: clang
# CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON
- name: conan-macos-arm64-release-node-lts
build_node_package: true
continue-on-error: true
node: "lts/*"
runs-on: macos-11
BUILD_TYPE: Release
CCOMPILER: clang
CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON
# - name: node-lts-conan-linux-release
# build_node_package: true
# continue-on-error: true
# node: "lts/*"
# runs-on: ubuntu-20.04
# BUILD_TYPE: Release
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-lts-conan-linux-release
build_node_package: true
continue-on-error: true
node: "lts/*"
runs-on: ubuntu-20.04
BUILD_TYPE: Release
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-lts-conan-linux-debug
# build_node_package: true
# continue-on-error: true
# node: "lts/*"
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
- name: node-lts-conan-linux-debug
build_node_package: true
continue-on-error: true
node: "lts/*"
runs-on: ubuntu-20.04
BUILD_TYPE: Debug
CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON
name: ${{ matrix.name}}
continue-on-error: ${{ matrix.continue-on-error }}
@ -700,7 +698,9 @@ jobs:
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
make --jobs=${JOBS}
popd
- run: cd routed-js && npm ci && npm link
- name: Install osrm-routed-js dependencies
if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != '12' }}
run: cd routed-js && npm ci && npm link &&osrm-routed-js --version
- run: osrm-routed-js --version
- name: Run all tests
if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }}

View File

@ -185,11 +185,16 @@ class OSRMLoader {
this.loader = {shutdown: (cb) => cb() };
}
if (this.method === 'datastore') {
// shutdown only if we are switching from another loader type
if (this.loader !== this.sharedLoader) {
this.loader.shutdown((err) => {
if (err) return callback(err);
this.loader = this.sharedLoader;
this.sharedLoader.load(inputFile, callback);
});
} else {
this.sharedLoader.load(inputFile, callback);
}
} else if (this.method === 'directly') {
this.loader.shutdown((err) => {
if (err) return callback(err);
@ -203,7 +208,7 @@ class OSRMLoader {
this.mmapLoader.load(inputFile, callback);
});
} else {
callback(new Error('*** Unknown load method ' + method));
callback(new Error('*** Unknown load method ' + this.method));
}
}

View File

@ -19,7 +19,7 @@
},
"scripts": {
"lint": "node ./node_modules/eslint/bin/eslint.js -c ./.eslintrc features/step_definitions/ features/support/",
"test": "./scripts/run_cucumber_tests.sh",
"test": "npm run lint && ./scripts/run_cucumber_tests.sh",
"clean": "rm -rf test/cache",
"docs": "./scripts/build_api_docs.sh",
"install": "node-pre-gyp install --fallback-to-build=false || ./scripts/node_install.sh",

View File

@ -278,27 +278,15 @@ function parseQueryString(queryString) {
// 0 means "infinity"
maxKeys: 0
});
// TODO: copy-paste
if ('timestamps' in parsed) {
parsed['timestamps'] = parseArray(parsed['timestamps'], ';');
for (const key of ['timestamps', 'radiuses', 'approaches', 'waypoints', 'hints']) {
if (key in parsed) {
parsed[key] = parseArray(parsed[key], ';');
}
if ('radiuses' in parsed) {
parsed['radiuses'] = parseArray(parsed['radiuses'], ';');
}
if ('approaches' in parsed) {
parsed['approaches'] = parseArray(parsed['approaches'], ';');
for (const key of ['sources', 'destinations']) {
if (key in parsed && parsed[key] !== 'all') {
parsed[key] = parseArray(parsed[key], ';');
}
if ('waypoints' in parsed) {
parsed['waypoints'] = parseArray(parsed['waypoints'], ';');
}
if ('sources' in parsed && parsed['sources'] !== 'all') {
parsed['sources'] = parseArray(parsed['sources'], ';');
}
if ('destinations' in parsed && parsed['destinations'] !== 'all') {
parsed['destinations'] = parseArray(parsed['destinations'], ';');
}
if ('hints' in parsed) {
parsed['hints'] = parseArray(parsed['hints'], ';');
}
if ('exclude' in parsed) {
parsed['exclude'] = parseArray(parsed['exclude'], ',');

View File

@ -296,27 +296,15 @@ export function parseQueryString(queryString: string): any {
// 0 means "infinity"
maxKeys: 0
});
// TODO: copy-paste
if ('timestamps' in parsed) {
parsed['timestamps'] = parseArray(parsed['timestamps'], ';');
for (const key of ['timestamps', 'radiuses', 'approaches', 'waypoints', 'hints']) {
if (key in parsed) {
parsed[key] = parseArray(parsed[key], ';');
}
if ('radiuses' in parsed) {
parsed['radiuses'] = parseArray(parsed['radiuses'], ';');
}
if ('approaches' in parsed) {
parsed['approaches'] = parseArray(parsed['approaches'], ';');
for (const key of ['sources', 'destinations']) {
if (key in parsed && parsed[key] !== 'all') {
parsed[key] = parseArray(parsed[key], ';');
}
if ('waypoints' in parsed) {
parsed['waypoints'] = parseArray(parsed['waypoints'], ';');
}
if ('sources' in parsed && parsed['sources'] !== 'all') {
parsed['sources'] = parseArray(parsed['sources'], ';');
}
if ('destinations' in parsed && parsed['destinations'] !== 'all') {
parsed['destinations'] = parseArray(parsed['destinations'], ';');
}
if ('hints' in parsed) {
parsed['hints'] = parseArray(parsed['hints'], ';');
}
if ('exclude' in parsed) {
parsed['exclude'] = parseArray(parsed['exclude'], ',');

View File

@ -1,12 +1,17 @@
#!/bin/sh
set -e
export OSRM_USE_ROUTED_JS=1
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js -m mmap
node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js
node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js -m mmap
unset OSRM_USE_ROUTED_JS
# we do not run `osrm-routed-js` tests on v12 since fastify doesn't support it
NODE_VERSION=$(node --version)
NODE_MAJOR_VERSION=$(echo $NODE_VERSION | cut -d. -f1)
if [[ $NODE_MAJOR_VERSION != "v12" ]]; then
export OSRM_USE_ROUTED_JS=1
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js -m mmap
node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js
node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js -m mmap
unset OSRM_USE_ROUTED_JS
fi
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify
node ./node_modules/cucumber/bin/cucumber.js features/ -p verify -m mmap