71 lines
1.3 KiB
JavaScript
71 lines
1.3 KiB
JavaScript
// Gather initial information
|
|
var isCI = false
|
|
var debug = false
|
|
var tty = false
|
|
var nodeENV = 'development'
|
|
var browser = typeof window !== 'undefined'
|
|
var platform = ''
|
|
var minimal = false
|
|
|
|
// Boolean helper
|
|
function toBoolean(val) {
|
|
return (!val || val === 'false') ? false : true
|
|
}
|
|
|
|
// Process dependent
|
|
if (typeof process !== 'undefined') {
|
|
// Platform
|
|
if (process.platform) {
|
|
platform = String(process.platform)
|
|
}
|
|
|
|
// TTY
|
|
if (process.stdout) {
|
|
tty = toBoolean(process.stdout.isTTY)
|
|
}
|
|
|
|
// Is CI
|
|
isCI = Boolean(require('ci-info').isCI)
|
|
|
|
// Env dependent
|
|
if (process.env) {
|
|
// NODE_ENV
|
|
if (process.env.NODE_ENV) {
|
|
nodeENV = process.env.NODE_ENV
|
|
}
|
|
|
|
// DEBUG
|
|
debug = toBoolean(process.env.DEBUG)
|
|
|
|
// MINIMAL
|
|
minimal = toBoolean(process.env.MINIMAL)
|
|
}
|
|
}
|
|
|
|
// Construct env object
|
|
var env = {
|
|
browser: browser,
|
|
|
|
test: nodeENV === 'test',
|
|
dev: nodeENV === 'development' || nodeENV === 'dev',
|
|
production: nodeENV === 'production',
|
|
debug: debug,
|
|
|
|
ci: isCI,
|
|
tty: tty,
|
|
|
|
minimal: undefined,
|
|
minimalCLI: undefined,
|
|
|
|
windows: /^win/i.test(platform),
|
|
darwin: /^darwin/i.test(platform),
|
|
linux: /^linux/i.test(platform),
|
|
}
|
|
|
|
// Compute minimal
|
|
env.minimal = minimal || env.ci || env.test || !env.tty
|
|
env.minimalCLI = env.minimal
|
|
|
|
// Export env
|
|
module.exports = Object.freeze(env)
|