From a854cbf674e3b02c75b06699481e3cd1baec5fdc Mon Sep 17 00:00:00 2001 From: Alan Plum Date: Tue, 22 Nov 2016 13:59:16 +0100 Subject: [PATCH] Fix Windows file path resolution --- js/server/modules/@arangodb/actions.js | 2 +- js/server/modules/@arangodb/foxx/legacy/swagger.js | 4 ++-- js/server/modules/@arangodb/foxx/swagger.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/js/server/modules/@arangodb/actions.js b/js/server/modules/@arangodb/actions.js index f4a8c85ce0..3d46f57a61 100644 --- a/js/server/modules/@arangodb/actions.js +++ b/js/server/modules/@arangodb/actions.js @@ -2018,7 +2018,7 @@ function pathHandler (req, res, options, next) { 'use strict'; var filepath, root, filename, encodedFilename; - filepath = req.suffix.length ? path.resolve(path.sep, ...req.suffix.map((part) => decodeURIComponent(part))) : ''; + filepath = req.suffix.length ? path.normalize(['', ...req.suffix.map((part) => decodeURIComponent(part))].join(path.sep)) : ''; root = options.path; if (options.root) { diff --git a/js/server/modules/@arangodb/foxx/legacy/swagger.js b/js/server/modules/@arangodb/foxx/legacy/swagger.js index 848ed5d2d3..672c6a9c62 100644 --- a/js/server/modules/@arangodb/foxx/legacy/swagger.js +++ b/js/server/modules/@arangodb/foxx/legacy/swagger.js @@ -25,7 +25,7 @@ var _ = require('lodash'); var fs = require('fs'); var joinPath = require('path').join; -var resolvePath = require('path').resolve; +var normalizePath = require('path').normalize; var internal = require('internal'); var ArangoError = require('@arangodb').ArangoError; var errors = require('@arangodb').errors; @@ -97,7 +97,7 @@ function swaggerPath (path, basePath) { if (!basePath) { basePath = joinPath(internal.startupPath, 'server', 'assets', 'swagger'); } - path = resolvePath('/', path); + path = normalizePath('/' + path); return joinPath(basePath, path); } diff --git a/js/server/modules/@arangodb/foxx/swagger.js b/js/server/modules/@arangodb/foxx/swagger.js index 4fcadc7042..2781eff907 100644 --- a/js/server/modules/@arangodb/foxx/swagger.js +++ b/js/server/modules/@arangodb/foxx/swagger.js @@ -25,7 +25,7 @@ const NotFound = require('http-errors').NotFound; const fs = require('fs'); const joinPath = require('path').join; -const resolvePath = require('path').resolve; +const normalizePath = require('path').normalize; const internal = require('internal'); const errors = require('@arangodb').errors; const FoxxManager = require('@arangodb/foxx/manager'); @@ -102,7 +102,7 @@ module.exports = function createSwaggerRouteHandler (foxxMount, opts) { } else if (path === 'index.html') { path = indexFile; } - path = resolvePath('/', path); + path = normalizePath('/' + path); const filePath = joinPath(swaggerRoot, path); if (!fs.isFile(filePath)) { throw new NotFound(`unknown path "${req._raw.url}"`);