Finer-grained caching of data from npm

This commit is contained in:
Michael Jackson
2019-07-10 16:27:19 -07:00
parent ce9206f59e
commit 40bd9dbec4
5 changed files with 247 additions and 160 deletions

View File

@ -1,11 +1,11 @@
import { renderToString, renderToStaticMarkup } from 'react-dom/server';
import semver from 'semver';
import AutoIndexApp from '../client/autoIndex/App.js';
import MainTemplate from './utils/MainTemplate.js';
import getScripts from './utils/getScripts.js';
import { createElement, createHTML } from './utils/markupHelpers.js';
import { getAvailableVersions } from '../utils/npm.js';
const doctype = '<!DOCTYPE html>';
const globalURLs =
@ -21,15 +21,12 @@ const globalURLs =
'react-dom': '/react-dom@16.7.0/umd/react-dom.development.js'
};
function byVersion(a, b) {
return semver.lt(a, b) ? -1 : semver.gt(a, b) ? 1 : 0;
}
export default function serveAutoIndexPage(req, res) {
export default async function serveAutoIndexPage(req, res) {
const availableVersions = await getAvailableVersions(req.packageName);
const data = {
packageName: req.packageName,
packageVersion: req.packageVersion,
availableVersions: Object.keys(req.packageInfo.versions).sort(byVersion),
availableVersions: availableVersions,
filename: req.filename,
entry: req.entry,
entries: req.entries