]> git.immae.eu Git - github/fretlink/purs-loader.git/blobdiff - lib/index.js
Build v4.1.0
[github/fretlink/purs-loader.git] / lib / index.js
index 3f37e3cc89a84ac66ab87aac80dbb6638df26aa2..c6e88f83b2007221a5de698a82bb5fd12b83ff1e 100644 (file)
@@ -216,6 +216,35 @@ module.exports = function purescriptLoader(source, map) {
             var baseModulePath = path.join(_this.rootContext, filename);
             _this.addDependency(baseModulePath);
 
+            var foreignModulesErrorCodes = ['ErrorParsingFFIModule', 'MissingFFIImplementations', 'UnusedFFIImplementations', 'MissingFFIModule'];
+            var _iteratorNormalCompletion2 = true;
+            var _didIteratorError2 = false;
+            var _iteratorError2 = undefined;
+
+            try {
+              for (var _iterator2 = foreignModulesErrorCodes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+                var code = _step2.value;
+
+                if (error.includes(code)) {
+                  var resolved = utils.resolveForeignModule(baseModulePath);
+                  _this.addDependency(resolved);
+                }
+              }
+            } catch (err) {
+              _didIteratorError2 = true;
+              _iteratorError2 = err;
+            } finally {
+              try {
+                if (!_iteratorNormalCompletion2 && _iterator2.return) {
+                  _iterator2.return();
+                }
+              } finally {
+                if (_didIteratorError2) {
+                  throw _iteratorError2;
+                }
+              }
+            }
+
             var matchErrModuleName = /in module ((?:\w+\.)*\w+)/;
 
             var _ref4 = matchErrModuleName.exec(error) || [],
@@ -234,12 +263,12 @@ module.exports = function purescriptLoader(source, map) {
                   targetModuleName = _ref7[1];
 
               if (targetModuleName) {
-                var resolved = utils.resolvePursModule({
+                var _resolved = utils.resolvePursModule({
                   baseModulePath: baseModulePath,
                   baseModuleName: baseModuleName,
                   targetModuleName: targetModuleName
                 });
-                _this.addDependency(resolved);
+                _this.addDependency(_resolved);
               }
             }
 
@@ -254,28 +283,28 @@ module.exports = function purescriptLoader(source, map) {
                   dependencies = _describePscError$dep === undefined ? [] : _describePscError$dep,
                   details = _describePscError.details;
 
-              var _iteratorNormalCompletion2 = true;
-              var _didIteratorError2 = false;
-              var _iteratorError2 = undefined;
+              var _iteratorNormalCompletion3 = true;
+              var _didIteratorError3 = false;
+              var _iteratorError3 = undefined;
 
               try {
 
-                for (var _iterator2 = dependencies[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-                  var dep = _step2.value;
+                for (var _iterator3 = dependencies[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
+                  var dep = _step3.value;
 
                   _this.addDependency(dep);
                 }
               } catch (err) {
-                _didIteratorError2 = true;
-                _iteratorError2 = err;
+                _didIteratorError3 = true;
+                _iteratorError3 = err;
               } finally {
                 try {
-                  if (!_iteratorNormalCompletion2 && _iterator2.return) {
-                    _iterator2.return();
+                  if (!_iteratorNormalCompletion3 && _iterator3.return) {
+                    _iterator3.return();
                   }
                 } finally {
-                  if (_didIteratorError2) {
-                    throw _iteratorError2;
+                  if (_didIteratorError3) {
+                    throw _iteratorError3;
                   }
                 }
               }