feature.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. const isProd = process.env.NODE_ENV !== 'development'
  2. const isStaging = process.env.ENV === 'staging'
  3. function isEnable (feature) {
  4. return !isProd || process.env[feature] === 'enabled'
  5. }
  6. function createFeature (feature) {
  7. return {
  8. [feature]: isEnable(feature)
  9. }
  10. }
  11. function getTimestamp () {
  12. const now = new Date()
  13. 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')}`
  14. }
  15. module.exports = {
  16. isProd,
  17. isStaging,
  18. logger: isStaging || isEnable('LOGGER'),
  19. features: {
  20. __VERSION__: JSON.stringify(`v${require('./package.json').version}.${getTimestamp()}`),
  21. // 未开发完的路由
  22. __DEV__: !isProd,
  23. // 待测试的功能
  24. __STAGING__: !isProd || isStaging,
  25. // 未开发的功能组件
  26. ...createFeature('__PLACEHOLDER__'),
  27. // 传感器
  28. ...createFeature('__SENSOR__'),
  29. // 设备仪表盘
  30. ...createFeature('__DEVICE_DASHBARD__')
  31. }
  32. }