Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throw error on missing environment #560

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 9 additions & 4 deletions node.js
Expand Up @@ -68,16 +68,21 @@ function pickEnv (config, opts) {
if (typeof config !== 'object') return config

var name

if (typeof opts.env === 'string') {
name = opts.env
} else if (process.env.BROWSERSLIST_ENV) {
name = process.env.BROWSERSLIST_ENV
} else if (process.env.NODE_ENV) {
name = process.env.NODE_ENV
} else {
name = 'production'
}

if (name && name !== 'defaults' && !config[name]) {
throw new BrowserslistError(
'Missing config for Browserslist environment `' + name + '`.'
)
}

name = name || process.env.NODE_ENV || 'production'

return config[name] || config.defaults
}

Expand Down
13 changes: 11 additions & 2 deletions test/main.test.js
Expand Up @@ -191,8 +191,12 @@ it('uses env options to browserlist config', () => {
expect(browserslist(null, { path: CONFIG, env: 'development' }))
.toEqual(['chrome 55', 'firefox 50'])

expect(browserslist(null, { path: CONFIG, env: 'test' }))
expect(browserslist(null, { path: CONFIG, env: 'defaults' }))
.toEqual(['ie 11', 'ie 10'])

expect(() => {
browserslist(null, { path: CONFIG, env: 'test' })
}).toThrow(/Missing config for Browserslist environment/)
})

it('uses env options to package.json', () => {
Expand All @@ -202,7 +206,12 @@ it('uses env options to package.json', () => {
expect(browserslist(null, { path: PACKAGE, env: 'development' }))
.toEqual(['chrome 55', 'firefox 50'])

expect(browserslist(null, { path: PACKAGE, env: 'test' })).toEqual(DEFAULTS)
expect(browserslist(null, { path: PACKAGE, env: 'defaults' }))
.toEqual(DEFAULTS)

expect(() => {
browserslist(null, { path: PACKAGE, env: 'test' })
}).toThrow(/Missing config for Browserslist environment/)
})

it('uses NODE_ENV to get environment', () => {
Expand Down