@pgengler/ember-cli-mirage
Version:
A client-side server to help you build, test and demo your Ember app
53 lines (42 loc) • 1.41 kB
JavaScript
import readModules from './utils/read-modules';
import { singularize, pluralize } from 'ember-inflector';
import { assert } from '@ember/debug';
/**
Helper to start mirage. This should not be called directly. In rfc232/rfc268
tests, use `setupMirage()` or the `autoboot` option in the addon config
in the environment.
@hide
*/
export default function startMirage(owner, { env, makeServer } = {}) {
if (!owner) {
throw new Error('You must pass `owner` to startMirage()');
}
if (!env || !makeServer) {
env = env || owner.resolveRegistration('config:environment');
// These are set from `<app>/initializers/ember-cli-mirage`
makeServer = makeServer || owner.resolveRegistration('mirage:make-server');
}
let environment = env.environment;
let modules = readModules(env.modulePrefix);
let options = Object.assign(modules, {
environment,
});
options.inflector = { singularize, pluralize };
// MakeServer must accept at least one param
assert(
'There is no makeServer function passed or registered as mirage:make-server',
makeServer
);
assert(
'Mirage config default exported function must at least one parameter',
makeServer.length > 0
);
let server = makeServer(options, owner);
if (
typeof location !== 'undefined' &&
location.search.indexOf('mirageLogging') !== -1
) {
server.logging = true;
}
return server;
}