const fs = require("fs"); const invariant = require("invariant"); const createAssets = require("./utils/createAssets"); /** * An express middleware that sets req.assets from the build * info in the given stats file. Should be used in production. */ function staticAssets(webpackStatsFile) { let stats; try { stats = JSON.parse(fs.readFileSync(webpackStatsFile, "utf8")); } catch (error) { invariant( false, "staticAssets middleware cannot read the build stats in %s; " + "run the `build` script before starting the server", webpackStatsFile ); } const assets = createAssets(stats); return (req, res, next) => { req.assets = assets; next(); }; } module.exports = staticAssets;