Exemplo n.º 1
0
const getImages = () => new Promise((resolve, reject) => {
  const baseImages = fs.readdirSync(options.baselineImageDirectory);

  const newImages = reduce(baseImages, [], (acc, currentImage, done) => {
    const basePath = path.join(options.baselineImageDirectory, currentImage);
    const newPath = path.join(options.newImageDirectory, currentImage);
    const baseImg = fs.readFileSync(basePath)
    const newImg = fs.readFileSync(newPath)

    resemble(newImg)
      .compareTo(baseImg)
      .onComplete((data) => {
        if (Number(data.misMatchPercentage) >= options.resemblejsThreshold) {
          done(null, acc.concat([{
            filename: currentImage,
            baseImg: dataImg(baseImg.toString('base64')),
            newImg: dataImg(newImg.toString('base64')),
            diffImg: data.getImageDataUrl()
          }]))
        } else {
          done(null, acc)
        }
      })
  }, (err, result) => {
    resolve(result)
  });
})
Exemplo n.º 2
0
 return function preprocess(content, file, done) {
   var relativePath = file.originalPath.replace(basePath + '/', '');
   reduce(rules, content, function step(prevContent, rule, callback) {
     var pattern = rule.match || "**/*";
     var next = callback.bind(null, null);
     if (minimatch(relativePath, pattern)) {
       try {
         rule.process(prevContent, file, next, log);
       } catch (e) {
         log.error('%s\n  for file %s', e.message, file.originalPath);
         done(e, null);
       }
     } else {
       next(prevContent);
     }
   }, function (err, result) {
     done(result);
   });
 };
Exemplo n.º 3
0
function tree(filenames, mapper, callback) {
  filenames = filenames.map(resolve)

  var top = commondir(filenames)

  reduce(filenames, {}, function(memo, name, next) {
    var key = path.relative(top, name)
    mapper(name, function(err, result) {
      if (err) return next(err)
      result.__deepest_node__ = true
      memo[key] = result
      return next(null, memo)
    })
  }, function(err, object) {
    if (err) return callback(err)

    object = flat.unflatten(object, { delimiter: path.sep })

    callback(null, clean(reformat(object, 'name')))
  })
}