diff options
author | Cyril Sobierajewicz <cyril.sobierajewicz@fretlink.com> | 2018-12-03 11:33:57 +0100 |
---|---|---|
committer | Cyril Sobierajewicz <cyril.sobierajewicz@fretlink.com> | 2018-12-03 11:33:57 +0100 |
commit | 9dcf21578cb7e415e9670cd076182ee3c9b67a6b (patch) | |
tree | a5e4c0ec4a903d632a7a49419b4c4dd5db546643 | |
parent | 59223097e35133918db227b3f75e009c1c46dc68 (diff) | |
download | purs-loader-9dcf21578cb7e415e9670cd076182ee3c9b67a6b.tar.gz purs-loader-9dcf21578cb7e415e9670cd076182ee3c9b67a6b.tar.zst purs-loader-9dcf21578cb7e415e9670cd076182ee3c9b67a6b.zip |
Immediately reject modules if the compilation already failed
-rw-r--r-- | src/index.js | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/index.js b/src/index.js index cc779f7..b151d82 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -40,6 +40,7 @@ var CACHE_VAR = { | |||
40 | errors: [], | 40 | errors: [], |
41 | compilationStarted: false, | 41 | compilationStarted: false, |
42 | compilationFinished: false, | 42 | compilationFinished: false, |
43 | compilationFailed: false, | ||
43 | installed: false, | 44 | installed: false, |
44 | srcOption: [] | 45 | srcOption: [] |
45 | }; | 46 | }; |
@@ -147,6 +148,7 @@ module.exports = function purescriptLoader(source, map) { | |||
147 | errors: [], | 148 | errors: [], |
148 | compilationStarted: false, | 149 | compilationStarted: false, |
149 | compilationFinished: false, | 150 | compilationFinished: false, |
151 | compilationFailed: false, | ||
150 | installed: CACHE_VAR.installed, | 152 | installed: CACHE_VAR.installed, |
151 | srcOption: [] | 153 | srcOption: [] |
152 | }; | 154 | }; |
@@ -258,6 +260,8 @@ module.exports = function purescriptLoader(source, map) { | |||
258 | ) | 260 | ) |
259 | ) | 261 | ) |
260 | .catch(error => { | 262 | .catch(error => { |
263 | CACHE_VAR.compilationFailed = true; | ||
264 | |||
261 | CACHE_VAR.deferred[0].reject(error); | 265 | CACHE_VAR.deferred[0].reject(error); |
262 | 266 | ||
263 | CACHE_VAR.deferred.slice(1).forEach(psModule => { | 267 | CACHE_VAR.deferred.slice(1).forEach(psModule => { |
@@ -265,8 +269,9 @@ module.exports = function purescriptLoader(source, map) { | |||
265 | }) | 269 | }) |
266 | }) | 270 | }) |
267 | ; | 271 | ; |
268 | } | 272 | } else if (CACHE_VAR.compilationFailed) { |
269 | else { | 273 | CACHE_VAR.deferred.pop().reject(new Error('purs-loader failed')); |
274 | } else { | ||
270 | // The compilation has started. We must wait until it is | 275 | // The compilation has started. We must wait until it is |
271 | // done in order to ensure the module map contains all of | 276 | // done in order to ensure the module map contains all of |
272 | // the unknown modules. | 277 | // the unknown modules. |
@@ -318,6 +323,8 @@ module.exports = function purescriptLoader(source, map) { | |||
318 | ) | 323 | ) |
319 | ) | 324 | ) |
320 | .catch(error => { | 325 | .catch(error => { |
326 | CACHE_VAR.compilationFailed = true; | ||
327 | |||
321 | CACHE_VAR.deferred[0].reject(error); | 328 | CACHE_VAR.deferred[0].reject(error); |
322 | 329 | ||
323 | CACHE_VAR.deferred.slice(1).forEach(psModule => { | 330 | CACHE_VAR.deferred.slice(1).forEach(psModule => { |
@@ -325,8 +332,9 @@ module.exports = function purescriptLoader(source, map) { | |||
325 | }) | 332 | }) |
326 | }) | 333 | }) |
327 | ; | 334 | ; |
328 | } | 335 | } else if (CACHE_VAR.compilationFailed) { |
329 | else { | 336 | CACHE_VAR.deferred.pop().reject(new Error('purs-loader failed')); |
337 | } else { | ||
330 | // The complation has started. Nothing to do but wait until it is | 338 | // The complation has started. Nothing to do but wait until it is |
331 | // done before loading all of the modules. | 339 | // done before loading all of the modules. |
332 | } | 340 | } |