-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
49 lines (39 loc) · 1.83 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require('@babel/register')({
presets: ['@babel/preset-env']
});
const fs = require('fs');
const chalk = require('ansi-colors');
const { classify, dasherize } = require('ember-cli-string-utils');
const Inflector = require('i');
const { pluralize } = Inflector();
const JSDOM = require('jsdom').JSDOM;
const dom = new JSDOM('<p>Hello</p>', { url: 'http://localhost' });
const CWD = process.cwd();
global.window = dom.window;
global.document = window.document;
global.self = window.self;
window.FakeXMLHttpRequest = require('fake-xml-http-request');
window.RouteRecognizer = require('route-recognizer');
if (!fs.existsSync(`${CWD}/memserver`)) {
throw new Error(chalk.red('/memserver folder doesn\'t exist for this directory!'));
} else if (!fs.existsSync(`${CWD}/memserver/models`)) {
throw new Error(chalk.red('/memserver/models folder doesn\'t exist for this directory!'));
} else if (!fs.existsSync(`${CWD}/memserver/server.js`)) {
throw new Error(chalk.red('/memserver/server.js doesn\'t exist for this directory!'));
}
const modelFileNames = fs.readdirSync(`${CWD}/memserver/models`);
const modelFixtureTree = modelFileNames.reduce((tree, fileName) => {
const modelName = fileName.slice(0, -3);
const fixturePath = `${CWD}/memserver/fixtures/${dasherize(pluralize(modelName))}.js`;
return Object.assign(tree, {
[classify(modelName)]: {
model: require(`${CWD}/memserver/models/${fileName}`).default,
fixtures: fs.existsSync(fixturePath) ? require(fixturePath).default : []
}
});
}, {});
let MEMSERVER = require('./mem-server-cjs.js');
const Server = require(`${CWD}/memserver/server`).default;
const initializer_path = `${CWD}/memserver/initializer.js`;
const initializer = fs.existsSync(initializer_path) ? require(initializer_path).default : () => {};
module.exports = MEMSERVER(modelFixtureTree, Server, initializer);