2021-02-11 21:31:41 +08:00

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)