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;