feature.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const isProd = process.env.NODE_ENV !== 'development'
  2. const isStaging = process.env.ENV === 'alpha' || process.env.ENV === 'rc'
  3. function isEnable (feature) {
  4. return !isProd || process.env[feature] === 'enabled'
  5. }
  6. function createFeature (feature) {
  7. return { [feature]: isEnable(feature) }
  8. }
  9. function getTimestamp () {
  10. const now = new Date()
  11. 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')}`
  12. }
  13. const version = `v${require('./package.json').version}.${getTimestamp()}`
  14. module.exports = {
  15. version,
  16. isProd,
  17. logger: isEnable('LOGGER'),
  18. features: {
  19. __VERSION__: JSON.stringify(version),
  20. __DEV__: !isProd,
  21. __STAGING__: isStaging,
  22. ...createFeature('__FEATURE__'),
  23. ...createFeature('__SUB_DEVICE__'),
  24. ...createFeature('__TAKEOVER__'),
  25. ...createFeature('__ALARM_SMS__'),
  26. ...createFeature('__ALARM_EMAIL__'),
  27. ...createFeature('__ALARM_WECHAT_OFFICIAL__'),
  28. ...createFeature('__ALARM_WECHAT_APPLAT__'),
  29. ...createFeature('__JUMP_REVIEW__'),
  30. ...createFeature('__EMERGENCY_PLATFORM__')
  31. }
  32. }