pkg-json-obj.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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, isBundle) {
  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. // additions...
  17. if (isBundle) {
  18. merged.main = 'main.js' // will be umd
  19. merged.unpkg = 'main.min.js'
  20. } else {
  21. merged.main = 'main.js' // will be an ES module even tho using `main` not `module`
  22. merged.types = 'main.d.ts' // TODO: make work for bundle
  23. }
  24. return merged
  25. }
  26. function getBaseJsonObj(isPremium) {
  27. let base = require(path.join(process.cwd(), BASE_JSON))
  28. // do lazily, in case the repo doesn't have any premium
  29. if (isPremium) {
  30. let premium = require(path.join(process.cwd(), PREMIUM_JSON))
  31. base = Object.assign({}, base, premium) // merge with existing base
  32. }
  33. return base
  34. }