feature.js 1.0 KB

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