Skip to content
25 changes: 19 additions & 6 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,26 @@ module.exports = function (api) {
'ie': '10',
'node': '6'
}
}]);
}], '@babel/preset-typescript');
plugins.push(['@babel/plugin-transform-runtime', {
'useESModules': false, // default value: use helpers that get run through @babel/plugin-transform-modules-commonjs
'corejs': false // default value: use `@babel/runtime` that doesn't have built-in polyfills
}]);
'corejs': false, // default value: use `@babel/runtime` that doesn't have built-in polyfills
}], '@babel/plugin-proposal-class-properties');
break;
case 'umd': // umd build for rollup
presets.push(['@babel/preset-env', {
'useBuiltIns': false,
'modules': false,
'targets': {
'ie': '10',
'node': '6'
}
}], '@babel/preset-typescript');
plugins.push(['@babel/plugin-transform-runtime', {
'useESModules': false, // default value: use helpers that get run through @babel/plugin-transform-modules-commonjs
'corejs': false, // default value: use `@babel/runtime` that doesn't have built-in polyfills
}], '@babel/plugin-proposal-class-properties');
break;

default: // es6 build
presets.push(['@babel/preset-env', {
'useBuiltIns': false, // default value: don't add core-js or babel polyfills
Expand All @@ -32,11 +45,11 @@ module.exports = function (api) {
'ie': '10',
'node': '6'
}
}]);
}], '@babel/preset-typescript');
plugins.push(['@babel/plugin-transform-runtime', {
'useESModules': true, // use helpers that not get run through @babel/plugin-transform-modules-commonjs
'corejs': false // default value: use `@babel/runtime` that doesn't have built-in polyfills
}]);
}], '@babel/plugin-proposal-class-properties');
break;
}

Expand Down
6 changes: 6 additions & 0 deletions babel.register.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// run @babel/register but configured to transpile typescript files from `@splitsoftware/js-commons/src`
// https://babeljs.io/docs/en/babel-register
require('@babel/register')({
extensions: ['.js', '.ts'], // `babel` doesn't consider .ts files by default
ignore: [/node_modules[/](?!@splitsoftware)/], // ignore transpiling node_modules except @splitsoftware (`@babel/register` ignores node_modules by default)
});
10 changes: 7 additions & 3 deletions karma/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,14 @@ module.exports = {
// mode: 'development',
// devtool: 'inline-source-map',

resolve: {
extensions: ['.ts', '.js']
},

module: {
rules: [
{
test: /\.js$/,
test: /\.(ts|js)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
Expand All @@ -73,15 +77,15 @@ module.exports = {
},
// Required for CJS build with TSC: https://babeljs.io/docs/en/babel-preset-env/#modules
'modules': 'commonjs'
}]],
}], '@babel/preset-typescript'],
plugins: [['@babel/plugin-transform-runtime', {
// default values
'absoluteRuntime': false,
'corejs': false,
'regenerator': true,
'useESModules': false,
'helpers': true
}]]
}], '@babel/plugin-proposal-class-properties']
}
}
}
Expand Down
Loading