skypager-project-types-electron-app
Version:
skypager electron app project type
40 lines (33 loc) • 1.28 kB
JavaScript
/**
* @name project-types/electron-app
* @implements ProjectType
* @platform node
* @platform electron
*/
const pkg = require('../package.json')
function middleware(options = {}, context = {}, next) {
const project = context.project || (this.cwd && this.createSandbox && this) || __non_webpack_require__('skypager/current')
if (typeof next !== 'function') {
next = typeof options === 'function' ? options : (() => ({}))
}
try {
if (project.projectTypes.available.indexOf('electron-app') === -1) {
project.projectType('electron-app').attach()
} else {
middleware.preRegister(project)
project.projectType('electron-app').attach()
}
next()
} catch(error) {
next(error)
}
}
middleware.version = pkg.version
middleware.providesProjectType = 'electron-app'
middleware.preRegister = function(project) {
project.projectTypes.register('electron-app', require('./helpers/project-types/electron-app'))
project.compilers.add(require.context('./helpers/compilers', true, /.js$/))
project.commands.register('electron-init', () => require('./helpers/commands/electron-app/init.js'))
project.commands.register('electron-launch', () => require('./helpers/commands/electron-app/launch.js'))
}
module.exports = middleware