fuxor
v2.3.0
Published
Simple dependency injection by overriding require
Downloads
10,506
Maintainers
Readme
Fuxor
const fuxor = require('fuxor')
fuxor.add('fs', {
readFileSync: function () {
return 'Not really a file'
}
})
const fs = require('fs')
console.log(fs.readFileSync('not really', 'anything', { whatever:'you want'}))//'Not really a file'
API
Add
Add what should be returned when the module is required
const fuxor = require('fuxor')
// Add one entry to be overridden
fuxor.add('fs', {
readFileSync: function () {
return 'Not really a file'
}
})
// Add one entry to be overridden
fuxor.add({ name: 'fs', result: {
readFileSync: function () {
return 'Not really a file'
}
}});
// Add multiple entries at once
fuxor.add([{ name: 'fs', result: {
readFileSync: function () {
return 'Not really a file'
}
}, {
name: 'request',
result: function () {
return 'Not really a file'
}
}])
Clear
Clear all entries
const fuxor = require('fuxor');
// After items have been added
fuxor.clear() // All entries have been removed
remove
Remove individual module to restore the original module
const fuxor = require('fuxor')
// After items have been added
fuxor.remove('your-module') // The module has been removed
reset
Resets back to default require behavior
const fuxor = require('fuxor')
// After items have been added
fuxor.reset() // require now works back to normal
org
Load a directory structure as an org
const fuxor = require('fuxor')
// given a directory named modules fuxor loads subdirectories
// respects the package.json in each directory
// - modules
// -- myModule
// -- myOtherModule
fuxor.init({
name: '@fuxor',
path: path.join(__dirname, './modules'),
})
const myModule = require('@fuxor/myModule')
const myOtherModule = require('@fuxor/myOtherModule')