builder/lib/processors/stringReplacer.js

  1. const replaceStream = require("replacestream");
  2. /**
  3. * Replaces placeholders with corresponding values.
  4. *
  5. * @public
  6. * @alias module:@ui5/builder.processors.stringReplacer
  7. * @param {object} parameters Parameters
  8. * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed
  9. * @param {object} parameters.options Options
  10. * @param {string} parameters.options.pattern Pattern of placeholders
  11. * @param {string} parameters.options.replacement Replacement for placeholders
  12. * @returns {Promise<module:@ui5/fs.Resource[]>} Promise resolving with modified resources
  13. */
  14. module.exports = function({resources, options: {pattern, replacement}}) {
  15. return Promise.all(resources.map((resource) => {
  16. let stream = resource.getStream();
  17. stream.setEncoding("utf8");
  18. stream = stream.pipe(replaceStream(pattern, replacement));
  19. resource.setStream(stream);
  20. return resource;
  21. }));
  22. };