From 4aa37882fe1e662193e1cfe0d0a428d414e9aa6a Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Tue, 14 Nov 2017 21:08:15 -0500 Subject: [PATCH] Bump nodejs version to 6+ (#4272) * let travis build against 3.x * Cleanup dependencies and bump min version to current LTS * Makes npm-git push all branches to -preview * restores releases * Bumps mime to 2.0.3 (requires node 6+) * Bumps express to latest version * Fixes linting issue after upgrade * Use travis-branch for partial releases --- .babelrc | 7 +++---- .travis.yml | 10 ++++++---- package.json | 11 ++++------- resources/npm-git.sh | 10 ++++++++-- src/Controllers/FilesController.js | 6 +++--- src/Options/index.js | 2 +- src/Routers/FilesRouter.js | 2 +- 7 files changed, 26 insertions(+), 22 deletions(-) diff --git a/.babelrc b/.babelrc index b1ff51d47d..509c3decfe 100644 --- a/.babelrc +++ b/.babelrc @@ -1,13 +1,12 @@ { "plugins": [ - "transform-flow-strip-types" + "transform-flow-strip-types", + "transform-object-rest-spread" ], "presets": [ - "es2015", - "stage-3", ["env", { "targets": { - "node": "4.6" + "node": "6.11.4" } }] ] diff --git a/.travis.yml b/.travis.yml index 2536a6ce23..a189c4ac0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,13 +25,13 @@ stage: test env: global: - COVERAGE_OPTION='./node_modules/.bin/nyc' - - NODE_VERSION=6.10 + - NODE_VERSION=6.11.4 matrix: - MONGODB_VERSION=3.2.13 - MONGODB_VERSION=3.4.4 - PARSE_SERVER_TEST_DB=postgres - PARSE_SERVER_TEST_CACHE=redis - - NODE_VERSION=8.5 + - NODE_VERSION=8.7 before_install: - nvm install $NODE_VERSION - nvm use $NODE_VERSION @@ -48,7 +48,7 @@ jobs: include: # release on github latest branch - stage: release - node_js: '4.6' + node_js: '6.11.4' env: before_script: skip after_script: skip @@ -58,7 +58,9 @@ jobs: skip_cleanup: true script: ./resources/npm-git.sh on: - branch: master + branch: + - master + - 3.x - provider: npm skip_cleanup: true email: diff --git a/package.json b/package.json index 9eac622018..8682a4cb29 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,11 @@ "body-parser": "1.18.2", "commander": "2.11.0", "deepcopy": "0.6.3", - "express": "4.16.0", + "express": "4.16.2", "intersect": "1.0.1", "lodash": "4.17.4", "lru-cache": "4.1.1", - "mime": "1.4.1", + "mime": "2.0.3", "mongodb": "2.2.33", "multer": "1.3.0", "parse": "1.10.2", @@ -48,12 +48,9 @@ "babel-cli": "6.26.0", "babel-core": "6.26.0", "babel-eslint": "^8.0.0", - "babel-plugin-syntax-flow": "6.18.0", "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", "bcrypt-nodejs": "0.0.3", "cross-env": "5.1.1", "deep-diff": "0.3.8", @@ -80,7 +77,7 @@ "prepublish": "npm run build" }, "engines": { - "node": ">=4.6" + "node": ">=6.11.4" }, "bin": { "parse-server": "./bin/parse-server" diff --git a/resources/npm-git.sh b/resources/npm-git.sh index 7fa1dd0642..c538b77fd7 100755 --- a/resources/npm-git.sh +++ b/resources/npm-git.sh @@ -9,6 +9,12 @@ # From: https://github.com/graphql/graphql-js/blob/master/resources/npm-git.sh BUILD_DIR=latest +BRANCH="${TRAVIS_BRANCH}" +TARGET="latest" +if [ "$BRANCH" != "master" ]; +then + TARGET="$BRANCH-preview" +fi npm run build @@ -29,5 +35,5 @@ git init git config user.name "Travis CI" git config user.email "github@fb.com" git add . -git commit -m "Deploy master to LATEST branch" -git push --force --quiet "https://${GH_TOKEN}@github.com/parse-community/parse-server.git" master:latest +git commit -m "Deploy $BRANCH to $TARGET branch" +git push --force --quiet "https://${GH_TOKEN}@github.com/parse-community/parse-server.git" master:$TARGET diff --git a/src/Controllers/FilesController.js b/src/Controllers/FilesController.js index e8bcbc71d9..2ea83412db 100644 --- a/src/Controllers/FilesController.js +++ b/src/Controllers/FilesController.js @@ -19,10 +19,10 @@ export class FilesController extends AdaptableController { const hasExtension = extname.length > 0; - if (!hasExtension && contentType && mime.extension(contentType)) { - filename = filename + '.' + mime.extension(contentType); + if (!hasExtension && contentType && mime.getExtension(contentType)) { + filename = filename + '.' + mime.getExtension(contentType); } else if (hasExtension && !contentType) { - contentType = mime.lookup(filename); + contentType = mime.getType(filename); } filename = randomHexString(32) + '_' + filename; diff --git a/src/Options/index.js b/src/Options/index.js index e501dd7af5..5d5f4ecc8b 100644 --- a/src/Options/index.js +++ b/src/Options/index.js @@ -116,7 +116,7 @@ export interface ParseServerOptions { enableSingleSchemaCache: ?boolean; // = false /* Sets the number of characters in generated object id's, default 10 */ objectIdSize: ?number; // = 10 - /* The port to run the ParseServer. defaults to 1337.@parse/gcs-adapter + /* The port to run the ParseServer. defaults to 1337. :ENV: PORT */ port: ?number; // = 1337 /* The host to serve ParseServer on. defaults to 0.0.0.0 */ diff --git a/src/Routers/FilesRouter.js b/src/Routers/FilesRouter.js index 5e09d045f7..8312526f30 100644 --- a/src/Routers/FilesRouter.js +++ b/src/Routers/FilesRouter.js @@ -37,7 +37,7 @@ export class FilesRouter { const config = Config.get(req.params.appId); const filesController = config.filesController; const filename = req.params.filename; - const contentType = mime.lookup(filename); + const contentType = mime.getType(filename); if (isFileStreamable(req, filesController)) { filesController.getFileStream(config, filename).then((stream) => { handleFileStream(stream, req, res, contentType);