skypager-project-types-electron-app
Version:
skypager electron app project type
43 lines (35 loc) • 1.21 kB
JavaScript
const { join } = require('path')
export function packageInfo() {
return {
...require('../../../package.json'),
dirname: __dirname,
filename: __filename,
}
}
export function use(options = {}, context = {}, next) {
try {
attach.call(this, options, context)
typeof next === 'function' && next()
} catch(error) {
typeof next === 'function' && next(error)
}
}
export function attach(options = {}, context = {}) {
const { project = this || this.project } = context
const { features, assets, compilers, servers } = project
compilers.add(require.context('../compilers', true, /\.js$/))
servers.add(require.context('../servers', false, /\.js$/))
if (assets) {
const projectTypeAssets = __non_webpack_require__('../assets.js')
projectTypeAssets.available.forEach(id => {
assets.register(id, projectTypeAssets.lookup.bind(projectTypeAssets, id))
})
}
if (project.isElectron) {
__non_webpack_require__(join(__dirname,'helpers/application.js')).attach(project)
__non_webpack_require__(join(__dirname,'helpers/panel.js')).attach(project)
features.add(
__non_webpack_require__(join(__dirname,'features/electron.js'))
)
}
}