const difference = require('lodash.difference');
-const debug = require('debug')('purs-loader');
+const debug_ = require('debug');
+
+const debug = debug_('purs-loader');
+
+const debugVerbose = debug_('purs-loader:verbose');
const PsModuleMap = require('./PsModuleMap');
const additionalImports = difference(imports, replacedImports);
if (additionalImports.length) {
- debug('additional imports for %s: %o', name, additionalImports);
+ debugVerbose('additional imports for %s: %o', name, additionalImports);
}
const additionalImportsResult = additionalImports.map(import_ => {
- const escapedPath = jsStringEscape(psModuleMap[import_].src);
+ const moduleValue = psModuleMap[import_];
+
+ if (!moduleValue) {
+ debug('module %s was not found in the map, skipping require', import_);
+
+ return null;
+ }
+ else {
+ const escapedPath = jsStringEscape(moduleValue.src);
- return `var ${import_.replace(/\./g, '_')} = require("${escapedPath}")`;
- }).join('\n');
+ return `var ${import_.replace(/\./g, '_')} = require("${escapedPath}")`;
+ }
+ }).filter(a => a !== null).join('\n');
const result_ = result + (additionalImports.length ? '\n' + additionalImportsResult : '');
const bundlePath = path.resolve(options.bundleOutput);
- const jsPath = cache.bundle ? bundlePath : psModule.jsPath;
+ const jsPath = options.bundle ? bundlePath : psModule.jsPath;
const js = fs.readFileAsync(jsPath, 'utf8').catch(() => '');
const psModuleMap = updatePsModuleMap(psModule);
- debug('loading JavaScript for %s', psModule.name);
+ debugVerbose('loading JavaScript for %s', psModule.name);
return Promise.props({js: js, psModuleMap: psModuleMap}).then(result =>
options.bundle ?