Skip to content

Commit

Permalink
feat: allow to pass config instead of configPath
Browse files Browse the repository at this point in the history
  • Loading branch information
sheerun committed Sep 22, 2019
1 parent d8fad78 commit bb37c68
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
16 changes: 15 additions & 1 deletion README.md
Expand Up @@ -109,7 +109,7 @@ Linter commands work on a subset of all staged files, defined by a _glob pattern
* **`"!(*test).js"`**. will match all JS files, except those ending in `test.js`, so `foo.js` but not `foo.test.js`
* If the glob pattern does contain a slash (`/`), it will match for paths as well:
* **`"/*.js"`** will match all JS files in the git repo root, so `/test.js` but not `/foo/bar/test.js`
* **`"foo/**/\*.js"`** will match all JS files inside the`/foo`directory, so`/foo/bar/test.js`but not`/test.js`
* **`"foo/**/*.js"`** will match all JS files inside the`/foo`directory, so`/foo/bar/test.js`but not`/test.js`

When matching, `lint-staged` will do the following

Expand Down Expand Up @@ -400,6 +400,20 @@ const success = await lintStaged({
})
```

You can also pass config directly with `config` option:


```js
const success = await lintStaged({
config: {
'*.js': 'eslint --fix'
},
shell: false,
quiet: false,
debug: false
})
```

### Using with JetBrains IDEs _(WebStorm, PyCharm, IntelliJ IDEA, RubyMine, etc.)_

_**Update**_: The latest version of JetBrains IDEs now support running hooks as you would expect.
Expand Down
5 changes: 3 additions & 2 deletions src/index.js
Expand Up @@ -43,6 +43,7 @@ function loadConfig(configPath) {
*
* @param {object} options
* @param {string} [options.configPath] - Path to configuration file
* @param {object} [options.config] - Object with configuration for programmatic API
* @param {boolean} [options.relative] - Pass relative filepaths to tasks
* @param {boolean} [options.shell] - Skip parsing of tasks for better shell support
* @param {boolean} [options.quiet] - Disable lint-staged’s own console output
Expand All @@ -52,12 +53,12 @@ function loadConfig(configPath) {
* @returns {Promise<boolean>} Promise of whether the linting passed or failed
*/
module.exports = function lintStaged(
{ configPath, relative = false, shell = false, quiet = false, debug = false } = {},
{ configPath, config, relative = false, shell = false, quiet = false, debug = false } = {},
logger = console
) {
debugLog('Loading config using `cosmiconfig`')

return loadConfig(configPath)
return (config ? Promise.resolve({ config, filepath: '(input)' }) : loadConfig(configPath))
.then(result => {
if (result == null) throw errConfigNotFound

Expand Down

0 comments on commit bb37c68

Please sign in to comment.