pkg-json-obj.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const path = require('path')
  2. const BASE_JSON = 'package.json'
  3. const PREMIUM_JSON = 'packages-premium/package.json'
  4. exports.buildPkgJsonObj = buildPkgJsonObj
  5. function buildPkgJsonObj(origJsonObj, isPremium) {
  6. let merged = Object.assign({}, getBaseJsonObj(isPremium))
  7. // things we don't want on inherit from the roots
  8. delete merged.dependencies
  9. delete merged.peerDependencies
  10. delete merged.optionalDependencies
  11. Object.assign(merged, origJsonObj)
  12. // things we don't want from either package.json
  13. delete merged.private
  14. delete merged.devDependencies
  15. delete merged.scripts
  16. delete merged.browserGlobal
  17. // additions
  18. merged.main = 'main.js'
  19. merged.module = 'main.esm.js'
  20. merged.unpkg = 'main.min.js'
  21. merged.types = 'main.d.ts'
  22. return merged
  23. }
  24. function getBaseJsonObj(isPremium) {
  25. let base = require(path.join(process.cwd(), BASE_JSON))
  26. // do lazily, in case the repo doesn't have any premium
  27. if (isPremium) {
  28. let premium = require(path.join(process.cwd(), PREMIUM_JSON))
  29. base = Object.assign({}, base, premium) // merge with existing base
  30. }
  31. return base
  32. }