import {spawn} from 'child_process'; import {createHttpServer} from './server'; let httpServer; // eslint-disable-next-line import/prefer-default-export export const $$latus = { hooks: { '@latus/core/config': () => ({ middleware: [], host: '0.0.0.0', port: 32340, }), '@latus/core/build': (configs) => { // eslint-disable-next-line no-console if ('production' === process.env.NODE_ENV) { // eslint-disable-next-line global-require, no-param-reassign configs.client = require('./build/.neutrinorc'); } else { const binary = `$(npm --prefix ${process.cwd()} bin)/webpack-dev-server`; const config = `${__dirname}/src/build/webpack.config.js`; const options = { shell: true, stdio: 'inherit', }; process.stdout.write(`${binary} --mode development --config ${config}\n`); spawn(`${binary} --mode development --config ${config}`, options); } }, '@latus/core/up': async (plugins) => { httpServer = await createHttpServer(plugins); }, '@latus/repl/context': () => ({ httpServer, }), }, };