]> git.immae.eu Git - github/fretlink/purs-loader.git/commitdiff
Use emitError and emitWarning
authoreric thul <thul.eric@gmail.com>
Sat, 19 Nov 2016 18:57:32 +0000 (13:57 -0500)
committereric thul <thul.eric@gmail.com>
Sat, 19 Nov 2016 18:57:32 +0000 (13:57 -0500)
src/Psc.js
src/PscIde.js
src/index.js

index 437eb9176e444406a436f9cfffc1c9c5ffe84a5a..8fe843751442b42b2dae5de7ca4374d996b03661 100644 (file)
@@ -40,10 +40,16 @@ function compile(psModule) {
       debug('finished compiling PureScript.')
       cache.compilationFinished = true
       if (code !== 0) {
-        cache.errors = stderr.join('')
+        const errorMessage = stderr.join('');
+        if (errorMessage.length) {
+          psModule.emitError(errorMessage);
+        }
         reject(new Error('compilation failed'))
       } else {
-        cache.warnings = stderr.join('')
+        const warningMessage = stderr.join('');
+        if (options.warnings && warningMessage.length) {
+          psModule.emitWarning(warningMessage);
+        }
         resolve(psModule)
       }
     })
@@ -83,7 +89,10 @@ function bundle(options, cache) {
     compilation.on('close', code => {
       debug('finished bundling PureScript.')
       if (code !== 0) {
-        cache.errors = (cache.errors || '') + stderr.join('')
+        const errorMessage = stderr.join('');
+        if (errorMessage.length) {
+          psModule.emitError(errorMessage);
+        }
         return reject(new Error('bundling failed'))
       }
       cache.bundle = stderr
index 2e105be4f3a2684594891218cea52a793e63a5ec..27b49f6098ede154a3855d6800318e65eb868592 100644 (file)
@@ -156,11 +156,17 @@ function rebuild(psModule) {
               .then(resolve)
               .catch(() => resolve(psModule))
           }
-          cache.errors = compileMessages.join('\n')
+          const errorMessage = compileMessages.join('\n');
+          if (errorMessage.length) {
+            psModule.emitError(errorMessage);
+          }
           resolve(psModule);
         } else {
-          cache.warnings = compileMessages.join('\n')
-          resolve(psModule)
+          const warningMessage = compileMessages.join('\n');
+          if (options.warnings && warningMessage.length) {
+            psModule.emitWarning(warningMessage);
+          }
+          resolve(psModule);
         }
       })
     })
index f3b2fdec2205ed0ac88679bd8ee94e8e918d1fa9..7c296508a4e8b81cdb683d6351fd78b849f86984 100644 (file)
@@ -62,21 +62,6 @@ module.exports = function purescriptLoader(source, map) {
         psModuleMap: cache.psModuleMap
       }
     })
-
-    // add psc warnings to webpack compilation warnings
-    this._compiler.plugin('after-compile', (compilation, callback) => {
-      if (options.warnings && cache.warnings) {
-        compilation.warnings.unshift(`PureScript compilation:\n${cache.warnings}`)
-        cache.warnings = null;
-      }
-
-      if (cache.errors) {
-        compilation.errors.unshift(`PureScript compilation:\n${cache.errors}`)
-        cache.errors = null;
-      }
-
-      callback()
-    })
   }
 
   const psModuleName = PsModuleMap.match(source)
@@ -89,6 +74,8 @@ module.exports = function purescriptLoader(source, map) {
     jsPath: path.resolve(path.join(options.output, psModuleName, 'index.js')),
     options: options,
     cache: cache,
+    emitWarning: warning => this.emitWarning(warning),
+    emitError: error => this.emitError(error)
   }
 
   debug('loader called', psModule.name)