Move middleware utils into server/utils

This commit is contained in:
Michael Jackson 2018-05-21 13:26:00 -07:00
parent 269b756aeb
commit c792515d01
14 changed files with 59 additions and 40 deletions

View File

@ -1,5 +1,6 @@
const invariant = require("invariant"); const invariant = require("invariant");
const createBundle = require("./utils/createBundle");
const createBundle = require("../utils/createBundle");
/** /**
* An express middleware that sets req.bundle from the * An express middleware that sets req.bundle from the

View File

@ -1,8 +1,8 @@
const semver = require("semver"); const semver = require("semver");
const createPackageURL = require("../utils/createPackageURL"); const createPackageURL = require("../utils/createPackageURL");
const getPackageInfo = require("./utils/getPackageInfo"); const getPackageInfo = require("../utils/getPackageInfo");
const getPackage = require("./utils/getPackage"); const getPackage = require("../utils/getPackage");
function tagRedirect(req, res) { function tagRedirect(req, res) {
// Cache tag redirects for 1 minute. // Cache tag redirects for 1 minute.

View File

@ -2,8 +2,8 @@ const fs = require("fs");
const path = require("path"); const path = require("path");
const createPackageURL = require("../utils/createPackageURL"); const createPackageURL = require("../utils/createPackageURL");
const createSearch = require("./utils/createSearch"); const createSearch = require("../utils/createSearch");
const incrementCounter = require("./utils/incrementCounter"); const incrementCounter = require("../utils/incrementCounter");
/** /**
* File extensions to look for when automatically resolving. * File extensions to look for when automatically resolving.

View File

@ -1,4 +1,4 @@
const createSearch = require("./utils/createSearch"); const createSearch = require("../utils/createSearch");
/** /**
* Redirect old URLs that we no longer support. * Redirect old URLs that we no longer support.

View File

@ -1,6 +1,7 @@
const fs = require("fs"); const fs = require("fs");
const invariant = require("invariant"); const invariant = require("invariant");
const createBundle = require("./utils/createBundle");
const createBundle = require("../utils/createBundle");
/** /**
* An express middleware that sets req.bundle from the build * An express middleware that sets req.bundle from the build
@ -14,7 +15,7 @@ function staticAssets(webpackStatsFile) {
invariant( invariant(
false, false,
"staticAssets middleware cannot read the build stats in %s; " + "staticAssets middleware cannot read the build stats in %s; " +
"run `yarn build` before starting the server", "run the `build` script before starting the server",
webpackStatsFile webpackStatsFile
); );
} }

View File

@ -1,28 +0,0 @@
/**
* Creates a bundle object that is stored on req.bundle.
*/
function createBundle(webpackStats) {
const { publicPath, assetsByChunkName } = webpackStats;
const createURL = asset => publicPath + asset;
const getAssets = (chunks = ["main"]) =>
(Array.isArray(chunks) ? chunks : [chunks])
.reduce((memo, chunk) => memo.concat(assetsByChunkName[chunk] || []), [])
.map(createURL);
const getScripts = (...args) =>
getAssets(...args).filter(asset => /\.js$/.test(asset));
const getStyles = (...args) =>
getAssets(...args).filter(asset => /\.css$/.test(asset));
return {
createURL,
getAssets,
getScripts,
getStyles
};
}
module.exports = createBundle;

View File

@ -1,4 +1,4 @@
const createSearch = require("./utils/createSearch"); const createSearch = require("../utils/createSearch");
const knownQueryParams = { const knownQueryParams = {
main: true, // Deprecated, see #63 main: true, // Deprecated, see #63

View File

@ -0,0 +1,45 @@
/**
* Creates a bundle object that is stored on req.bundle.
*/
function createBundle(webpackStats) {
const { publicPath, assetsByChunkName } = webpackStats;
/**
* Returns a public URL to the given asset.
*/
function createURL(asset) {
return publicPath + asset;
}
/**
* Returns an array of URLs to all assets in the given chunks.
*/
function getAssets(chunks = ["main"]) {
return (Array.isArray(chunks) ? chunks : [chunks])
.reduce((memo, chunk) => memo.concat(assetsByChunkName[chunk] || []), [])
.map(createURL);
}
/**
* Returns an array of URLs to all JavaScript files in the given chunks.
*/
function getScripts(...chunks) {
return getAssets(...chunks).filter(asset => /\.js$/.test(asset));
}
/**
* Returns an array of URLs to all CSS files in the given chunks.
*/
function getStyles(...chunks) {
return getAssets(...chunks).filter(asset => /\.css$/.test(asset));
}
return {
createURL,
getAssets,
getScripts,
getStyles
};
}
module.exports = createBundle;

View File

@ -1,4 +1,4 @@
const db = require("../../utils/redis"); const db = require("./redis");
function createCache(keyPrefix) { function createCache(keyPrefix) {
function createKey(key) { function createKey(key) {

View File

@ -1,6 +1,6 @@
require("isomorphic-fetch"); require("isomorphic-fetch");
const config = require("../../config"); const config = require("../config");
const createCache = require("./createCache"); const createCache = require("./createCache");
const createMutex = require("./createMutex"); const createMutex = require("./createMutex");

View File

@ -1,4 +1,4 @@
const db = require("../../utils/redis"); const db = require("./redis");
function incrementCounter(counter, key, by) { function incrementCounter(counter, key, by) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {