const baseModulePath = path.join(this.rootContext, filename);
this.addDependency(baseModulePath);
+ const foreignModulesErrorCodes = [
+ 'ErrorParsingFFIModule',
+ 'MissingFFIImplementations',
+ 'UnusedFFIImplementations',
+ 'MissingFFIModule'
+ ];
+ for (const code of foreignModulesErrorCodes) {
+ if (error.includes(code)) {
+ const resolved = utils.resolveForeignModule(baseModulePath);
+ this.addDependency(resolved);
+ }
+ }
+
const matchErrModuleName = /in module ((?:\w+\.)*\w+)/;
const [, baseModuleName] = matchErrModuleName.exec(error) || [];
if (!baseModuleName) continue;
`${path.join(...parts)}.purs`)
: baseModulePath;
};
+
+exports.resolveForeignModule = pursModulePath =>
+ path.join(path.dirname(pursModulePath),
+ path.basename(pursModulePath, path.extname(pursModulePath)) + '.js');