const isProd = process.env.NODE_ENV !== 'development' const isStaging = process.env.ENV === 'alpha' || process.env.ENV === 'rc' function isEnable (feature) { return !isProd || process.env[feature] === 'enabled' } function createFeature (feature) { return { [feature]: isEnable(feature) } } function getTimestamp () { const now = new Date() return `${now.getFullYear()}${(now.getMonth() + 1).toString().padStart(2, '0')}${now.getDate().toString().padStart(2, '0')}${now.getHours().toString().padStart(2, '0')}${now.getMinutes().toString().padStart(2, '0')}${now.getSeconds().toString().padStart(2, '0')}` } const version = `v${require('./package.json').version}.${getTimestamp()}` module.exports = { version, isProd, logger: isEnable('LOGGER'), features: { __VERSION__: JSON.stringify(version), __DEV__: !isProd, __STAGING__: isStaging, ...createFeature('__FEATURE__'), ...createFeature('__SUB_DEVICE__'), ...createFeature('__TAKEOVER__'), ...createFeature('__ALARM_SMS__'), ...createFeature('__ALARM_EMAIL__'), ...createFeature('__ALARM_WECHAT_OFFICIAL__'), ...createFeature('__ALARM_WECHAT_APPLAT__'), ...createFeature('__JUMP_REVIEW__'), ...createFeature('__EMERGENCY_PLATFORM__') } }