Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. let exporter = {}
  2. global.exporter = exporter
  3.  
  4. const imports = function(module, callback) {
  5. return new (function(module, callback) {
  6. Object.defineProperty(exporter, 'use', {
  7. enumerable: false,
  8. configurable: true,
  9. set: function(exportFile) {
  10. console.log('Setting export file:', exportFile.name, ':', module)
  11. callback(exportFile)
  12. },
  13. })
  14.  
  15. console.log('loading module: ', module)
  16. require(module)
  17. })(module, callback)
  18. }
  19.  
  20. exporter.use = {
  21. name: 'File1',
  22. }
  23.  
  24. function load(name) {
  25. imports(__dirname + '/modules/' + name, function(exportFile) {
  26. console.log('Module loaded: ', exportFile.name)
  27. })
  28. }
  29.  
  30. load('1') // instant
  31. load('2') // 2 second timeout
  32. load('3') // 1 second timeout
  33.  
  34. loading module: .../modules/1
  35. Setting export file: File1 : .../modules/1
  36. Module loaded: File1
  37. loading module: .../modules/2
  38. loading module: .../modules/3
  39. Setting export file: File3 : .../modules/3
  40. Module loaded: File3
  41. Setting export file: File2 : .../modules/3
  42. Module loaded: File2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement