From 425320c238b27dc610a852b19a83df71cd57d257 Mon Sep 17 00:00:00 2001 From: Vikram Rangaraj Date: Sun, 21 Oct 2018 14:00:58 -0700 Subject: [PATCH] chore: upgrade to babel 7 (#915) * update babel deps * use .babelrc instead of cli arguments * upgrade build-browser script * use babel-eslint parser * use babel register to run babel on test files * build for node@0.10 --- .babelrc | 8 ++++++++ .eslintrc.json | 1 + build-browser.js | 26 ++++++++++++++++---------- package.json | 18 ++++++++++-------- test/client-side.js | 6 +++--- test/exports.js | 14 +++++++------- test/sanitizers.js | 4 ++-- test/validators.js | 15 +++++++-------- 8 files changed, 54 insertions(+), 38 deletions(-) create mode 100644 .babelrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..add9d99df --- /dev/null +++ b/.babelrc @@ -0,0 +1,8 @@ +{ + "presets": [ + ["@babel/preset-env", {"targets": {"node": "0.10"}}] + ], + "plugins": [ + "add-module-exports" + ] +} diff --git a/.eslintrc.json b/.eslintrc.json index d5fe8afdb..285c41e15 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,6 @@ { "extends": "airbnb-base", + "parser": "babel-eslint", "parserOptions": { "ecmaVersion": 6, "sourceType": "module" diff --git a/build-browser.js b/build-browser.js index 4243caaca..6101d652a 100644 --- a/build-browser.js +++ b/build-browser.js @@ -1,13 +1,15 @@ -const pkg = require('./package.json'); -const fs = require('fs'); -const rollup = require('rollup').rollup; -const babel = require('rollup-plugin-babel'); +/* eslint import/no-extraneous-dependencies: 0 */ +import fs from 'fs'; +import { rollup } from 'rollup'; +import babel from 'rollup-plugin-babel'; +import babelPresetEnv from '@babel/preset-env'; +import pkg from './package.json'; rollup({ entry: 'src/index.js', plugins: [ babel({ - presets: ['es2015-rollup'], + presets: [[babelPresetEnv, { modules: false }]], babelrc: false, }), ], @@ -17,12 +19,16 @@ rollup({ format: 'umd', moduleName: pkg.name, banner: ( - '/*!\n' + - String(fs.readFileSync('./LICENSE')).trim().split('\n').map(l => ` * ${l}`).join('\n') + - '\n */' + `/*!\n${ + String(fs.readFileSync('./LICENSE')) + .trim() + .split('\n') + .map(l => ` * ${l}`) + .join('\n') + }\n */` ), }) -)).catch(e => { - process.stderr.write(e.message + '\n'); +)).catch((e) => { + process.stderr.write(`${e.message}\n`); process.exit(1); }); diff --git a/package.json b/package.json index b5c59b8f4..32b69aa61 100644 --- a/package.json +++ b/package.json @@ -37,16 +37,18 @@ "url": "https://github.com/chriso/validator.js.git" }, "devDependencies": { - "babel-cli": "^6.24.0", - "babel-plugin-add-module-exports": "^0.2.1", - "babel-preset-es2015": "^6.24.0", - "babel-preset-es2015-rollup": "^3.0.0", + "@babel/cli": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/register": "^7.0.0", + "babel-eslint": "^10.0.1", + "babel-plugin-add-module-exports": "^1.0.0", "eslint": "^4.19.1", "eslint-config-airbnb-base": "^12.1.0", "eslint-plugin-import": "^2.11.0", "mocha": "^5.1.1", "rollup": "^0.43.0", - "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-babel": "^4.0.1", "uglify-js": "^3.0.19" }, "scripts": { @@ -56,11 +58,11 @@ "clean:browser": "rm -rf validator*.js", "clean": "npm run clean:node && npm run clean:browser", "minify": "uglifyjs validator.js -o validator.min.js --compress --mangle --comments /Copyright/", - "build:browser": "babel-node build-browser && npm run minify", - "build:node": "babel src -d . --presets es2015 --plugins add-module-exports", + "build:browser": "node --require @babel/register build-browser && npm run minify", + "build:node": "babel src -d .", "build": "npm run build:browser && npm run build:node", "pretest": "npm run lint && npm run build", - "test": "mocha --reporter dot" + "test": "mocha --require @babel/register --reporter dot" }, "engines": { "node": ">= 0.10" diff --git a/test/client-side.js b/test/client-side.js index 13ea3506a..6338fe856 100644 --- a/test/client-side.js +++ b/test/client-side.js @@ -1,6 +1,6 @@ -let assert = require('assert'); -let validator = require('../validator'); -let min = require('../validator.min'); +import assert from 'assert'; +import validator from '../validator'; +import min from '../validator.min'; describe('Minified version', () => { it('should export the same things as the server-side version', () => { diff --git a/test/exports.js b/test/exports.js index 7e2f9290f..2016d1d3e 100644 --- a/test/exports.js +++ b/test/exports.js @@ -1,10 +1,10 @@ -let assert = require('assert'); -let validator = require('../index'); -let isPostalCodeLocales = require('../lib/isPostalCode').locales; -const isAlphaLocales = require('../lib/isAlpha').locales; -const isAlphanumericLocales = require('../lib/isAlphanumeric').locales; -const isMobilePhoneLocales = require('../lib/isMobilePhone').locales; -const isFloatLocales = require('../lib/isFloat').locales; +import assert from 'assert'; +import validator from '../index'; +import { locales as isPostalCodeLocales } from '../lib/isPostalCode'; +import { locales as isAlphaLocales } from '../lib/isAlpha'; +import { locales as isAlphanumericLocales } from '../lib/isAlphanumeric'; +import { locales as isMobilePhoneLocales } from '../lib/isMobilePhone'; +import { locales as isFloatLocales } from '../lib/isFloat'; describe('Exports', () => { it('should export validators', () => { diff --git a/test/sanitizers.js b/test/sanitizers.js index 0d7eceed7..23ed3f76d 100644 --- a/test/sanitizers.js +++ b/test/sanitizers.js @@ -1,5 +1,5 @@ -let validator = require('../index'); -let format = require('util').format; +import { format } from 'util'; +import validator from '../index'; function test(options) { let args = options.args || []; diff --git a/test/validators.js b/test/validators.js index d3cbfa134..4080d249f 100644 --- a/test/validators.js +++ b/test/validators.js @@ -1,11 +1,10 @@ -let validator = require('../index'), - format = require('util').format, - assert = require('assert'), - path = require('path'), - fs = require('fs'), - vm = require('vm'); - -let validator_js = fs.readFileSync(path.join(__dirname, '../validator.js')).toString(); +import { format } from 'util'; +import assert from 'assert'; +import fs from 'fs'; +import vm from 'vm'; +import validator from '../index'; + +let validator_js = fs.readFileSync(require.resolve('../validator.js')).toString(); function test(options) { let args = options.args || [];