don't need disk caching for site data (#26333)
* reinstate * start server manually * routing tests too * skip more * sleep more and fail if not 200 * use e2etest for content/ too * automatically start server for jest * does this work? * feedbacked * rename things * getting it to work * add dev dependency * install the right version * don't need to start that * fix package lock * update readme about it * feedbacked * don't need disk caching for site-data
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import fs from 'fs'
|
||||
import os from 'os'
|
||||
import path from 'path'
|
||||
import flat from 'flat'
|
||||
import { get, set } from 'lodash-es'
|
||||
@@ -7,30 +5,7 @@ import languages from './languages.js'
|
||||
import dataDirectory from './data-directory.js'
|
||||
import encodeBracketedParentheses from './encode-bracketed-parentheses.js'
|
||||
|
||||
const TEMP_DIRECTORY = process.env.RUNNER_TEMP || os.tmpdir()
|
||||
|
||||
function diskMemoize(prefix, fn) {
|
||||
const useCache = process.env.NODE_ENV !== 'development'
|
||||
return (dir) => {
|
||||
const cacheFileName = `${prefix}.${dir.replace(/[^\w]+/g, '-').toLowerCase() || 'en'}.json`
|
||||
if (useCache) {
|
||||
try {
|
||||
return JSON.parse(fs.readFileSync(cacheFileName, 'utf-8'))
|
||||
} catch (err) {
|
||||
if (!(err.code === 'ENOENT' || err instanceof SyntaxError)) throw err
|
||||
}
|
||||
}
|
||||
|
||||
const result = fn(dir)
|
||||
if (useCache) {
|
||||
fs.writeFileSync(cacheFileName, JSON.stringify(result), 'utf-8')
|
||||
console.log(`Disk-cache miss on ${cacheFileName}`, new Date())
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
const loadSiteDataFromDir = diskMemoize(path.join(TEMP_DIRECTORY, 'docs-site-data'), (dir) => {
|
||||
const loadSiteDataFromDir = (dir) => {
|
||||
return {
|
||||
site: {
|
||||
data: dataDirectory(path.join(dir, 'data'), {
|
||||
@@ -39,7 +14,7 @@ const loadSiteDataFromDir = diskMemoize(path.join(TEMP_DIRECTORY, 'docs-site-dat
|
||||
}),
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default function loadSiteData() {
|
||||
// load English site data
|
||||
|
||||
Reference in New Issue
Block a user