mirror of
https://github.com/primer/css.git
synced 2024-11-23 11:27:26 +03:00
docs: rework package metadata helper to set "bundle" metadata
This commit is contained in:
parent
9fac57a3a6
commit
e8dd915ea6
@ -8,37 +8,29 @@ module.exports = function addPackageMeta(options = {}) {
|
||||
return (files, metal, done) => {
|
||||
const root = metal.source()
|
||||
for (const [path, file] of Object.entries(files)) {
|
||||
const pkg = getPackageRelativeTo(path, root)
|
||||
if (pkg) {
|
||||
file[namespace].package = fields ? pluck(pkg, fields) : pkg
|
||||
} else {
|
||||
log('no package.json found relative to', path)
|
||||
}
|
||||
file[namespace].bundle = getBundleRelativeTo(path, root)
|
||||
}
|
||||
done()
|
||||
}
|
||||
}
|
||||
|
||||
function getPackageRelativeTo(file, root) {
|
||||
function getBundleRelativeTo(file, root) {
|
||||
let dir = join(root, dirname(file))
|
||||
if (dir in cache) {
|
||||
return cache[dir]
|
||||
}
|
||||
while (dir !== root) {
|
||||
const pkgPath = join(dir, 'package.json')
|
||||
if (existsSync(pkgPath)) {
|
||||
return (cache[dir] = require(pkgPath))
|
||||
const indexPath = join(dir, 'index.scss')
|
||||
if (existsSync(indexPath)) {
|
||||
return (cache[dir] = getPathName(indexPath.substr(root.length + 1)))
|
||||
}
|
||||
dir = resolve(dir, '..')
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
function pluck(data, fields) {
|
||||
return fields.reduce((out, field) => {
|
||||
out[field] = data[field]
|
||||
return out
|
||||
}, {})
|
||||
function getPathName(path) {
|
||||
return dirname(path).replace(/\//g, '-')
|
||||
}
|
||||
|
||||
function noop() {}
|
||||
|
Loading…
Reference in New Issue
Block a user