This is an automated email from the ASF dual-hosted git repository.

scottyaslan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-fds.git


The following commit(s) were added to refs/heads/master by this push:
     new 37111a3  [NIFI-6397] - UI - isolate webpack loaders used specifically 
for code coverage purposes
37111a3 is described below

commit 37111a36f600818e0a3f05d21999b173b1d1d32e
Author: Rob Fellows <[email protected]>
AuthorDate: Mon Jul 1 09:10:49 2019 -0400

    [NIFI-6397] - UI - isolate webpack loaders used specifically for code 
coverage purposes
    
    This closes #33
    
    Signed-off-by: Scott Aslan <[email protected]>
---
 .gitignore        |   2 +-
 package-lock.json | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 package.json      |   1 +
 webpack.common.js |   2 -
 webpack.dev.js    |  15 ++--
 webpack.karma.js  |   4 +-
 webpack.loader.js |  30 ++++---
 webpack.prod.js   |   8 ++
 8 files changed, 275 insertions(+), 25 deletions(-)

diff --git a/.gitignore b/.gitignore
index 50e4fc7..994d131 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,7 @@ platform/core/common/styles/css/
 index.html
 target/
 node_modules/
-.cache-loader/
+.cache-loader*/
 coverage/
 npm-debug.log*
 fds-demo.bundle.min.js*
diff --git a/package-lock.json b/package-lock.json
index b323fd0..c26f454 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1865,6 +1865,95 @@
                 "babel-runtime": "6.26.0"
             }
         },
+        "babel-plugin-istanbul": {
+            "version": "5.1.4",
+            "resolved": 
"https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz";,
+            "integrity": 
"sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ==",
+            "dev": true,
+            "requires": {
+                "find-up": "3.0.0",
+                "istanbul-lib-instrument": "3.3.0",
+                "test-exclude": "5.2.3"
+            },
+            "dependencies": {
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";,
+                    "integrity": 
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "dev": true,
+                    "requires": {
+                        "locate-path": "3.0.0"
+                    }
+                },
+                "istanbul-lib-coverage": {
+                    "version": "2.0.5",
+                    "resolved": 
"https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";,
+                    "integrity": 
"sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+                    "dev": true
+                },
+                "istanbul-lib-instrument": {
+                    "version": "3.3.0",
+                    "resolved": 
"https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";,
+                    "integrity": 
"sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/generator": "7.4.0",
+                        "@babel/parser": "7.4.3",
+                        "@babel/template": "7.4.0",
+                        "@babel/traverse": "7.4.3",
+                        "@babel/types": "7.4.0",
+                        "istanbul-lib-coverage": "2.0.5",
+                        "semver": "6.1.3"
+                    }
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";,
+                    "integrity": 
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "dev": true,
+                    "requires": {
+                        "p-locate": "3.0.0",
+                        "path-exists": "3.0.0"
+                    }
+                },
+                "p-limit": {
+                    "version": "2.2.0",
+                    "resolved": 
"https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz";,
+                    "integrity": 
"sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+                    "dev": true,
+                    "requires": {
+                        "p-try": "2.2.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";,
+                    "integrity": 
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "dev": true,
+                    "requires": {
+                        "p-limit": "2.2.0"
+                    }
+                },
+                "p-try": {
+                    "version": "2.2.0",
+                    "resolved": 
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";,
+                    "integrity": 
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+                    "dev": true
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";,
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+                    "dev": true
+                },
+                "semver": {
+                    "version": "6.1.3",
+                    "resolved": 
"https://registry.npmjs.org/semver/-/semver-6.1.3.tgz";,
+                    "integrity": 
"sha512-aymF+56WJJMyXQHcd4hlK4N75rwj5RQpfW8ePlQnJsTYOBLlLbcIErR/G1s9SkIvKBqOudR3KAx4wEqP+F1hNQ==",
+                    "dev": true
+                }
+            }
+        },
         "babel-polyfill": {
             "version": "6.26.0",
             "resolved": 
"https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz";,
@@ -15152,6 +15241,153 @@
                 }
             }
         },
+        "test-exclude": {
+            "version": "5.2.3",
+            "resolved": 
"https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";,
+            "integrity": 
"sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+            "dev": true,
+            "requires": {
+                "glob": "7.1.4",
+                "minimatch": "3.0.4",
+                "read-pkg-up": "4.0.0",
+                "require-main-filename": "2.0.0"
+            },
+            "dependencies": {
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";,
+                    "integrity": 
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "dev": true,
+                    "requires": {
+                        "locate-path": "3.0.0"
+                    }
+                },
+                "glob": {
+                    "version": "7.1.4",
+                    "resolved": 
"https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";,
+                    "integrity": 
"sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+                    "dev": true,
+                    "requires": {
+                        "fs.realpath": "1.0.0",
+                        "inflight": "1.0.6",
+                        "inherits": "2.0.3",
+                        "minimatch": "3.0.4",
+                        "once": "1.4.0",
+                        "path-is-absolute": "1.0.1"
+                    }
+                },
+                "load-json-file": {
+                    "version": "4.0.0",
+                    "resolved": 
"https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";,
+                    "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+                    "dev": true,
+                    "requires": {
+                        "graceful-fs": "4.1.11",
+                        "parse-json": "4.0.0",
+                        "pify": "3.0.0",
+                        "strip-bom": "3.0.0"
+                    }
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";,
+                    "integrity": 
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "dev": true,
+                    "requires": {
+                        "p-locate": "3.0.0",
+                        "path-exists": "3.0.0"
+                    }
+                },
+                "p-limit": {
+                    "version": "2.2.0",
+                    "resolved": 
"https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz";,
+                    "integrity": 
"sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+                    "dev": true,
+                    "requires": {
+                        "p-try": "2.2.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";,
+                    "integrity": 
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "dev": true,
+                    "requires": {
+                        "p-limit": "2.2.0"
+                    }
+                },
+                "p-try": {
+                    "version": "2.2.0",
+                    "resolved": 
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";,
+                    "integrity": 
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+                    "dev": true
+                },
+                "parse-json": {
+                    "version": "4.0.0",
+                    "resolved": 
"https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";,
+                    "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+                    "dev": true,
+                    "requires": {
+                        "error-ex": "1.3.1",
+                        "json-parse-better-errors": "1.0.2"
+                    }
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";,
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+                    "dev": true
+                },
+                "path-type": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";,
+                    "integrity": 
"sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+                    "dev": true,
+                    "requires": {
+                        "pify": "3.0.0"
+                    }
+                },
+                "pify": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";,
+                    "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+                    "dev": true
+                },
+                "read-pkg": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";,
+                    "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+                    "dev": true,
+                    "requires": {
+                        "load-json-file": "4.0.0",
+                        "normalize-package-data": "2.4.0",
+                        "path-type": "3.0.0"
+                    }
+                },
+                "read-pkg-up": {
+                    "version": "4.0.0",
+                    "resolved": 
"https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";,
+                    "integrity": 
"sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+                    "dev": true,
+                    "requires": {
+                        "find-up": "3.0.0",
+                        "read-pkg": "3.0.0"
+                    }
+                },
+                "require-main-filename": {
+                    "version": "2.0.0",
+                    "resolved": 
"https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";,
+                    "integrity": 
"sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+                    "dev": true
+                },
+                "strip-bom": {
+                    "version": "3.0.0",
+                    "resolved": 
"https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";,
+                    "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+                    "dev": true
+                }
+            }
+        },
         "text-table": {
             "version": "0.2.0",
             "resolved": 
"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";,
@@ -16086,7 +16322,7 @@
                 "express": "4.16.4",
                 "filesize": "3.6.1",
                 "gzip-size": "5.1.0",
-                "lodash": "4.17.10",
+                "lodash": "4.17.11",
                 "mkdirp": "0.5.1",
                 "opener": "1.5.1",
                 "ws": "6.2.1"
diff --git a/package.json b/package.json
index f51f300..f305183 100644
--- a/package.json
+++ b/package.json
@@ -90,6 +90,7 @@
         "@typescript-eslint/eslint-plugin": "1.6.0",
         "babel-eslint": "10.0.1",
         "babel-loader": "8.0.5",
+        "babel-plugin-istanbul": "5.1.4",
         "babel-polyfill": "6.26.0",
         "cache-loader": "2.0.1",
         "compression-webpack-plugin": "2.0.0",
diff --git a/webpack.common.js b/webpack.common.js
index 728323f..3f6c70b 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -60,8 +60,6 @@ module.exports = {
 
     module: {
         rules: [
-            loaders.ts,
-            loaders.js,
             loaders.html,
             loaders.scss
         ]
diff --git a/webpack.dev.js b/webpack.dev.js
index f80fb80..be682f7 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -21,13 +21,14 @@ const merge = require('webpack-merge');
 const LicenseWebpackPlugin = 
require('license-webpack-plugin').LicenseWebpackPlugin;
 
 const commonConfig = require('./webpack.common');
+const loaders = require('./webpack.loader');
 
 module.exports = merge(commonConfig, {
     // Tells webpack to use its built-in optimizations accordingly
     mode: 'development',
 
     // Source maps
-    devtool: 'eval-source-map',
+    devtool: 'inline-source-map',
 
     // "webpack-dev-server" configuration
     devServer: {
@@ -55,15 +56,17 @@ module.exports = merge(commonConfig, {
         port: 28080
     },
 
+    module: {
+        rules: [
+            loaders.ts,
+            loaders.js,
+        ]
+    },
+
     plugins: [
         // Hot Module Replacement
         new webpack.HotModuleReplacementPlugin(),
 
-        // Source map generation
-        new webpack.SourceMapDevToolPlugin({
-            filename: '[file].map'
-        }),
-
         // generate a file with all bundled packages licenses' in it. This can 
be used to add to the LICENSE file
         new LicenseWebpackPlugin({
             outputFilename: './target/thirdPartyLicenses.txt',
diff --git a/webpack.karma.js b/webpack.karma.js
index 599ae74..fac7d03 100644
--- a/webpack.karma.js
+++ b/webpack.karma.js
@@ -31,8 +31,8 @@ module.exports = merge(commonConfig, {
 
     module: {
         rules: [
-            loaders.tsDev,
-            loaders.jsDev,
+            loaders.tsCoverage,
+            loaders.jsCoverage,
             loaders.html,
             loaders.ignoreScss
         ]
diff --git a/webpack.loader.js b/webpack.loader.js
index e697972..236be40 100644
--- a/webpack.loader.js
+++ b/webpack.loader.js
@@ -17,6 +17,8 @@
 const path = require('path');
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 
+const cacheCoverageDir = '.cache-loader-coverage';
+
 module.exports = {
     ts: {
         test: /\.tsx?$/,
@@ -37,7 +39,7 @@ module.exports = {
         ]
     },
 
-    tsDev: {
+    tsCoverage: {
         test: /\.tsx?$/,
         include: [
             path.resolve(__dirname, 'webapp'),
@@ -52,14 +54,14 @@ module.exports = {
                 loader: 'cache-loader'
             },
             {
+                loader: path.resolve(__dirname, 'angular-url-loader')
+            },
+            {
                 // Instrument TS files with istanbul-lib-instrument for 
subsequent code coverage reporting
                 loader: 'istanbul-instrumenter-loader',
                 options: { esModules: true }
             },
             {
-                loader: path.resolve(__dirname, 'angular-url-loader')
-            },
-            {
                 loader: 'ts-loader'
             }
         ]
@@ -73,7 +75,10 @@ module.exports = {
         ],
         use: [
             {
-                loader: 'cache-loader'
+                loader: 'cache-loader',
+                options: {
+                    cacheDirectory: cacheCoverageDir
+                }
             },
             {
                 loader: path.resolve(__dirname, 'angular-url-loader')
@@ -87,7 +92,7 @@ module.exports = {
         ]
     },
 
-    jsDev: {
+    jsCoverage: {
         test: /\.js$/,
         include: [
             path.resolve(__dirname, 'webapp'),
@@ -101,12 +106,10 @@ module.exports = {
         ],
         use: [
             {
-                loader: 'cache-loader'
-            },
-            {
-                // Instrument JS files with istanbul-lib-instrument for 
subsequent code coverage reporting
-                loader: 'istanbul-instrumenter-loader',
-                options: {esModules: true}
+                loader: 'cache-loader',
+                options: {
+                    cacheDirectory: cacheCoverageDir
+                }
             },
             {
                 loader: path.resolve(__dirname, 'angular-url-loader')
@@ -114,7 +117,8 @@ module.exports = {
             {
                 loader: 'babel-loader',
                 options: {
-                    presets: ['@babel/preset-env']
+                    presets: ['@babel/preset-env'],
+                    plugins: ['babel-plugin-istanbul']
                 }
             }
         ]
diff --git a/webpack.prod.js b/webpack.prod.js
index 72a4aca..b13ac0d 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -21,6 +21,7 @@ const OptimizeCSSAssetsPlugin = 
require('optimize-css-assets-webpack-plugin');
 const cssnano = require('cssnano');
 
 const commonConfig = require('./webpack.common');
+const loaders = require('./webpack.loader');
 
 module.exports = merge(commonConfig, {
     // Tells webpack to use its built-in optimizations accordingly
@@ -29,6 +30,13 @@ module.exports = merge(commonConfig, {
     // Source maps
     devtool: 'source-map',
 
+    module: {
+        rules: [
+            loaders.ts,
+            loaders.js,
+        ]
+    },
+
     optimization: {
         noEmitOnErrors: true,
         minimizer: [

Reply via email to