@appland/appmap 3.61.0 → 3.63.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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [@appland/appmap-v3.63.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.62.0...@appland/appmap-v3.63.0) (2023-01-21)
2
+
3
+
4
+ ### Features
5
+
6
+ * Filter openapi processing by AppMap size ([5b3e4b8](https://github.com/getappmap/appmap-js/commit/5b3e4b8250daceda80f3180f788ed747c488e71c))
7
+
8
+ # [@appland/appmap-v3.62.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.61.0...@appland/appmap-v3.62.0) (2023-01-20)
9
+
10
+
11
+ ### Features
12
+
13
+ * update message in openapi doc ([f093af7](https://github.com/getappmap/appmap-js/commit/f093af75cdf0e69488b410032ecf6023de9ac219))
14
+
1
15
  # [@appland/appmap-v3.61.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.60.1...@appland/appmap-v3.61.0) (2023-01-18)
2
16
 
3
17
 
@@ -22,6 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.fileSizeFilter = void 0;
25
26
  const path_1 = require("path");
26
27
  const fs_1 = require("fs");
27
28
  const promises_1 = require("fs/promises");
@@ -34,12 +35,33 @@ const locateAppMapDir_1 = require("../lib/locateAppMapDir");
34
35
  const handleWorkingDirectory_1 = require("../lib/handleWorkingDirectory");
35
36
  const locateAppMapConfigFile_1 = require("../lib/locateAppMapConfigFile");
36
37
  const telemetry_1 = __importDefault(require("../telemetry"));
38
+ // Skip files that are larger than a specified max size.
39
+ function fileSizeFilter(maxFileSize) {
40
+ return async (file) => {
41
+ let fileStat;
42
+ try {
43
+ fileStat = await (0, promises_1.stat)(file);
44
+ }
45
+ catch (_a) {
46
+ return { enable: false, message: `File ${file} not found` };
47
+ }
48
+ if (fileStat.size <= maxFileSize)
49
+ return { enable: true };
50
+ else
51
+ return {
52
+ enable: false,
53
+ message: `Skipping ${file} as its file size of ${fileStat.size} bytes is larger than the maximum configured file size of ${maxFileSize} bytes`,
54
+ };
55
+ };
56
+ }
57
+ exports.fileSizeFilter = fileSizeFilter;
37
58
  class OpenAPICommand {
38
59
  constructor(appmapDir) {
39
60
  this.appmapDir = appmapDir;
40
61
  this.model = new openapi_1.Model();
41
62
  this.securitySchemes = new openapi_1.SecuritySchemes();
42
63
  this.errors = [];
64
+ this.filter = async (file) => ({ enable: true });
43
65
  }
44
66
  async execute() {
45
67
  const q = (0, async_1.queue)(this.collectAppMap.bind(this), 5);
@@ -49,12 +71,23 @@ class OpenAPICommand {
49
71
  throw new Error(`AppMap directory ${this.appmapDir} does not exist`);
50
72
  }
51
73
  const files = glob_1.glob.sync((0, path_1.join)(this.appmapDir, '**', '*.appmap.json'));
52
- files.forEach((f) => q.push(f));
53
- await new Promise((resolve, reject) => {
54
- q.drain(resolve);
55
- q.error(reject);
56
- q.resume();
57
- });
74
+ for (let index = 0; index < files.length; index++) {
75
+ const file = files[index];
76
+ const filterResult = await this.filter(file);
77
+ if (!filterResult.enable) {
78
+ if (filterResult.message)
79
+ console.warn(filterResult.message);
80
+ continue;
81
+ }
82
+ q.push(file);
83
+ }
84
+ if (q.length() > 0) {
85
+ await new Promise((resolve, reject) => {
86
+ q.drain(resolve);
87
+ q.error(reject);
88
+ q.resume();
89
+ });
90
+ }
58
91
  return [
59
92
  {
60
93
  paths: this.model.openapi(),
@@ -110,6 +143,10 @@ exports.default = {
110
143
  args.option('appmap-dir', {
111
144
  describe: 'directory to recursively inspect for AppMaps',
112
145
  });
146
+ args.option('max-size', {
147
+ describe: 'maximum AppMap size that will be processed, in filesystem-reported MB',
148
+ default: '50',
149
+ });
113
150
  args.option('output-file', {
114
151
  alias: ['o'],
115
152
  describe: 'output file name',
@@ -131,7 +168,8 @@ exports.default = {
131
168
  (0, openapi_1.verbose)(argv.verbose);
132
169
  (0, handleWorkingDirectory_1.handleWorkingDirectory)(argv.directory);
133
170
  const appmapDir = await (0, locateAppMapDir_1.locateAppMapDir)(argv.appmapDir);
134
- const { openapiTitle, openapiVersion } = argv;
171
+ const { openapiTitle, openapiVersion, maxSize } = argv;
172
+ const maxAppMapSizeInBytes = Math.round(parseFloat(maxSize) * 1024 * 1024);
135
173
  function tryConfigure(path, fn) {
136
174
  try {
137
175
  fn();
@@ -142,6 +180,7 @@ exports.default = {
142
180
  }
143
181
  const appmapConfigFile = await (0, locateAppMapConfigFile_1.locateAppMapConfigFile)(appmapDir);
144
182
  const cmd = new OpenAPICommand(appmapDir);
183
+ cmd.filter = fileSizeFilter(maxAppMapSizeInBytes);
145
184
  const [openapi, numAppMaps] = await cmd.execute();
146
185
  sendTelemetry(openapi.paths, numAppMaps);
147
186
  for (const error of cmd.errors) {
@@ -174,13 +213,21 @@ exports.default = {
174
213
  applySchemaOverrides(template.paths, overrides);
175
214
  if (template.paths)
176
215
  sortProperties(template.paths);
177
- const fileContents = `# Generated by: @appland/appmap openapi
216
+ const fileContents = `# This document can be generated with the following command:
217
+ # npx @appland/appmap@latest openapi
218
+ #
219
+ # NOTE: You will need Node.js installed on your machine to run the above command
220
+ #
221
+ # Some helpful options:
222
+ # --output-file output file name
223
+ # --openapi-title title field of the OpenAPI document
224
+ # --openapi-version version field of the OpenAPI document
225
+ #
226
+ # For more info, run:
227
+ # npx @appland/appmap@latest openapi --help
178
228
  #
179
- # Customize the title with: --openapi-title
180
- # Customize the version with: --openapi-version
181
- # Customize this entire template with: --openapi-template
229
+ # Visit our docs: https://appmap.io/docs/openapi.html
182
230
  #
183
- # 'paths' and 'components' will be populated automatically.
184
231
  ${js_yaml_1.default.dump(template)}
185
232
  `;
186
233
  if (argv.outputFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/cmds/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/cmds/openapi.ts"],"names":[],"mappings":"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"}