Skip to content
This repository was archived by the owner on Jul 28, 2021. It is now read-only.

Commit 0e36b7c

Browse files
committed
feat(view): add PackageSummary
Add a PackageSummary for a consistent 3-line information-dense summary of a package.
1 parent 9d533d4 commit 0e36b7c

File tree

3 files changed

+107
-17
lines changed

3 files changed

+107
-17
lines changed

lib/components/view.jsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const {
1111
Color,
1212
Indent
1313
} = require('ink')
14+
const Box = require('ink-box')
1415

1516
const MAX_ITEMS = 6
1617
const ROW_WIDTH = 4
@@ -282,6 +283,45 @@ class PackageFields extends Component {
282283
}
283284
module.exports.PackageFields = PackageFields
284285

286+
class PackageSummary extends Component {
287+
render () {
288+
let { packument, spec, json } = this.props
289+
let [data] = getData(packument, spec)
290+
let views = data.map((pkg) => {
291+
const getProps = (field) => ({
292+
field,
293+
value: resolveField(pkg, field)
294+
})
295+
296+
return <Box>
297+
<div>
298+
<PackageValue {...getProps('_id')} />
299+
<span> | </span>
300+
<PackageValue {...getProps('license')} />
301+
<span> | </span>
302+
<PackageField field='_deps' value={Object.keys(pkg.dependencies || {}).length} />
303+
<span> | </span>
304+
<span>
305+
<span>published </span>
306+
<PackageValue field='_time' value={packument.time[pkg.version]} />
307+
<span> by </span>
308+
<PackageValue {...getProps('_npmUser')} />
309+
</span>
310+
</div>
311+
312+
<div>{pkg.description}</div>
313+
<span><PackageValue {...getProps('homepage')} /> - <PackageValue {...getProps('keywords')} /></span>
314+
</Box>
315+
})
316+
317+
return <Joined
318+
delimiter={[<br />, <br />]}>
319+
{views}
320+
</Joined>
321+
}
322+
}
323+
module.exports.PackageSummary = PackageSummary
324+
285325
class PackageView extends Component {
286326
render () {
287327
let { packument, spec, json } = this.props

package-lock.json

Lines changed: 66 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"graceful-fs": "^4.1.15",
101101
"ini": "^1.3.5",
102102
"ink": "^0.5.1",
103+
"ink-box": "^0.1.0",
103104
"ink-table": "^1.0.3",
104105
"libnpm": "^2.0.1",
105106
"lock-verify": "^2.0.2",

0 commit comments

Comments
 (0)