irest-app-test
Version:
iRest is a zero-configuration application that allows you to easily create/manage APIs, generate random data on demand and perform operations on that data using REST interface.
6 lines • 2.48 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _express=_interopRequireDefault(require("express")),_webpack=_interopRequireDefault(require("webpack")),_webpackDevMiddleware=_interopRequireDefault(require("webpack-dev-middleware")),_webpackHotMiddleware=_interopRequireDefault(require("webpack-hot-middleware")),_path=_interopRequireDefault(require("path")),_saslprep=_interopRequireDefault(require("saslprep")),_compression=_interopRequireDefault(require("compression")),_logger=_interopRequireDefault(require("./logger")),_winston=require("./winston");_saslprep["default"]||_logger["default"].warn("Warning: no saslprep library specified. Passwords will not be sanitized");// dot env config
var dotEnvConfig,cwd=process.cwd(),NODE_ENV="production";dotEnvConfig=require("dotenv").config({path:"".concat(cwd,"/.env.prod")});var dotEnvExpand=require("dotenv-expand");dotEnvExpand(dotEnvConfig);var app=(0,_express["default"])();app.use(function(a,b,c){b.header("Access-Control-Allow-Origin","*"),b.header("Access-Control-Allow-Methods","GET,PUT,POST,DELETE,PATCH,OPTIONS"),b.header("Access-Control-Allow-Headers","*"),"OPTIONS"===a.method?b.send(200):c()}),app.use((0,_compression["default"])()),!1,app.use(_express["default"].json()),app.use(_express["default"].urlencoded({extended:!0})),"test"!==NODE_ENV&&require("./sqliteConf");// api route config
var EXPRESS_REST_BASE_URL=process.env.EXPRESS_REST_BASE_URL;if(app.use(EXPRESS_REST_BASE_URL,require("./routes/api")),"development"===NODE_ENV){// eslint-disable-next-line global-require
var config=require("../../config/webpack.dev"),compiler=(0,_webpack["default"])(config);app.use((0,_webpackDevMiddleware["default"])(compiler,{publicPath:config.output.publicPath})),app.use((0,_webpackHotMiddleware["default"])(compiler)),app.get("*",function(a,b,c){var d=_path["default"].join(compiler.outputPath,"index.html");compiler.outputFileSystem.readFile(d,function(a,d){return a?c(a):void(b.set("content-type","text/html"),b.send(d),b.end())}),b.sendFile("index.html",{root:"./public"})})}else// production config without webpack
app.use(_express["default"]["static"](process.env.MODULE_DIST_PATH)),app.get("*",function(a,b){b.sendFile("index.html",{root:process.env.MODULE_DIST_PATH})});// express winston error log
app.use(_winston.handleErrorLogs);var _default=app;exports["default"]=_default;