loadPackageProp.js 850 B

1234567891011121314151617181920212223242526272829303132
  1. //
  2. 'use strict';
  3. const path = require('path');
  4. const readFile = require('./readFile');
  5. const parseJson = require('./parseJson');
  6. module.exports = function loadPackageProp(
  7. packageDir ,
  8. options
  9. ) {
  10. const packagePath = path.join(packageDir, 'package.json');
  11. function parseContent(content ) {
  12. if (!content) return null;
  13. const parsedContent = parseJson(content, packagePath);
  14. const packagePropValue = parsedContent[options.packageProp];
  15. if (!packagePropValue) return null;
  16. return {
  17. config: packagePropValue,
  18. filepath: packagePath,
  19. };
  20. }
  21. return !options.sync
  22. ? readFile(packagePath).then(parseContent)
  23. : parseContent(readFile.sync(packagePath));
  24. };