package-index.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const path = require('path')
  2. const globby = require('globby')
  3. const fs = require('fs')
  4. let configPaths = globby.sync([
  5. 'packages?(-premium)/*/package.json'
  6. ])
  7. let packageStructs = exports.packageStructs = configPaths.filter((path) => !isTest(path) && !isBundle(path)).map(buildStruct)
  8. let bundleStructs = exports.bundleStructs = configPaths.filter((path) => isBundle(path)).map(buildStruct)
  9. let testStructs = exports.testStructs = configPaths.filter((path) => isTest(path)).map(buildStruct)
  10. exports.allStructs = packageStructs.concat(bundleStructs, testStructs)
  11. exports.publicPackageStructs = packageStructs.filter((struct) => struct.name !== '@fullcalendar/core-preact') // not a good way to do this
  12. function buildStruct(configPath) {
  13. let config = require('../../' + configPath)
  14. let dir = path.join(configPath, '..')
  15. let mainDistJs = config.module || config.main || 'index.js'
  16. let mainDistDts = config.types || 'index.d.ts'
  17. let mainName = path.basename(mainDistJs, '.js')
  18. let mainSrc = path.join('src', mainName + '.ts')
  19. let mainGlobalSrc = path.join('src', mainName + '.global.ts') // might not exist
  20. let mainTscJs = path.join('tsc', mainName + '.js')
  21. let mainGlobalTscJs = path.join('tsc', mainName + '.global.js') // might not exist
  22. let mainTscDts = path.join('tsc', mainName + '.d.ts')
  23. return {
  24. name: config.name,
  25. dir,
  26. isPremium: dir.match('packages-premium'), // TODO: better
  27. mainName,
  28. mainDistJs,
  29. mainDistDts,
  30. mainSrc,
  31. mainTscJs,
  32. mainGlobalTscJs: fs.existsSync(path.join(dir, mainGlobalSrc)) ? mainGlobalTscJs : mainTscJs,
  33. mainTscDts,
  34. meta: config
  35. }
  36. }
  37. function isTest(path) {
  38. return /[\\/]__tests__[\\/]/.test(path)
  39. }
  40. function isBundle(path) {
  41. return /[\\/]bundle[\\/]/.test(path)
  42. }