Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let exporter = {}
- global.exporter = exporter
- const imports = function(module, callback) {
- return new (function(module, callback) {
- Object.defineProperty(exporter, 'use', {
- enumerable: false,
- configurable: true,
- set: function(exportFile) {
- console.log('Setting export file:', exportFile.name, ':', module)
- callback(exportFile)
- },
- })
- console.log('loading module: ', module)
- require(module)
- })(module, callback)
- }
- exporter.use = {
- name: 'File1',
- }
- function load(name) {
- imports(__dirname + '/modules/' + name, function(exportFile) {
- console.log('Module loaded: ', exportFile.name)
- })
- }
- load('1') // instant
- load('2') // 2 second timeout
- load('3') // 1 second timeout
- loading module: .../modules/1
- Setting export file: File1 : .../modules/1
- Module loaded: File1
- loading module: .../modules/2
- loading module: .../modules/3
- Setting export file: File3 : .../modules/3
- Module loaded: File3
- Setting export file: File2 : .../modules/3
- Module loaded: File2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement