sage-static
Version:
Simple Express static server for hosting SPAs on Heroku
29 lines (28 loc) • 1.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createApp = createApp;
const express_1 = __importDefault(require("express"));
const compression_1 = __importDefault(require("compression"));
const helmet_1 = __importDefault(require("helmet"));
const path_1 = __importDefault(require("path"));
function createApp(args = {}) {
const config = {
port: args?.port || process.env.PORT || 3000,
directory: args?.directory || "public",
};
const app = (0, express_1.default)();
app.use((0, helmet_1.default)({ contentSecurityPolicy: false }));
app.use((0, compression_1.default)());
app.use(express_1.default.static(config.directory));
app.get("*", (req, res) => {
res.sendFile(path_1.default.join(config.directory, "index.html"));
});
app.listen(config.port, () => {
console.log(`Server running on port ${config.port}`);
console.log(`Serving static files from: ${config.directory}`);
});
return app;
}