Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/redirects/precompile.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const nonEnterpriseDefaultVersion = require('../non-enterprise-default-version')

// This function runs at server warmup and precompiles possible redirect routes.
// It outputs them in key-value pairs within a neat Javascript object: { oldPath: newPath }
module.exports = async function precompileRedirects (pageList, pageMap) {
module.exports = function precompileRedirects (pageList, pageMap) {
const allRedirects = {}

// 1. CURRENT PAGES PERMALINKS AND FRONTMATTER
Expand Down
12 changes: 6 additions & 6 deletions lib/site-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,28 @@ const languages = require('./languages')
const dataDirectory = require('./data-directory')
const encodeBracketedParentheticals = require('./encode-bracketed-parentheticals')

const loadSiteDataFromDir = async dir => ({
const loadSiteDataFromDir = dir => ({
site: {
data: await dataDirectory(path.join(dir, 'data'), {
data: dataDirectory(path.join(dir, 'data'), {
preprocess: dataString =>
encodeBracketedParentheticals(dataString.trimEnd()),
ignorePatterns: [/README\.md$/]
})
}
})

module.exports = async function loadSiteData () {
module.exports = function loadSiteData () {
// load english site data
const siteData = {
en: await loadSiteDataFromDir(languages.en.dir)
en: loadSiteDataFromDir(languages.en.dir)
}

// load and add other language data to siteData where keys match english keys,
// filling holes with english site data
const englishKeys = Object.keys(flat(siteData.en))
for (const language of Object.values(languages)) {
if (language.code === 'en') continue
const data = await loadSiteDataFromDir(language.dir)
const data = loadSiteDataFromDir(language.dir)
for (const key of englishKeys) {
set(
siteData,
Expand All @@ -45,5 +45,5 @@ module.exports = async function loadSiteData () {
)
}

return Promise.resolve(siteData)
return siteData
}
18 changes: 9 additions & 9 deletions lib/warm-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const loadSiteTree = require('./site-tree')
const dog = {
loadPages: statsd.timer(loadPages, 'load_pages'),
loadPageMap: statsd.timer(loadPageMap, 'load_page_map'),
loadRedirects: statsd.asyncTimer(loadRedirects, 'load_redirects'),
loadRedirects: statsd.timer(loadRedirects, 'load_redirects'),
loadSiteData: statsd.timer(loadSiteData, 'load_site_data'),
loadSiteTree: statsd.asyncTimer(loadSiteTree, 'load_site_tree')
}
Expand Down Expand Up @@ -39,20 +39,20 @@ async function warmServer () {
console.log('Priming context information...')
}

if (!pageList || !site) {
// Promise.all is used to load multiple things in parallel
[pageList, site] = await Promise.all([
pageList || dog.loadPages(),
site || dog.loadSiteData()
])
if (!pageList) {
pageList = dog.loadPages()
}

if (!site) {
site = dog.loadSiteData()
}

if (!pageMap) {
pageMap = await dog.loadPageMap(pageList)
pageMap = dog.loadPageMap(pageList)
}

if (!redirects) {
redirects = await dog.loadRedirects(pageList, pageMap)
redirects = dog.loadRedirects(pageList, pageMap)
}

if (!siteTree) {
Expand Down