@bundle-stats/cli-utils 4.7.0-rc.1 → 4.7.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.
@@ -0,0 +1,3 @@
1
+ import { fs } from 'memfs';
2
+
3
+ export default fs.promises;
@@ -0,0 +1 @@
1
+ export { fs } from 'memfs';
package/lib/baseline.js CHANGED
@@ -3,26 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.writeBaseline = exports.readBaseline = exports.getBaselineStatsFilepath = void 0;
6
+ exports.writeBaseline = exports.readBaseline = exports.getBaselineRelativePath = exports.getBaselinePath = exports.BASELINE_STATS_BASE = exports.BASELINE_STATS_DIR = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = require("fs-extra");
8
+ const promises_1 = __importDefault(require("fs/promises"));
9
9
  const find_cache_dir_1 = __importDefault(require("find-cache-dir"));
10
- const BASELINE_STATS_DIR = (0, find_cache_dir_1.default)({ name: 'bundle-stats' }) || path_1.default.join(process.cwd(), './node_modules/.cache');
11
- const BASELINE_STATS_BASE = 'baseline.json';
12
- function getBaselineStatsFilepath(outputFilepath, relativeTo) {
13
- const absoluteFilepath = outputFilepath || path_1.default.join(BASELINE_STATS_DIR, BASELINE_STATS_BASE);
14
- if (!relativeTo) {
15
- return absoluteFilepath;
10
+ exports.BASELINE_STATS_DIR = (0, find_cache_dir_1.default)({ name: 'bundle-stats' }) || path_1.default.join(process.cwd(), './node_modules/.cache');
11
+ exports.BASELINE_STATS_BASE = 'baseline.json';
12
+ const getBaselinePath = (outputPath = process.cwd(), outputDir = '', filepath = '') => {
13
+ if (!filepath) {
14
+ return path_1.default.join(exports.BASELINE_STATS_DIR, exports.BASELINE_STATS_BASE);
16
15
  }
17
- return path_1.default.relative(relativeTo, absoluteFilepath);
18
- }
19
- exports.getBaselineStatsFilepath = getBaselineStatsFilepath;
20
- async function readBaseline(outputFilepath, relativeTo) {
21
- return (0, fs_extra_1.readJSON)(getBaselineStatsFilepath(outputFilepath, relativeTo));
16
+ if (path_1.default.isAbsolute(filepath)) {
17
+ return filepath;
18
+ }
19
+ return path_1.default.join(outputPath, outputDir, filepath);
20
+ };
21
+ exports.getBaselinePath = getBaselinePath;
22
+ const getBaselineRelativePath = (outputPath = process.cwd(), outputDir = '', filepath = '') => {
23
+ const absoluteFilepath = (0, exports.getBaselinePath)(outputPath, outputDir, filepath);
24
+ return path_1.default.relative(path_1.default.join(outputPath, outputDir), absoluteFilepath);
25
+ };
26
+ exports.getBaselineRelativePath = getBaselineRelativePath;
27
+ async function readBaseline(baselineFilepath) {
28
+ const file = await promises_1.default.readFile(baselineFilepath, 'utf-8');
29
+ return JSON.parse(file);
22
30
  }
23
31
  exports.readBaseline = readBaseline;
24
- async function writeBaseline(data, outputFilepath) {
25
- return (0, fs_extra_1.outputJSON)(getBaselineStatsFilepath(outputFilepath), data);
32
+ async function writeBaseline(data, baselineFilepath) {
33
+ return promises_1.default.writeFile(baselineFilepath, JSON.stringify(data));
26
34
  }
27
35
  exports.writeBaseline = writeBaseline;
28
36
  //# sourceMappingURL=baseline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uCAAgD;AAChD,oEAA0C;AAE1C,MAAM,kBAAkB,GAAG,IAAA,wBAAY,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACvH,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,SAAgB,wBAAwB,CAAC,cAAuB,EAAE,UAAmB;IACnF,MAAM,gBAAgB,GAAG,cAAc,IAAI,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IAE9F,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,gBAAgB,CAAC;KACzB;IAED,OAAO,cAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AARD,4DAQC;AAEM,KAAK,UAAU,YAAY,CAAC,cAAuB,EAAE,UAAmB;IAC7E,OAAO,IAAA,mBAAQ,EAAC,wBAAwB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,cAAuB;IACrE,OAAO,IAAA,qBAAU,EAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,2DAA6B;AAC7B,oEAA0C;AAE7B,QAAA,kBAAkB,GAC7B,IAAA,wBAAY,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACjF,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAK5C,MAAM,eAAe,GAAG,CAC7B,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACL,EAAE;IACV,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,cAAI,CAAC,IAAI,CAAC,0BAAkB,EAAE,2BAAmB,CAAC,CAAC;KAC3D;IAED,IAAI,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AAKK,MAAM,uBAAuB,GAAG,CACrC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACL,EAAE;IACV,MAAM,gBAAgB,GAAG,IAAA,uBAAe,EAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1E,OAAO,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC;AAEK,KAAK,UAAU,YAAY,CAAC,gBAAwB;IACzD,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAHD,oCAGC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,gBAAwB;IACtE,OAAO,kBAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,sCAEC"}
package/lib/reports.js CHANGED
@@ -31,7 +31,6 @@ const path_1 = __importDefault(require("path"));
31
31
  const merge_1 = __importDefault(require("lodash/merge"));
32
32
  const utils_1 = require("@bundle-stats/utils");
33
33
  const plugin_webpack_filter_1 = __importDefault(require("@bundle-stats/plugin-webpack-filter"));
34
- const plugin_webpack_validate_1 = __importDefault(require("@bundle-stats/plugin-webpack-validate"));
35
34
  const TEXT = __importStar(require("./text"));
36
35
  const create_artifacts_1 = require("./create-artifacts");
37
36
  const baseline_1 = require("./baseline");
@@ -40,52 +39,57 @@ function getReportInfo(report) {
40
39
  }
41
40
  exports.getReportInfo = getReportInfo;
42
41
  const DEFAULT_OPTIONS = {
43
- compare: true,
44
- baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
45
42
  html: true,
46
43
  json: false,
44
+ compare: true,
45
+ baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
47
46
  outDir: '',
48
47
  silent: false,
49
48
  };
50
49
  const generateReports = async (source, options, pluginOptions = {}) => {
51
50
  const { compare, baseline, html, json, outDir } = (0, merge_1.default)({}, DEFAULT_OPTIONS, options);
52
- const { invalidOptionsUrl: invalidParamsUrl, outputPath, logger = console } = pluginOptions;
51
+ const { outputPath = process.cwd(), logger = console } = pluginOptions;
53
52
  const newAssets = {};
54
- const invalid = (0, plugin_webpack_validate_1.default)(source);
55
- if (invalid) {
56
- logger.warn([invalid, invalidParamsUrl].join('\n'));
57
- }
58
53
  const data = (0, plugin_webpack_filter_1.default)(source);
59
54
  if (!data.builtAt) {
60
55
  data.builtAt = Date.now();
61
56
  }
62
- const baselineFilepath = (0, baseline_1.getBaselineStatsFilepath)(options.baselineFilepath, outputPath);
57
+ const baselineAbsolutePath = (0, baseline_1.getBaselinePath)(outputPath, outDir, options.baselineFilepath);
58
+ const baselinePath = (0, baseline_1.getBaselineRelativePath)(outputPath, outDir, baselineAbsolutePath);
63
59
  let baselineStats = null;
64
- try {
65
- if (compare) {
66
- const baselineStatsData = await (0, baseline_1.readBaseline)(options.baselineFilepath);
60
+ if (compare) {
61
+ try {
62
+ const baselineStatsData = await (0, baseline_1.readBaseline)(baselineAbsolutePath);
67
63
  baselineStats = (0, plugin_webpack_filter_1.default)(baselineStatsData);
68
- if (!options.silent)
69
- logger.info(`Read baseline from ${baselineFilepath}`);
64
+ if (!options.silent) {
65
+ logger.info(`${TEXT.BASELINE_READING} ${baselinePath}`);
66
+ }
67
+ }
68
+ catch (err) {
69
+ logger.warn(TEXT.BASELINE_MISSING);
70
70
  }
71
71
  }
72
- catch (err) {
73
- logger.warn(TEXT.PLUGIN_BASELINE_MISSING_WARN);
72
+ const sources = [{ webpack: data }];
73
+ if (baselineStats) {
74
+ sources.push({ webpack: baselineStats });
74
75
  }
75
- const jobs = (0, utils_1.createJobs)([
76
- { webpack: data },
77
- ...(compare && baselineStats ? [{ webpack: baselineStats }] : []),
78
- ]);
76
+ const jobs = (0, utils_1.createJobs)(sources);
79
77
  const report = (0, utils_1.createReport)(jobs);
80
78
  const artifacts = (0, create_artifacts_1.createArtifacts)(jobs, report, { html, json });
81
79
  Object.values(artifacts).forEach(({ filename, output }) => {
82
- const filepath = path_1.default.join(outDir, filename);
83
- newAssets[filepath] = output;
80
+ const relativeFilepath = path_1.default.join(outDir, filename);
81
+ newAssets[relativeFilepath] = {
82
+ type: 'report',
83
+ source: output,
84
+ filepath: path_1.default.join(outputPath, relativeFilepath),
85
+ };
84
86
  });
85
87
  if (baseline) {
86
- newAssets[baselineFilepath] = JSON.stringify(data);
87
- if (!options.silent)
88
- logger.info(`Write baseline data to ${baselineFilepath}`);
88
+ newAssets[baselinePath] = {
89
+ type: 'baseline',
90
+ source: JSON.stringify(data),
91
+ filepath: baselineAbsolutePath,
92
+ };
89
93
  }
90
94
  const info = getReportInfo(report);
91
95
  if (info && !options.silent) {
@@ -1 +1 @@
1
- {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
package/lib/text.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CLI_NO_BASELINE = exports.CLI_MULTIPLE_STATS = exports.CLI_NO_COMPARE_MODE = exports.PLUGIN_BASELINE_MISSING_WARN = exports.CLI_BASELINE_MISSING_WARN = void 0;
4
- exports.CLI_BASELINE_MISSING_WARN = 'Missing baseline stats, see "--baseline" option.';
5
- exports.PLUGIN_BASELINE_MISSING_WARN = 'Missing baseline stats, see "baseline" option.';
3
+ exports.CLI_NO_BASELINE = exports.CLI_MULTIPLE_STATS = exports.CLI_NO_COMPARE_MODE = exports.BASELINE_READING = exports.BASELINE_MISSING = void 0;
4
+ exports.BASELINE_MISSING = 'Baseline stats file is missing, see "baseline" option.';
5
+ exports.BASELINE_READING = 'Reading baseline data from';
6
6
  exports.CLI_NO_COMPARE_MODE = 'Not in compare mode (see --compare).';
7
7
  exports.CLI_MULTIPLE_STATS = 'Multiple stat files already set.';
8
8
  exports.CLI_NO_BASELINE = 'Not a baseline job (see --baseline).';
package/lib/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,kDAAkD,CAAC;AAC/E,QAAA,4BAA4B,GAAG,gDAAgD,CAAC;AAEhF,QAAA,mBAAmB,GAAG,sCAAsC,CAAC;AAC7D,QAAA,kBAAkB,GAAG,kCAAkC,CAAC;AACxD,QAAA,eAAe,GAAG,sCAAsC,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,wDAAwD,CAAC;AAC5E,QAAA,gBAAgB,GAAG,4BAA4B,CAAC;AAEhD,QAAA,mBAAmB,GAAG,sCAAsC,CAAC;AAC7D,QAAA,kBAAkB,GAAG,kCAAkC,CAAC;AACxD,QAAA,eAAe,GAAG,sCAAsC,CAAC"}
@@ -1,19 +1,26 @@
1
1
  import path from 'path';
2
- import { readJSON, outputJSON } from 'fs-extra';
2
+ import fs from 'fs/promises';
3
3
  import findCacheDir from 'find-cache-dir';
4
- const BASELINE_STATS_DIR = findCacheDir({ name: 'bundle-stats' }) || path.join(process.cwd(), './node_modules/.cache');
5
- const BASELINE_STATS_BASE = 'baseline.json';
6
- export function getBaselineStatsFilepath(outputFilepath, relativeTo) {
7
- const absoluteFilepath = outputFilepath || path.join(BASELINE_STATS_DIR, BASELINE_STATS_BASE);
8
- if (!relativeTo) {
9
- return absoluteFilepath;
4
+ export const BASELINE_STATS_DIR = findCacheDir({ name: 'bundle-stats' }) || path.join(process.cwd(), './node_modules/.cache');
5
+ export const BASELINE_STATS_BASE = 'baseline.json';
6
+ export const getBaselinePath = (outputPath = process.cwd(), outputDir = '', filepath = '') => {
7
+ if (!filepath) {
8
+ return path.join(BASELINE_STATS_DIR, BASELINE_STATS_BASE);
10
9
  }
11
- return path.relative(relativeTo, absoluteFilepath);
12
- }
13
- export async function readBaseline(outputFilepath, relativeTo) {
14
- return readJSON(getBaselineStatsFilepath(outputFilepath, relativeTo));
10
+ if (path.isAbsolute(filepath)) {
11
+ return filepath;
12
+ }
13
+ return path.join(outputPath, outputDir, filepath);
14
+ };
15
+ export const getBaselineRelativePath = (outputPath = process.cwd(), outputDir = '', filepath = '') => {
16
+ const absoluteFilepath = getBaselinePath(outputPath, outputDir, filepath);
17
+ return path.relative(path.join(outputPath, outputDir), absoluteFilepath);
18
+ };
19
+ export async function readBaseline(baselineFilepath) {
20
+ const file = await fs.readFile(baselineFilepath, 'utf-8');
21
+ return JSON.parse(file);
15
22
  }
16
- export async function writeBaseline(data, outputFilepath) {
17
- return outputJSON(getBaselineStatsFilepath(outputFilepath), data);
23
+ export async function writeBaseline(data, baselineFilepath) {
24
+ return fs.writeFile(baselineFilepath, JSON.stringify(data));
18
25
  }
19
26
  //# sourceMappingURL=baseline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACvH,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,MAAM,UAAU,wBAAwB,CAAC,cAAuB,EAAE,UAAmB;IACnF,MAAM,gBAAgB,GAAG,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IAE9F,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,gBAAgB,CAAC;KACzB;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAAuB,EAAE,UAAmB;IAC7E,OAAO,QAAQ,CAAC,wBAAwB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,cAAuB;IACrE,OAAO,UAAU,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAC7B,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAKnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACL,EAAE;IACV,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;KAC3D;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACL,EAAE;IACV,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,gBAAwB;IACzD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,gBAAwB;IACtE,OAAO,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC"}
@@ -2,61 +2,65 @@ import path from 'path';
2
2
  import merge from 'lodash/merge';
3
3
  import { createJobs, createReport } from '@bundle-stats/utils';
4
4
  import filter from '@bundle-stats/plugin-webpack-filter';
5
- import validate from '@bundle-stats/plugin-webpack-validate';
6
5
  import * as TEXT from './text';
7
6
  import { createArtifacts } from './create-artifacts';
8
- import { getBaselineStatsFilepath, readBaseline } from './baseline';
7
+ import { getBaselinePath, getBaselineRelativePath, readBaseline } from './baseline';
9
8
  export function getReportInfo(report) {
10
9
  var _a, _b, _c;
11
10
  return (_c = (_b = (_a = report === null || report === void 0 ? void 0 : report.insights) === null || _a === void 0 ? void 0 : _a.webpack) === null || _b === void 0 ? void 0 : _b.assetsSizeTotal) === null || _c === void 0 ? void 0 : _c.data;
12
11
  }
13
12
  const DEFAULT_OPTIONS = {
14
- compare: true,
15
- baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
16
13
  html: true,
17
14
  json: false,
15
+ compare: true,
16
+ baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
18
17
  outDir: '',
19
18
  silent: false,
20
19
  };
21
20
  export const generateReports = async (source, options, pluginOptions = {}) => {
22
21
  const { compare, baseline, html, json, outDir } = merge({}, DEFAULT_OPTIONS, options);
23
- const { invalidOptionsUrl: invalidParamsUrl, outputPath, logger = console } = pluginOptions;
22
+ const { outputPath = process.cwd(), logger = console } = pluginOptions;
24
23
  const newAssets = {};
25
- const invalid = validate(source);
26
- if (invalid) {
27
- logger.warn([invalid, invalidParamsUrl].join('\n'));
28
- }
29
24
  const data = filter(source);
30
25
  if (!data.builtAt) {
31
26
  data.builtAt = Date.now();
32
27
  }
33
- const baselineFilepath = getBaselineStatsFilepath(options.baselineFilepath, outputPath);
28
+ const baselineAbsolutePath = getBaselinePath(outputPath, outDir, options.baselineFilepath);
29
+ const baselinePath = getBaselineRelativePath(outputPath, outDir, baselineAbsolutePath);
34
30
  let baselineStats = null;
35
- try {
36
- if (compare) {
37
- const baselineStatsData = await readBaseline(options.baselineFilepath);
31
+ if (compare) {
32
+ try {
33
+ const baselineStatsData = await readBaseline(baselineAbsolutePath);
38
34
  baselineStats = filter(baselineStatsData);
39
- if (!options.silent)
40
- logger.info(`Read baseline from ${baselineFilepath}`);
35
+ if (!options.silent) {
36
+ logger.info(`${TEXT.BASELINE_READING} ${baselinePath}`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ logger.warn(TEXT.BASELINE_MISSING);
41
41
  }
42
42
  }
43
- catch (err) {
44
- logger.warn(TEXT.PLUGIN_BASELINE_MISSING_WARN);
43
+ const sources = [{ webpack: data }];
44
+ if (baselineStats) {
45
+ sources.push({ webpack: baselineStats });
45
46
  }
46
- const jobs = createJobs([
47
- { webpack: data },
48
- ...(compare && baselineStats ? [{ webpack: baselineStats }] : []),
49
- ]);
47
+ const jobs = createJobs(sources);
50
48
  const report = createReport(jobs);
51
49
  const artifacts = createArtifacts(jobs, report, { html, json });
52
50
  Object.values(artifacts).forEach(({ filename, output }) => {
53
- const filepath = path.join(outDir, filename);
54
- newAssets[filepath] = output;
51
+ const relativeFilepath = path.join(outDir, filename);
52
+ newAssets[relativeFilepath] = {
53
+ type: 'report',
54
+ source: output,
55
+ filepath: path.join(outputPath, relativeFilepath),
56
+ };
55
57
  });
56
58
  if (baseline) {
57
- newAssets[baselineFilepath] = JSON.stringify(data);
58
- if (!options.silent)
59
- logger.info(`Write baseline data to ${baselineFilepath}`);
59
+ newAssets[baselinePath] = {
60
+ type: 'baseline',
61
+ source: JSON.stringify(data),
62
+ filepath: baselineAbsolutePath,
63
+ };
60
64
  }
61
65
  const info = getReportInfo(report);
62
66
  if (info && !options.silent) {
@@ -1 +1 @@
1
- {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
package/lib-esm/text.js CHANGED
@@ -1,5 +1,5 @@
1
- export const CLI_BASELINE_MISSING_WARN = 'Missing baseline stats, see "--baseline" option.';
2
- export const PLUGIN_BASELINE_MISSING_WARN = 'Missing baseline stats, see "baseline" option.';
1
+ export const BASELINE_MISSING = 'Baseline stats file is missing, see "baseline" option.';
2
+ export const BASELINE_READING = 'Reading baseline data from';
3
3
  export const CLI_NO_COMPARE_MODE = 'Not in compare mode (see --compare).';
4
4
  export const CLI_MULTIPLE_STATS = 'Multiple stat files already set.';
5
5
  export const CLI_NO_BASELINE = 'Not a baseline job (see --baseline).';
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,kDAAkD,CAAC;AAC5F,MAAM,CAAC,MAAM,4BAA4B,GAAG,gDAAgD,CAAC;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,wDAAwD,CAAC;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/cli-utils",
3
- "version": "4.7.0-rc.1",
3
+ "version": "4.7.0",
4
4
  "description": "BundleStats CLI utilities",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -19,7 +19,7 @@
19
19
  "clean-lib": "rimraf lib",
20
20
  "clean-esm": "rimraf lib-esm types",
21
21
  "lint": "eslint",
22
- "test": "jest --passWithNoTests src "
22
+ "test": "jest --passWithNoTests src"
23
23
  },
24
24
  "keywords": [],
25
25
  "author": {
@@ -37,28 +37,25 @@
37
37
  },
38
38
  "homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/cli-utils#readme",
39
39
  "dependencies": {
40
- "@bundle-stats/html-templates": "^4.7.0-rc.1",
41
- "@bundle-stats/plugin-webpack-filter": "^4.7.0-rc.1",
42
- "@bundle-stats/plugin-webpack-validate": "^4.7.0-rc.1",
43
- "@bundle-stats/utils": "^4.7.0-rc.1",
44
- "@types/lodash": "4.14.197",
45
- "core-js": "^3.21.0",
40
+ "@bundle-stats/html-templates": "^4.7.0",
41
+ "@bundle-stats/plugin-webpack-filter": "^4.7.0",
42
+ "@bundle-stats/utils": "^4.7.0",
46
43
  "find-cache-dir": "^3.1.0",
47
- "fs-extra": "^11.0.0",
48
44
  "lodash": "^4.17.21",
49
45
  "stream-chain": "^2.2.5",
50
46
  "stream-json": "^1.8.0"
51
47
  },
52
48
  "devDependencies": {
53
49
  "@types/find-cache-dir": "^3.2.1",
50
+ "@types/lodash": "4.14.198",
54
51
  "@types/stream-chain": "^2.0.1",
55
52
  "@types/stream-json": "^1.7.3",
56
- "jest": "29.6.4",
53
+ "jest": "29.7.0",
54
+ "jest-cli": "29.7.0",
55
+ "memfs": "4.4.0",
57
56
  "rimraf": "5.0.1",
57
+ "ts-jest": "29.1.1",
58
58
  "typescript": "5.1.6"
59
59
  },
60
- "peerDependencies": {
61
- "lodash": "^4.0.0"
62
- },
63
- "gitHead": "9d70faaf31cb3c27db662f7d3ec968cd4e855e67"
60
+ "gitHead": "1d51810980cd038e5e39910298504186482b14cf"
64
61
  }
@@ -1,3 +1,6 @@
1
- export declare function getBaselineStatsFilepath(outputFilepath?: string, relativeTo?: string): string;
2
- export declare function readBaseline(outputFilepath?: string, relativeTo?: string): Promise<object>;
3
- export declare function writeBaseline(data: JSON, outputFilepath?: string): Promise<void>;
1
+ export declare const BASELINE_STATS_DIR: string;
2
+ export declare const BASELINE_STATS_BASE = "baseline.json";
3
+ export declare const getBaselinePath: (outputPath?: string, outputDir?: string, filepath?: string) => string;
4
+ export declare const getBaselineRelativePath: (outputPath?: string, outputDir?: string, filepath?: string) => string;
5
+ export declare function readBaseline(baselineFilepath: string): Promise<object>;
6
+ export declare function writeBaseline(data: JSON, baselineFilepath: string): Promise<void>;
@@ -11,8 +11,13 @@ export interface ReportOptions {
11
11
  interface ReportPluginOptions {
12
12
  outputPath?: string;
13
13
  logger?: Console;
14
- invalidOptionsUrl?: string;
15
14
  }
16
- type ReportAssets = Record<string, string>;
15
+ interface ReportAssets {
16
+ [filepath: string]: {
17
+ type: 'report' | 'baseline';
18
+ source: string;
19
+ filepath: string;
20
+ };
21
+ }
17
22
  export declare const generateReports: (source: object, options: ReportOptions, pluginOptions?: ReportPluginOptions) => Promise<ReportAssets>;
18
23
  export {};
package/types/text.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare const CLI_BASELINE_MISSING_WARN = "Missing baseline stats, see \"--baseline\" option.";
2
- export declare const PLUGIN_BASELINE_MISSING_WARN = "Missing baseline stats, see \"baseline\" option.";
1
+ export declare const BASELINE_MISSING = "Baseline stats file is missing, see \"baseline\" option.";
2
+ export declare const BASELINE_READING = "Reading baseline data from";
3
3
  export declare const CLI_NO_COMPARE_MODE = "Not in compare mode (see --compare).";
4
4
  export declare const CLI_MULTIPLE_STATS = "Multiple stat files already set.";
5
5
  export declare const CLI_NO_BASELINE = "Not a baseline job (see --baseline).";