Prettier everything up

This commit is contained in:
MICHAEL JACKSON
2017-11-08 08:57:15 -08:00
parent f3e041ace6
commit 2d57d96e62
36 changed files with 785 additions and 577 deletions

View File

@ -10,7 +10,7 @@ function createCache(keyPrefix) {
}
function get(key, callback) {
db.get(createKey(key), function (error, value) {
db.get(createKey(key), function(error, value) {
callback(error, value && JSON.parse(value))
})
}

View File

@ -1,16 +1,19 @@
function createMutex(doWork) {
const mutex = {}
return function (key, payload, callback) {
return function(key, payload, callback) {
if (mutex[key]) {
mutex[key].push(callback)
} else {
mutex[key] = [ function () {
delete mutex[key]
}, callback ]
mutex[key] = [
function() {
delete mutex[key]
},
callback
]
doWork(payload, function (error, value) {
mutex[key].forEach(function (callback) {
doWork(payload, function(error, value) {
mutex[key].forEach(function(callback) {
callback(error, value)
})
})

View File

@ -1,7 +1,7 @@
function createSearch(query) {
const params = []
Object.keys(query).forEach(function (param) {
Object.keys(query).forEach(function(param) {
if (query[param] === '') {
params.push(param) // Omit the trailing "=" from param=
} else {

View File

@ -8,16 +8,16 @@ const IndexPage = require('../components/IndexPage')
const e = React.createElement
function getEntries(dir) {
return new Promise(function (resolve, reject) {
fs.readdir(dir, function (error, files) {
return new Promise(function(resolve, reject) {
fs.readdir(dir, function(error, files) {
if (error) {
reject(error)
} else {
resolve(
Promise.all(
files.map(file => getFileStats(path.join(dir, file)))
).then(function (statsArray) {
return statsArray.map(function (stats, index) {
).then(function(statsArray) {
return statsArray.map(function(stats, index) {
return { file: files[index], stats }
})
})

View File

@ -6,20 +6,27 @@ const getFileStats = require('./getFileStats')
const getFileType = require('./getFileType')
function getEntries(dir, file, maximumDepth) {
return new Promise(function (resolve, reject) {
fs.readdir(path.join(dir, file), function (error, files) {
return new Promise(function(resolve, reject) {
fs.readdir(path.join(dir, file), function(error, files) {
if (error) {
reject(error)
} else {
resolve(
Promise.all(
files.map(function (f) {
files.map(function(f) {
return getFileStats(path.join(dir, file, f))
})
).then(function (statsArray) {
return Promise.all(statsArray.map(function (stats, index) {
return getMetadataRecursive(dir, path.join(file, files[index]), stats, maximumDepth - 1)
}))
).then(function(statsArray) {
return Promise.all(
statsArray.map(function(stats, index) {
return getMetadataRecursive(
dir,
path.join(file, files[index]),
stats,
maximumDepth - 1
)
})
)
})
)
}
@ -32,12 +39,12 @@ function formatTime(time) {
}
function getIntegrity(file) {
return new Promise(function (resolve, reject) {
fs.readFile(file, function (error, data) {
return new Promise(function(resolve, reject) {
fs.readFile(file, function(error, data) {
if (error) {
reject(error)
} else {
resolve(SRIToolbox.generate({ algorithms: [ 'sha384' ] }, data))
resolve(SRIToolbox.generate({ algorithms: ['sha384'] }, data))
}
})
})
@ -53,7 +60,7 @@ function getMetadataRecursive(dir, file, stats, maximumDepth) {
}
if (stats.isFile()) {
return getIntegrity(path.join(dir, file)).then(function (integrity) {
return getIntegrity(path.join(dir, file)).then(function(integrity) {
metadata.integrity = integrity
return metadata
})
@ -62,16 +69,19 @@ function getMetadataRecursive(dir, file, stats, maximumDepth) {
if (!stats.isDirectory() || maximumDepth === 0)
return Promise.resolve(metadata)
return getEntries(dir, file, maximumDepth).then(function (files) {
return getEntries(dir, file, maximumDepth).then(function(files) {
metadata.files = files
return metadata
})
}
function getMetadata(baseDir, path, stats, maximumDepth, callback) {
getMetadataRecursive(baseDir, path, stats, maximumDepth).then(function (metadata) {
getMetadataRecursive(baseDir, path, stats, maximumDepth).then(function(
metadata
) {
callback(null, metadata)
}, callback)
},
callback)
}
module.exports = getMetadata

View File

@ -26,7 +26,7 @@ function ignoreSymlinks(file, headers) {
}
function extractResponse(response, outputDir) {
return new Promise(function (resolve, reject) {
return new Promise(function(resolve, reject) {
const extract = tar.extract(outputDir, {
readable: true, // All dirs/files should be readable.
map: stripNamePrefix,
@ -44,24 +44,24 @@ function extractResponse(response, outputDir) {
function fetchAndExtract(tarballURL, outputDir) {
console.log(`info: Fetching ${tarballURL} and extracting to ${outputDir}`)
return fetch(tarballURL).then(function (response) {
return fetch(tarballURL).then(function(response) {
return extractResponse(response, outputDir)
})
}
const fetchMutex = createMutex(function (payload, callback) {
const fetchMutex = createMutex(function(payload, callback) {
const { tarballURL, outputDir } = payload
fs.access(outputDir, function (error) {
fs.access(outputDir, function(error) {
if (error) {
if (error.code === 'ENOENT' || error.code === 'ENOTDIR') {
// ENOENT or ENOTDIR are to be expected when we haven't yet
// fetched a package for the first time. Carry on!
mkdirp(outputDir, function (error) {
mkdirp(outputDir, function(error) {
if (error) {
callback(error)
} else {
fetchAndExtract(tarballURL, outputDir).then(function () {
fetchAndExtract(tarballURL, outputDir).then(function() {
callback()
}, callback)
}
@ -80,7 +80,7 @@ function getPackage(packageConfig, callback) {
const tarballURL = packageConfig.dist.tarball
const outputDir = createTempPath(packageConfig.name, packageConfig.version)
fetchMutex(tarballURL, { tarballURL, outputDir }, function (error) {
fetchMutex(tarballURL, { tarballURL, outputDir }, function(error) {
callback(error, outputDir)
})
}

View File

@ -20,9 +20,9 @@ function fetchPackageInfo(packageName) {
return fetch(url, {
headers: {
'Accept': 'application/json'
Accept: 'application/json'
}
}).then(function (res) {
}).then(function(res) {
return res.status === 404 ? null : res.json()
})
}
@ -31,32 +31,35 @@ const PackageNotFound = 'PackageNotFound'
// This mutex prevents multiple concurrent requests to
// the registry for the same package info.
const fetchMutex = createMutex(function (packageName, callback) {
fetchPackageInfo(packageName).then(function (value) {
if (value == null) {
// Cache 404s for 5 minutes. This prevents us from making
// unnecessary requests to the registry for bad package names.
// In the worst case, a brand new package's info will be
// available within 5 minutes.
PackageInfoCache.set(packageName, PackageNotFound, 300, function () {
callback(null, value)
})
} else {
// Cache valid package info for 1 minute.
PackageInfoCache.set(packageName, value, 60, function () {
callback(null, value)
const fetchMutex = createMutex(function(packageName, callback) {
fetchPackageInfo(packageName).then(
function(value) {
if (value == null) {
// Cache 404s for 5 minutes. This prevents us from making
// unnecessary requests to the registry for bad package names.
// In the worst case, a brand new package's info will be
// available within 5 minutes.
PackageInfoCache.set(packageName, PackageNotFound, 300, function() {
callback(null, value)
})
} else {
// Cache valid package info for 1 minute.
PackageInfoCache.set(packageName, value, 60, function() {
callback(null, value)
})
}
},
function(error) {
// Do not cache errors.
PackageInfoCache.del(packageName, function() {
callback(error)
})
}
}, function (error) {
// Do not cache errors.
PackageInfoCache.del(packageName, function () {
callback(error)
})
})
)
})
function getPackageInfo(packageName, callback) {
PackageInfoCache.get(packageName, function (error, value) {
PackageInfoCache.get(packageName, function(error, value) {
if (error || value != null) {
callback(error, value === PackageNotFound ? null : value)
} else {