transformOptionsFromPath.js 737 B

12345678910111213141516171819202122232425262728293031
  1. function transformOptionFromPath(opt, relPathFromRoot) {
  2. const lengthOfPath = relPathFromRoot.length;
  3. if (Array.isArray(opt)) {
  4. const updatedArray = opt
  5. .filter(
  6. optString => optString.startsWith(relPathFromRoot) && !(optString === relPathFromRoot)
  7. )
  8. .map(optString => optString.substring(lengthOfPath + 1));
  9. if (updatedArray.length === 0) {
  10. return false;
  11. }
  12. return updatedArray;
  13. }
  14. return opt;
  15. }
  16. module.exports = (options, relPathFromRoot) => {
  17. return Object.keys(options).reduce((acc, key) => {
  18. const transformedOpt = transformOptionFromPath(options[key], relPathFromRoot);
  19. if (transformedOpt) {
  20. acc[key] = transformedOpt;
  21. }
  22. return acc;
  23. }, {});
  24. };