lbry.tech/server.js

74 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-07-12 16:07:16 -05:00
"use strict"; require("dotenv").config(); require("date-format-lite");
2018-06-01 23:23:53 +03:00
2018-03-28 17:26:59 +03:00
2018-07-05 13:50:18 -05:00
// P A C K A G E S
2018-04-10 12:08:46 +03:00
2018-08-28 18:57:18 -05:00
const color = require("colorette");
2018-07-05 13:50:18 -05:00
const cors = require("cors");
2018-09-27 11:11:26 -05:00
const local = require("app-root-path").require;
2018-05-23 17:25:16 +03:00
2018-07-12 10:21:42 -05:00
const fastify = require("fastify")({
logger: {
level: "warn",
prettyPrint: process.env.NODE_ENV === "development" ? true : false
}
});
2018-05-23 17:25:16 +03:00
2018-10-10 12:56:35 -05:00
// U T I L S
2018-07-12 16:07:16 -05:00
2018-09-27 11:11:26 -05:00
const handleSocketMessages = local("app/sockets");
2018-08-28 18:57:18 -05:00
const logSlackError = local("app/helpers/slack");
2018-05-23 17:25:16 +03:00
2018-04-16 16:39:11 +03:00
2018-07-05 13:50:18 -05:00
// P R O G R A M
2018-05-23 17:25:16 +03:00
2018-10-10 12:56:35 -05:00
fastify
.use(cors())
.register(require("fastify-compress"))
.register(require("fastify-ws"))
.register(require("fastify-helmet"), {
hidePoweredBy: { setTo: "LBRY" }
})
.register(require("fastify-static"), {
prefix: "/assets/",
root: `${__dirname}/app/dist/`
})
.register(require("choo-ssr/fastify"), {
app: require("./app")
});
2018-05-23 17:25:16 +03:00
2018-07-12 10:21:42 -05:00
fastify.ready(err => {
if (err) throw err;
2018-05-30 18:25:04 +03:00
2018-07-12 10:21:42 -05:00
fastify.ws.on("connection", socket => {
2018-07-16 17:06:37 -04:00
socket.on("message", data => {
data = JSON.parse(data);
2018-09-27 11:11:26 -05:00
return handleSocketMessages(socket, data);
2018-05-12 13:03:21 +03:00
});
2018-07-05 13:50:18 -05:00
2018-09-27 11:11:26 -05:00
socket.on("close", () => socket.terminate());
2018-07-05 13:50:18 -05:00
});
2018-07-12 10:21:42 -05:00
});
2018-06-01 10:10:22 +03:00
2018-07-12 10:21:42 -05:00
// B E G I N
2018-06-01 10:10:22 +03:00
2018-10-06 15:53:01 -05:00
const start = async() => {
2018-07-12 10:21:42 -05:00
try {
2018-09-24 20:16:34 -05:00
await fastify.listen(process.env.PORT || 8080, process.env.IP || "0.0.0.0");
2018-07-12 10:21:42 -05:00
} catch (err) {
fastify.log.error(err);
process.exit(1);
}
2018-06-01 10:10:22 +03:00
2018-07-12 16:07:16 -05:00
process.env.NODE_ENV === "development" ?
2018-09-27 11:11:26 -05:00
process.stdout.write(`\n${color.green("⚡")} ${fastify.server.address().port}\n`) :
2018-07-12 16:07:16 -05:00
logSlackError(`Server started at port \`${fastify.server.address().port}\``)
;
2018-07-12 10:21:42 -05:00
};
2018-06-06 14:02:16 +03:00
2018-07-12 10:21:42 -05:00
start();