getMain = memoize(function (path) { return readFile(resolve(path, 'package.json'), readFileOpts)( function (content) { var main = parse(stripBOM(content)).main; if (!main) throw new Error("No main setting found"); return main; } ); });
readFileData = function (filename, parser, localFilename) { return readFile(filename, readFileOpts)(function (code) { var ext = extname(filename), type; code = stripBOM(code); if ((ext !== '.js') && (ext !== '.json') && (ext !== '.css') && (ext !== '.html')) { if (parser.ext['.js'].hasOwnProperty(ext)) type = '.js'; else if (parser.ext['.json'].hasOwnProperty(ext)) type = '.json'; else if (parser.ext['.css'].hasOwnProperty(ext)) type = '.css'; else if (parser.ext['.html'].hasOwnProperty(ext)) type = '.html'; if (!type) throw new Error("Unexpected extension"); // Extension code = parser.ext[type][ext].compile(code, { filename: filename, localFilename: localFilename, sourceMap: parser.sourceMap }).code; } else { type = ext; } return deferred(code)(function (code) { var deps; if (type === '.json') { code = 'module.exports = ' + code.trim() + ';\n'; deps = []; } else if (type === '.css') { code = 'require(\'webmake/lib/browser/load-css.js\')(' + stringify(code.trim()) + ');\n'; deps = ['webmake/lib/browser/load-css.js']; } else if (type === '.html') { code = 'module.exports = ' + stringify(code) + ';\n'; deps = []; } else { if (sLast.call(code) !== '\n') code += '\n'; deps = compact.call(parseDependencies(code, filename, parser.ignoreErrors)); } if (parser.sourceMap) { code = 'eval(' + stringify(code + '//# sourceURL=' + localFilename) + ');\n'; } return { content: code, deps: deps }; }); }); };