Refactor electron exports to keep module list in separate files

This commit is contained in:
Thiago de Arruda 2017-03-06 11:58:10 -03:00
parent 14b548f27a
commit 44bd93589a
8 changed files with 79 additions and 236 deletions

View file

@ -1,53 +1,13 @@
const moduleList = require('../module-list')
// Attaches properties to |exports|.
exports.defineProperties = function (exports) {
return Object.defineProperties(exports, {
// Common modules, please sort with alphabet order.
clipboard: {
// Must be enumerable, otherwise it woulde be invisible to remote module.
enumerable: true,
get: function () {
return require('../clipboard')
}
},
crashReporter: {
enumerable: true,
get: function () {
return require('../crash-reporter')
}
},
nativeImage: {
enumerable: true,
get: function () {
return require('../native-image')
}
},
shell: {
enumerable: true,
get: function () {
return require('../shell')
}
},
// The internal modules, invisible unless you know their names.
CallbacksRegistry: {
get: function () {
return require('../callbacks-registry')
}
},
deprecate: {
get: function () {
return require('../deprecate')
}
},
deprecations: {
get: function () {
return require('../deprecations')
}
},
isPromise: {
get: function () {
return require('../is-promise')
}
const descriptors = {}
for (const module of moduleList) {
descriptors[module.name] = {
enumerable: !module.private,
get: () => require(`../${module.file}`)
}
})
}
return Object.defineProperties(exports, descriptors)
}

View file

@ -0,0 +1,12 @@
// Common modules, please sort alphabetically
module.exports = [
{name: 'clipboard', file: 'clipboard'},
{name: 'crashReporter', file: 'crash-reporter'},
{name: 'nativeImage', file: 'native-image'},
{name: 'shell', file: 'shell'},
// The internal modules, invisible unless you know their names.
{name: 'CallbacksRegistry', file: 'callbacks-registry', private: true},
{name: 'deprecate', file: 'deprecate', private: true},
{name: 'deprecations', file: 'deprecations', private: true},
{name: 'isPromise', file: 'is-promise', private: true}
]