use.js 844 B

1234567891011121314151617181920212223242526272829
  1. var map = require('./map');
  2. var define = require('./define');
  3. var has = require('./has');
  4. var toArr = require('./toArr');
  5. exports = function(requires, method) {
  6. if (method == null) {
  7. method = requires;
  8. requires = [];
  9. }
  10. requires = map(toArr(requires), function(val) {
  11. return req(val);
  12. });
  13. method.apply(null, requires);
  14. };
  15. var modules = define._modules;
  16. var requireMarks = {};
  17. function req(name) {
  18. if (has(requireMarks, name)) return modules[name];
  19. var requires = modules[name].requires;
  20. var body = modules[name].body;
  21. var len = requires.length;
  22. for (var i = 0; i < len; i++) requires[i] = req(requires[i]);
  23. var exports = body.apply(null, requires);
  24. if (exports) modules[name] = exports;
  25. requireMarks[name] = true;
  26. return modules[name];
  27. }
  28. module.exports = exports;