From c7e133790d29957884edfe78939dfcbb63ad11b4 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 30 Jul 2017 01:04:23 -0400 Subject: [PATCH] get things working in node 4 again --- package.json | 27 ++++++++++++++------------- test/helpers.js | 10 +++------- test/setup.js | 24 ++++++++++++++++++++++-- yarn.lock | 14 +++++++++++++- 4 files changed, 52 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 8362d3ea1b..3cf63c5889 100644 --- a/package.json +++ b/package.json @@ -45,13 +45,9 @@ "babel": "^6.23.0", "babel-core": "^6.23.1", "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-preset-env": "^1.2.1", + "babel-plugin-transform-new-target": "^7.0.0-alpha.14", + "babel-polyfill": "^6.23.0", + "babel-preset-env": "^1.6.0", "babel-register": "^6.23.0", "chalk": "^2.0.1", "codecov": "^2.2.0", @@ -91,13 +87,18 @@ ] }, "babel": { + "presets": [ + [ + "env", + { + "targets": { + "node": "current" + } + } + ] + ], "plugins": [ - "transform-es2015-arrow-functions", - "transform-es2015-block-scoping", - "transform-es2015-spread", - "transform-es2015-parameters", - "transform-es2015-destructuring", - "transform-es2015-modules-commonjs" + "transform-new-target" ] } } diff --git a/test/helpers.js b/test/helpers.js index 01b92e66ce..f4be292ef4 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -5,12 +5,6 @@ import fs from 'fs'; import path from 'path'; import chalk from 'chalk'; -import * as consoleGroup from 'console-group'; -consoleGroup.install(); - -import * as sourceMapSupport from 'source-map-support'; -sourceMapSupport.install(); - // for coverage purposes, we need to test source files, // but for sanity purposes, we need to test dist files export function loadSvelte(test) { @@ -150,7 +144,9 @@ export function loadConfig(file) { try { const resolved = require.resolve(file); delete require.cache[resolved]; - return require(resolved); + + const config = require(resolved); + return config.default || config; } catch (err) { if (err.code === 'MODULE_NOT_FOUND') { return {}; diff --git a/test/setup.js b/test/setup.js index 6bf7a4ea8c..a94168a797 100644 --- a/test/setup.js +++ b/test/setup.js @@ -2,14 +2,33 @@ const nodeVersionMatch = /^v(\d)/.exec(process.version); const legacy = +nodeVersionMatch[1] < 6; const babelrc = require("../package.json").babel; const fs = require('fs'); +const path = require('path'); + +require('console-group').install(); +require('source-map-support').install(); if (legacy) { - require("babel-register")(babelrc); + require("babel-polyfill"); + require("babel-register")(Object.assign(babelrc, { + ignore: function(filename) { + const relative = path.relative(process.cwd(), filename); + + if (relative.startsWith('node_modules')) { + if (relative.startsWith('node_modules/jsdom')) return false; + if (relative.startsWith('node_modules/whatwg-url')) return false; + return true; + } + + if (relative === 'compiler/svelte.js') return true; + + return false; + } + })); } else { require.extensions['.js'] = function(module, filename) { const exports = []; - let code = fs.readFileSync(filename, 'utf-8') + var code = fs.readFileSync(filename, 'utf-8') .replace(/^import (?:\* as )?(\w+) from ['"]([^'"]+)['"];?/gm, 'var $1 = require("$2");') .replace(/^import {([^}]+)} from ['"](.+)['"];?/gm, 'var {$1} = require("$2");') .replace(/^export default /gm, 'module.exports = ') @@ -38,3 +57,4 @@ if (legacy) { } }; } + diff --git a/yarn.lock b/yarn.lock index 466f8888f0..6e47f09860 100644 --- a/yarn.lock +++ b/yarn.lock @@ -570,6 +570,10 @@ babel-plugin-transform-exponentiation-operator@^6.22.0: babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" +babel-plugin-transform-new-target@^7.0.0-alpha.14: + version "7.0.0-alpha.17" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-new-target/-/babel-plugin-transform-new-target-7.0.0-alpha.17.tgz#69e62b7bc60a43201af0cfec5a3fea142a399897" + babel-plugin-transform-regenerator@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" @@ -583,7 +587,15 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-preset-env@^1.2.1: +babel-polyfill@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-preset-env@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" dependencies: