server.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // @ts-ignore -- generated package
  2. import "src/utils/environment";
  3. import * as sapper from "@sapper/server"; // eslint-disable-line import/no-unresolved
  4. import compression from "compression";
  5. import express, { Express } from "express";
  6. // @ts-ignore -- doesn't package its own types until 1.0.0-next.6
  7. import sirv from "sirv";
  8. import { logger } from "./utils/logging";
  9. const PORT = process.env.PORT; // eslint-disable-line prefer-destructuring
  10. // @ts-ignore -- creates a warning after `rollup-plugin-replace` (set up in `rollup.config.js`)
  11. // replaces `process.env.NODE_ENV` with `"production"` during `prod`
  12. const dev = process.env.NODE_ENV === "development";
  13. logger.info("Staring webserver");
  14. const createSapperServer = async (): Promise<Express> => {
  15. const app = express();
  16. app.use(
  17. compression({ threshold: 0 }),
  18. sirv("static", { dev }),
  19. sapper.middleware(),
  20. );
  21. return app;
  22. };
  23. createSapperServer().then((app) => {
  24. app.listen(PORT, (err?: any): void => { // eslint-disable-line
  25. if (err) logger.error("Error on webserver: %s", err);
  26. });
  27. });
  28. export { sapper };