reg-cli 0.17.7 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,263 +1,200 @@
1
- 'use strict';
2
-
3
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // $FlowIgnore
1
+ "use strict";
2
+
3
+ var _glob = _interopRequireDefault(require("glob"));
4
+ var _makeDir = _interopRequireDefault(require("make-dir"));
5
+ var _del = _interopRequireDefault(require("del"));
6
+ var _fs = _interopRequireDefault(require("fs"));
7
+ var _path = _interopRequireDefault(require("path"));
8
+ var _lodash = require("lodash");
9
+ var _log = _interopRequireDefault(require("./log"));
10
+ var _report = _interopRequireDefault(require("./report"));
11
+ var _bluebird = _interopRequireDefault(require("bluebird"));
12
+ var _events = _interopRequireDefault(require("events"));
13
+ var _processAdaptor = _interopRequireDefault(require("./process-adaptor"));
14
+ var _imageFinder = require("./image-finder");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
16
  // $FlowIgnore
5
17
  // $FlowIgnore
6
-
7
18
  // $FlowIgnore
8
-
9
-
10
- var _glob = require('glob');
11
-
12
- var _glob2 = _interopRequireDefault(_glob);
13
-
14
- var _makeDir = require('make-dir');
15
-
16
- var _makeDir2 = _interopRequireDefault(_makeDir);
17
-
18
- var _del = require('del');
19
-
20
- var _del2 = _interopRequireDefault(_del);
21
-
22
- var _fs = require('fs');
23
-
24
- var _fs2 = _interopRequireDefault(_fs);
25
-
26
- var _path = require('path');
27
-
28
- var _path2 = _interopRequireDefault(_path);
29
-
30
- var _lodash = require('lodash');
31
-
32
- var _log = require('./log');
33
-
34
- var _log2 = _interopRequireDefault(_log);
35
-
36
- var _report = require('./report');
37
-
38
- var _report2 = _interopRequireDefault(_report);
39
-
40
- var _bluebird = require('bluebird');
41
-
42
- var _bluebird2 = _interopRequireDefault(_bluebird);
43
-
44
- var _events = require('events');
45
-
46
- var _events2 = _interopRequireDefault(_events);
47
-
48
- var _processAdaptor = require('./process-adaptor');
49
-
50
- var _processAdaptor2 = _interopRequireDefault(_processAdaptor);
51
-
52
- var _imageFinder = require('./image-finder');
53
-
54
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
55
-
56
- function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
57
-
58
- var copyImages = function copyImages(actualImages, _ref) {
59
- var expectedDir = _ref.expectedDir,
60
- actualDir = _ref.actualDir;
61
-
62
- return Promise.all(actualImages.map(function (image) {
63
- return new Promise(function (resolve, reject) {
64
- try {
65
- _makeDir2.default.sync(_path2.default.dirname(_path2.default.join(expectedDir, image)));
66
- var writeStream = _fs2.default.createWriteStream(_path2.default.join(expectedDir, image));
67
- _fs2.default.createReadStream(_path2.default.join(actualDir, image)).pipe(writeStream);
68
- writeStream.on('finish', function (err) {
69
- if (err) reject(err);
70
- resolve();
71
- });
72
- } catch (err) {
73
- reject(err);
74
- }
75
- });
76
- }));
19
+ // $FlowIgnore
20
+ var copyImages = (actualImages, {
21
+ expectedDir,
22
+ actualDir
23
+ }) => {
24
+ return Promise.all(actualImages.map(image => new Promise((resolve, reject) => {
25
+ try {
26
+ _makeDir.default.sync(_path.default.dirname(_path.default.join(expectedDir, image)));
27
+ var writeStream = _fs.default.createWriteStream(_path.default.join(expectedDir, image));
28
+ _fs.default.createReadStream(_path.default.join(actualDir, image)).pipe(writeStream);
29
+ writeStream.on('finish', err => {
30
+ if (err) reject(err);
31
+ resolve();
32
+ });
33
+ } catch (err) {
34
+ reject(err);
35
+ }
36
+ })));
77
37
  };
78
-
79
- var compareImages = function compareImages(emitter, _ref2) {
80
- var expectedImages = _ref2.expectedImages,
81
- actualImages = _ref2.actualImages,
82
- dirs = _ref2.dirs,
83
- matchingThreshold = _ref2.matchingThreshold,
84
- thresholdPixel = _ref2.thresholdPixel,
85
- thresholdRate = _ref2.thresholdRate,
86
- concurrency = _ref2.concurrency,
87
- enableAntialias = _ref2.enableAntialias;
88
-
89
- var images = actualImages.filter(function (actualImage) {
90
- return expectedImages.includes(actualImage);
91
- });
38
+ var compareImages = (emitter, {
39
+ expectedImages,
40
+ actualImages,
41
+ dirs,
42
+ matchingThreshold,
43
+ thresholdPixel,
44
+ thresholdRate,
45
+ concurrency,
46
+ enableAntialias
47
+ }) => {
48
+ var images = actualImages.filter(actualImage => expectedImages.includes(actualImage));
92
49
  concurrency = images.length < 20 ? 1 : concurrency || 4;
93
- var processes = (0, _lodash.range)(concurrency).map(function () {
94
- return new _processAdaptor2.default(emitter);
95
- });
96
- return _bluebird2.default.map(images, function (image) {
97
- var p = processes.find(function (p) {
98
- return !p.isRunning();
99
- });
50
+ var processes = (0, _lodash.range)(concurrency).map(() => new _processAdaptor.default(emitter));
51
+ return _bluebird.default.map(images, image => {
52
+ var p = processes.find(p => !p.isRunning());
100
53
  if (p) {
101
- return p.run(_extends({}, dirs, {
102
- image: image,
103
- matchingThreshold: matchingThreshold,
104
- thresholdRate: thresholdRate,
105
- thresholdPixel: thresholdPixel,
106
- enableAntialias: enableAntialias
107
- }));
54
+ return p.run({
55
+ ...dirs,
56
+ image,
57
+ matchingThreshold,
58
+ thresholdRate,
59
+ thresholdPixel,
60
+ enableAntialias
61
+ });
108
62
  }
109
- }, { concurrency: concurrency }).then(function (result) {
110
- processes.forEach(function (p) {
111
- return p.close();
112
- });
63
+ }, {
64
+ concurrency
65
+ }).then(result => {
66
+ processes.forEach(p => p.close());
113
67
  return result;
114
- }).filter(function (r) {
115
- return !!r;
116
- });
68
+ }).filter(r => !!r);
117
69
  };
118
-
119
- var cleanupExpectedDir = function cleanupExpectedDir(expectedDir, changedFiles) {
120
- var paths = changedFiles.map(function (image) {
121
- var _path$posix;
122
-
70
+ var cleanupExpectedDir = (expectedDir, changedFiles) => {
71
+ var paths = changedFiles.map(image => {
123
72
  var directories = expectedDir.split("\\");
124
- return escapeGlob((_path$posix = _path2.default.posix).join.apply(_path$posix, _toConsumableArray(directories).concat([image])));
73
+ return escapeGlob(_path.default.posix.join(...directories, image));
125
74
  });
126
75
  // force: true needed to allow deleting outside working directory
127
- return (0, _del2.default)(paths, { force: true });
76
+ return (0, _del.default)(paths, {
77
+ force: true
78
+ });
128
79
  };
129
-
130
- var escapeGlob = function escapeGlob(fileName) {
80
+ var escapeGlob = fileName => {
131
81
  return fileName.replace(/(\*)/g, '[$1]').replace(/(\*)/g, '[$1]').replace(/(\?)/g, '[$1]').replace(/(\[)/g, '[$1]').replace(/(\])/g, '[$1]').replace(/(\{)/g, '[$1]').replace(/(\})/g, '[$1]').replace(/(\))/g, '[$1]').replace(/(\()/g, '[$1]').replace(/(\!)/g, '[$1]');
132
82
  };
133
-
134
- var aggregate = function aggregate(result) {
135
- var passed = result.filter(function (r) {
136
- return r.passed;
137
- }).map(function (r) {
138
- return r.image;
139
- });
140
- var failed = result.filter(function (r) {
141
- return !r.passed;
142
- }).map(function (r) {
143
- return r.image;
144
- });
145
- var diffItems = failed.map(function (image) {
146
- return image.replace(/\.[^\.]+$/, '.png');
147
- });
148
- return { passed: passed, failed: failed, diffItems: diffItems };
83
+ var aggregate = result => {
84
+ var passed = result.filter(r => r.passed).map(r => r.image);
85
+ var failed = result.filter(r => !r.passed).map(r => r.image);
86
+ var diffItems = failed.map(image => image.replace(/\.[^\.]+$/, '.png'));
87
+ return {
88
+ passed,
89
+ failed,
90
+ diffItems
91
+ };
149
92
  };
150
-
151
- var updateExpected = function updateExpected(_ref3) {
152
- var actualDir = _ref3.actualDir,
153
- expectedDir = _ref3.expectedDir,
154
- diffDir = _ref3.diffDir,
155
- deletedImages = _ref3.deletedImages,
156
- newImages = _ref3.newImages,
157
- diffItems = _ref3.diffItems;
158
-
159
- return cleanupExpectedDir(expectedDir, [].concat(_toConsumableArray(deletedImages), _toConsumableArray(diffItems))).then(function () {
160
- return copyImages([].concat(_toConsumableArray(newImages), _toConsumableArray(diffItems)), {
161
- actualDir: actualDir,
162
- expectedDir: expectedDir,
163
- diffDir: diffDir
164
- });
165
- }).then(function () {
166
- _log2.default.success('\nAll images are updated. ');
93
+ var updateExpected = ({
94
+ actualDir,
95
+ expectedDir,
96
+ diffDir,
97
+ deletedImages,
98
+ newImages,
99
+ diffItems
100
+ }) => {
101
+ return cleanupExpectedDir(expectedDir, [...deletedImages, ...diffItems]).then(() => copyImages([...newImages, ...diffItems], {
102
+ actualDir,
103
+ expectedDir,
104
+ diffDir
105
+ })).then(() => {
106
+ _log.default.success(`\nAll images are updated. `);
167
107
  });
168
108
  };
169
-
170
- module.exports = function (params) {
171
- var actualDir = params.actualDir,
172
- expectedDir = params.expectedDir,
173
- diffDir = params.diffDir,
174
- json = params.json,
175
- _params$concurrency = params.concurrency,
176
- concurrency = _params$concurrency === undefined ? 4 : _params$concurrency,
177
- update = params.update,
178
- report = params.report,
179
- urlPrefix = params.urlPrefix,
180
- threshold = params.threshold,
181
- _params$matchingThres = params.matchingThreshold,
182
- matchingThreshold = _params$matchingThres === undefined ? 0 : _params$matchingThres,
183
- thresholdRate = params.thresholdRate,
184
- thresholdPixel = params.thresholdPixel,
185
- enableAntialias = params.enableAntialias,
186
- enableClientAdditionalDetection = params.enableClientAdditionalDetection;
187
-
188
- var dirs = { actualDir: actualDir, expectedDir: expectedDir, diffDir: diffDir };
189
- var emitter = new _events2.default();
190
-
191
- var _findImages = (0, _imageFinder.findImages)(expectedDir, actualDir),
192
- expectedImages = _findImages.expectedImages,
193
- actualImages = _findImages.actualImages,
194
- deletedImages = _findImages.deletedImages,
195
- newImages = _findImages.newImages;
196
-
197
- _makeDir2.default.sync(expectedDir);
198
- _makeDir2.default.sync(diffDir);
199
-
200
- setImmediate(function () {
201
- return emitter.emit('start');
202
- });
109
+ module.exports = params => {
110
+ var {
111
+ actualDir,
112
+ expectedDir,
113
+ diffDir,
114
+ json,
115
+ concurrency = 4,
116
+ update,
117
+ report,
118
+ junitReport,
119
+ extendedErrors,
120
+ urlPrefix,
121
+ threshold,
122
+ matchingThreshold = 0,
123
+ thresholdRate,
124
+ thresholdPixel,
125
+ enableAntialias,
126
+ enableClientAdditionalDetection
127
+ } = params;
128
+ var dirs = {
129
+ actualDir,
130
+ expectedDir,
131
+ diffDir
132
+ };
133
+ var emitter = new _events.default();
134
+ var {
135
+ expectedImages,
136
+ actualImages,
137
+ deletedImages,
138
+ newImages
139
+ } = (0, _imageFinder.findImages)(expectedDir, actualDir);
140
+ _makeDir.default.sync(expectedDir);
141
+ _makeDir.default.sync(diffDir);
142
+ setImmediate(() => emitter.emit('start'));
203
143
  compareImages(emitter, {
204
- expectedImages: expectedImages,
205
- actualImages: actualImages,
206
- dirs: dirs,
207
- matchingThreshold: matchingThreshold,
144
+ expectedImages,
145
+ actualImages,
146
+ dirs,
147
+ matchingThreshold,
208
148
  thresholdRate: thresholdRate || threshold,
209
- thresholdPixel: thresholdPixel,
210
- concurrency: concurrency,
149
+ thresholdPixel,
150
+ concurrency,
211
151
  enableAntialias: !!enableAntialias
212
- }).then(function (result) {
213
- return aggregate(result);
214
- }).then(function (_ref4) {
215
- var passed = _ref4.passed,
216
- failed = _ref4.failed,
217
- diffItems = _ref4.diffItems;
218
-
219
- return (0, _report2.default)({
152
+ }).then(result => aggregate(result)).then(({
153
+ passed,
154
+ failed,
155
+ diffItems
156
+ }) => {
157
+ return (0, _report.default)({
220
158
  passedItems: passed,
221
159
  failedItems: failed,
222
160
  newItems: newImages,
223
161
  deletedItems: deletedImages,
224
162
  expectedItems: update ? actualImages : expectedImages,
225
163
  actualItems: actualImages,
226
- diffItems: diffItems,
164
+ diffItems,
227
165
  json: json || './reg.json',
228
- actualDir: actualDir,
229
- expectedDir: expectedDir,
230
- diffDir: diffDir,
166
+ actualDir,
167
+ expectedDir,
168
+ diffDir,
231
169
  report: report || '',
170
+ junitReport: junitReport || '',
171
+ extendedErrors: !!extendedErrors,
232
172
  urlPrefix: urlPrefix || '',
233
173
  enableClientAdditionalDetection: !!enableClientAdditionalDetection
234
174
  });
235
- }).then(function (result) {
236
- deletedImages.forEach(function (image) {
237
- return emitter.emit('compare', { type: 'delete', path: image });
238
- });
239
- newImages.forEach(function (image) {
240
- return emitter.emit('compare', { type: 'new', path: image });
241
- });
175
+ }).then(result => {
176
+ deletedImages.forEach(image => emitter.emit('compare', {
177
+ type: 'delete',
178
+ path: image
179
+ }));
180
+ newImages.forEach(image => emitter.emit('compare', {
181
+ type: 'new',
182
+ path: image
183
+ }));
242
184
  if (update) {
243
185
  return updateExpected({
244
- actualDir: actualDir,
245
- expectedDir: expectedDir,
246
- diffDir: diffDir,
247
- deletedImages: deletedImages,
248
- newImages: newImages,
186
+ actualDir,
187
+ expectedDir,
188
+ diffDir,
189
+ deletedImages,
190
+ newImages,
249
191
  diffItems: result.diffItems
250
- }).then(function () {
192
+ }).then(() => {
251
193
  emitter.emit('update');
252
194
  return result;
253
195
  });
254
196
  }
255
197
  return result;
256
- }).then(function (result) {
257
- return emitter.emit('complete', result);
258
- }).catch(function (err) {
259
- return emitter.emit('error', err);
260
- });
261
-
198
+ }).then(result => emitter.emit('complete', result)).catch(err => emitter.emit('error', err));
262
199
  return emitter;
263
200
  };
package/dist/log.js CHANGED
@@ -1,21 +1,21 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
  var chalk = require('chalk');
7
-
8
- exports.default = {
9
- info: function info(text) {
8
+ var _default = exports.default = {
9
+ info(text) {
10
10
  console.log(chalk.cyan(text));
11
11
  },
12
- warn: function warn(text) {
12
+ warn(text) {
13
13
  console.log(chalk.gray(text));
14
14
  },
15
- success: function success(text) {
15
+ success(text) {
16
16
  console.log(chalk.green(text));
17
17
  },
18
- fail: function fail(text) {
18
+ fail(text) {
19
19
  console.log(chalk.red(text));
20
20
  }
21
21
  };
@@ -1,63 +1,40 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // $FlowIgnore
8
-
9
-
10
- var _child_process = require('child_process');
11
-
12
- var _path = require('path');
13
-
14
- var _path2 = _interopRequireDefault(_path);
15
-
6
+ exports.default = void 0;
7
+ var _child_process = require("child_process");
8
+ var _path = _interopRequireDefault(require("path"));
16
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
-
20
- var ProcessAdaptor = function () {
21
- function ProcessAdaptor(emitter) {
22
- _classCallCheck(this, ProcessAdaptor);
23
-
24
- this._process = (0, _child_process.fork)(_path2.default.resolve(__dirname, './diff.js'));
10
+ // $FlowIgnore
11
+ class ProcessAdaptor {
12
+ constructor(emitter) {
13
+ this._process = (0, _child_process.fork)(_path.default.resolve(__dirname, './diff.js'));
25
14
  this._isRunning = false;
26
15
  this._emitter = emitter;
27
16
  }
28
-
29
- _createClass(ProcessAdaptor, [{
30
- key: 'isRunning',
31
- value: function isRunning() {
32
- return this._isRunning;
33
- }
34
- }, {
35
- key: 'run',
36
- value: function run(params) {
37
- var _this = this;
38
-
39
- return new Promise(function (resolve, reject) {
40
- _this._isRunning = true;
41
- if (!_this._process || !_this._process.send) resolve();
42
- _this._process.send(params);
43
- _this._process.once('message', function (result) {
44
- _this._isRunning = false;
45
- _this._emitter.emit('compare', {
46
- type: result.passed ? 'pass' : 'fail', path: result.image
47
- });
48
- resolve(result);
17
+ isRunning() {
18
+ return this._isRunning;
19
+ }
20
+ run(params) {
21
+ return new Promise((resolve, reject) => {
22
+ this._isRunning = true;
23
+ if (!this._process || !this._process.send) resolve();
24
+ this._process.send(params);
25
+ this._process.once('message', result => {
26
+ this._isRunning = false;
27
+ this._emitter.emit('compare', {
28
+ type: result.passed ? 'pass' : 'fail',
29
+ path: result.image
49
30
  });
31
+ resolve(result);
50
32
  });
51
- }
52
- }, {
53
- key: 'close',
54
- value: function close() {
55
- if (!this._process || !this._process.kill) return;
56
- this._process.kill();
57
- }
58
- }]);
59
-
60
- return ProcessAdaptor;
61
- }();
62
-
33
+ });
34
+ }
35
+ close() {
36
+ if (!this._process || !this._process.kill) return;
37
+ this._process.kill();
38
+ }
39
+ }
63
40
  exports.default = ProcessAdaptor;