123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 'use strict';
- const path = require('path');
- module.exports = async (options = {}) => {
- if (!options.ignoreWarning) {
- console.warn('single process mode is still in experiment, please don\'t use it in production environment');
- }
- options.baseDir = options.baseDir || process.cwd();
- options.mode = 'single';
- // get agent from options.framework and package.egg.framework
- if (!options.framework) {
- try {
- options.framework = require(path.join(options.baseDir, 'package.json')).egg.framework;
- } catch (_) {
- // ignore
- }
- }
- let Agent;
- let Application;
- if (options.framework) {
- Agent = require(options.framework).Agent;
- Application = require(options.framework).Application;
- } else {
- Application = require('./application');
- Agent = require('./agent');
- }
- const agent = new Agent(Object.assign({}, options));
- await agent.ready();
- const application = new Application(Object.assign({}, options));
- application.agent = agent;
- agent.application = application;
- await application.ready();
- // emit egg-ready message in agent and application
- application.messenger.broadcast('egg-ready');
- return application;
- };
|