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 popd
./scripts/error_on_dirty.sh ./scripts/error_on_dirty.sh
# docker-image: # docker-image:
# needs: format-taginfo-docs # needs: format-taginfo-docs
# runs-on: ubuntu-22.04 # runs-on: ubuntu-22.04
@ -169,62 +167,62 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
# - name: gcc-9-debug-cov - name: gcc-9-debug-cov
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: gcc-9 CCOMPILER: gcc-9
# CUCUMBER_TIMEOUT: 20000 CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: g++-9 CXXCOMPILER: g++-9
# ENABLE_COVERAGE: ON ENABLE_COVERAGE: ON
# - name: gcc-9-debug-asan-ubsan - name: gcc-9-debug-asan-ubsan
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: gcc-9 CCOMPILER: gcc-9
# CUCUMBER_TIMEOUT: 20000 CUCUMBER_TIMEOUT: 20000
# CXXCOMPILER: g++-9 CXXCOMPILER: g++-9
# ENABLE_SANITIZER: ON ENABLE_SANITIZER: ON
# TARGET_ARCH: x86_64-asan-ubsan TARGET_ARCH: x86_64-asan-ubsan
# OSRM_CONNECTION_RETRIES: 10 OSRM_CONNECTION_RETRIES: 10
# OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
# - name: clang-6.0-debug - name: clang-6.0-debug
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# - name: clang-11.0-debug-clang-tidy - name: clang-11.0-debug-clang-tidy
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-14 CCOMPILER: clang-14
# CXXCOMPILER: clang++-14 CXXCOMPILER: clang++-14
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_CLANG_TIDY: ON ENABLE_CLANG_TIDY: ON
# - name: conan-linux-debug-asan-ubsan - name: conan-linux-debug-asan-ubsan
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-11 CCOMPILER: clang-11
# CXXCOMPILER: clang++-11 CXXCOMPILER: clang++-11
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# ENABLE_SANITIZER: ON ENABLE_SANITIZER: ON
- name: conan-linux-release - name: conan-linux-release
continue-on-error: false continue-on-error: false
@ -236,290 +234,290 @@ jobs:
CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: gcc-11-release - name: gcc-11-release
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-11 CCOMPILER: gcc-11
# CXXCOMPILER: g++-11 CXXCOMPILER: g++-11
# ENABLE_BENCHMARKS: ON ENABLE_BENCHMARKS: ON
# - name: gcc-10-release - name: gcc-10-release
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-10 CCOMPILER: gcc-10
# CXXCOMPILER: g++-10 CXXCOMPILER: g++-10
# - name: gcc-9-release - name: gcc-9-release
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-9 CCOMPILER: gcc-9
# CXXCOMPILER: g++-9 CXXCOMPILER: g++-9
# CXXFLAGS: -Wno-cast-function-type CXXFLAGS: -Wno-cast-function-type
# - name: gcc-9-conan-release-i686 - name: gcc-9-conan-release-i686
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-9 CCOMPILER: gcc-9
# CFLAGS: "-m32 -msse2 -mfpmath=sse" CFLAGS: "-m32 -msse2 -mfpmath=sse"
# CXXCOMPILER: g++-9 CXXCOMPILER: g++-9
# CXXFLAGS: "-m32 -msse2 -mfpmath=sse" CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
# TARGET_ARCH: i686 TARGET_ARCH: i686
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: gcc-8-release - name: gcc-8-release
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-8 CCOMPILER: gcc-8
# CXXCOMPILER: g++-8 CXXCOMPILER: g++-8
# CXXFLAGS: -Wno-cast-function-type CXXFLAGS: -Wno-cast-function-type
# - name: gcc-7-release - name: gcc-7-release
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: gcc-7 CCOMPILER: gcc-7
# CXXCOMPILER: g++-7 CXXCOMPILER: g++-7
# - name: conan-macos-x64-release-node-12 - name: conan-macos-x64-release-node-12
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: macos-11 runs-on: macos-11
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-x64-release-node-14 - name: conan-macos-x64-release-node-14
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 14 node: 14
# runs-on: macos-11 runs-on: macos-11
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-x64-release-node-16 - name: conan-macos-x64-release-node-16
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 16 node: 16
# runs-on: macos-11 runs-on: macos-11
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-16 - name: conan-macos-arm64-release-node-16
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 16 node: 16
# runs-on: macos-11 runs-on: macos-11
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON ENABLE_APPLE_SILICON: ON
# - name: gcc-7-release-shared - name: gcc-7-release-shared
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TOOLS: ON BUILD_TOOLS: ON
# BUILD_TYPE: Release BUILD_TYPE: Release
# BUILD_SHARED_LIBS: ON BUILD_SHARED_LIBS: ON
# CCOMPILER: gcc-7 CCOMPILER: gcc-7
# CXXCOMPILER: g++-7 CXXCOMPILER: g++-7
# - name: node-12-conan-linux-release - name: node-12-conan-linux-release
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-12-conan-linux-debug - name: node-12-conan-linux-debug
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 12 node: 12
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-14-conan-linux-release - name: node-14-conan-linux-release
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 14 node: 14
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-14-conan-linux-debug - name: node-14-conan-linux-debug
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 14 node: 14
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-16-conan-linux-release - name: node-16-conan-linux-release
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 16 node: 16
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-16-conan-linux-debug - name: node-16-conan-linux-debug
# build_node_package: true build_node_package: true
# continue-on-error: false continue-on-error: false
# node: 16 node: 16
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-macos-x64-release-node-latest - name: conan-macos-x64-release-node-latest
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: latest node: latest
# runs-on: macos-11 runs-on: macos-11
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-latest - name: conan-macos-arm64-release-node-latest
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: latest node: latest
# runs-on: macos-11 runs-on: macos-11
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON ENABLE_APPLE_SILICON: ON
# - name: node-latest-conan-linux-release - name: node-latest-conan-linux-release
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: latest node: latest
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-latest-conan-linux-debug - name: node-latest-conan-linux-debug
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: latest node: latest
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: conan-macos-x64-release-node-lts - name: conan-macos-x64-release-node-lts
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: "lts/*" node: "lts/*"
# runs-on: macos-11 runs-on: macos-11
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# - name: conan-macos-arm64-release-node-lts - name: conan-macos-arm64-release-node-lts
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: "lts/*" node: "lts/*"
# runs-on: macos-11 runs-on: macos-11
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang CCOMPILER: clang
# CXXCOMPILER: clang++ CXXCOMPILER: clang++
# CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
# ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON ENABLE_APPLE_SILICON: ON
# - name: node-lts-conan-linux-release - name: node-lts-conan-linux-release
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: "lts/*" node: "lts/*"
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Release BUILD_TYPE: Release
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-lts-conan-linux-debug - name: node-lts-conan-linux-debug
# build_node_package: true build_node_package: true
# continue-on-error: true continue-on-error: true
# node: "lts/*" node: "lts/*"
# runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
# BUILD_TYPE: Debug BUILD_TYPE: Debug
# CCOMPILER: clang-6.0 CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0 CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
name: ${{ matrix.name}} name: ${{ matrix.name}}
continue-on-error: ${{ matrix.continue-on-error }} continue-on-error: ${{ matrix.continue-on-error }}
@ -700,7 +698,9 @@ jobs:
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
make --jobs=${JOBS} make --jobs=${JOBS}
popd 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 - run: osrm-routed-js --version
- name: Run all tests - name: Run all tests
if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} 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() }; this.loader = {shutdown: (cb) => cb() };
} }
if (this.method === 'datastore') { if (this.method === 'datastore') {
this.loader.shutdown((err) => { // shutdown only if we are switching from another loader type
if (err) return callback(err); if (this.loader !== this.sharedLoader) {
this.loader = this.sharedLoader; this.loader.shutdown((err) => {
this.sharedLoader.load(inputFile, callback); 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') { } else if (this.method === 'directly') {
this.loader.shutdown((err) => { this.loader.shutdown((err) => {
if (err) return callback(err); if (err) return callback(err);
@ -198,12 +203,12 @@ class OSRMLoader {
}); });
} else if (this.method === 'mmap') { } else if (this.method === 'mmap') {
this.loader.shutdown((err) => { this.loader.shutdown((err) => {
if (err) return callback(err); if (err) return callback(err);
this.loader = this.mmapLoader; this.loader = this.mmapLoader;
this.mmapLoader.load(inputFile, callback); this.mmapLoader.load(inputFile, callback);
}); });
} else { } else {
callback(new Error('*** Unknown load method ' + method)); callback(new Error('*** Unknown load method ' + this.method));
} }
} }

View File

@ -19,7 +19,7 @@
}, },
"scripts": { "scripts": {
"lint": "node ./node_modules/eslint/bin/eslint.js -c ./.eslintrc features/step_definitions/ features/support/", "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", "clean": "rm -rf test/cache",
"docs": "./scripts/build_api_docs.sh", "docs": "./scripts/build_api_docs.sh",
"install": "node-pre-gyp install --fallback-to-build=false || ./scripts/node_install.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" // 0 means "infinity"
maxKeys: 0 maxKeys: 0
}); });
// TODO: copy-paste for (const key of ['timestamps', 'radiuses', 'approaches', 'waypoints', 'hints']) {
if ('timestamps' in parsed) { if (key in parsed) {
parsed['timestamps'] = parseArray(parsed['timestamps'], ';'); parsed[key] = parseArray(parsed[key], ';');
}
} }
if ('radiuses' in parsed) { for (const key of ['sources', 'destinations']) {
parsed['radiuses'] = parseArray(parsed['radiuses'], ';'); if (key in parsed && parsed[key] !== 'all') {
} parsed[key] = parseArray(parsed[key], ';');
if ('approaches' in parsed) { }
parsed['approaches'] = parseArray(parsed['approaches'], ';');
}
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) { if ('exclude' in parsed) {
parsed['exclude'] = parseArray(parsed['exclude'], ','); parsed['exclude'] = parseArray(parsed['exclude'], ',');

View File

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

View File

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