@cparra/apexdocs 3.3.0-alpha.0 → 3.3.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.
@@ -1,14 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var logger$1 = require('../logger-C3kCwNpQ.js');
4
+ var index = require('../Apexdocs-BXshUaEK.js');
5
+ var module$1 = require('module');
5
6
  var cosmiconfig = require('cosmiconfig');
6
- var yargs = require('yargs');
7
7
  var E = require('fp-ts/Either');
8
8
  var cosmiconfigTypescriptLoader = require('cosmiconfig-typescript-loader');
9
9
  var _function = require('fp-ts/function');
10
10
  require('fp-ts/TaskEither');
11
- require('simple-git');
12
11
  require('js-yaml');
13
12
  require('path');
14
13
  require('fp-ts/Task');
@@ -20,31 +19,35 @@ require('handlebars');
20
19
  require('fp-ts/boolean');
21
20
  require('fs');
22
21
  require('fp-ts/lib/TaskEither');
23
- require('minimatch');
24
- require('node:path');
25
- require('node:fs');
26
22
  require('chalk');
23
+ require('minimatch');
27
24
 
25
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
28
26
  function _interopNamespaceDefault(e) {
29
- var n = Object.create(null);
30
- if (e) {
31
- Object.keys(e).forEach(function (k) {
32
- if (k !== 'default') {
33
- var d = Object.getOwnPropertyDescriptor(e, k);
34
- Object.defineProperty(n, k, d.get ? d : {
35
- enumerable: true,
36
- get: function () { return e[k]; }
37
- });
38
- }
39
- });
40
- }
41
- n.default = e;
42
- return Object.freeze(n);
27
+ var n = Object.create(null);
28
+ if (e) {
29
+ Object.keys(e).forEach(function (k) {
30
+ if (k !== 'default') {
31
+ var d = Object.getOwnPropertyDescriptor(e, k);
32
+ Object.defineProperty(n, k, d.get ? d : {
33
+ enumerable: true,
34
+ get: function () { return e[k]; }
35
+ });
36
+ }
37
+ });
38
+ }
39
+ n.default = e;
40
+ return Object.freeze(n);
43
41
  }
44
42
 
45
- var yargs__namespace = /*#__PURE__*/_interopNamespaceDefault(yargs);
46
43
  var E__namespace = /*#__PURE__*/_interopNamespaceDefault(E);
47
44
 
45
+ var require$1 = (
46
+ false
47
+ ? /* @__PURE__ */ module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli/generate.js', document.baseURI).href)))
48
+ : require
49
+ );
50
+
48
51
  const markdownOptions = {
49
52
  sourceDir: {
50
53
  type: "string",
@@ -55,19 +58,19 @@ const markdownOptions = {
55
58
  targetDir: {
56
59
  type: "string",
57
60
  alias: "t",
58
- default: logger$1.markdownDefaults.targetDir,
61
+ default: index.markdownDefaults.targetDir,
59
62
  describe: "The directory location where documentation will be generated to."
60
63
  },
61
64
  scope: {
62
65
  type: "string",
63
66
  array: true,
64
67
  alias: "p",
65
- default: logger$1.markdownDefaults.scope,
68
+ default: index.markdownDefaults.scope,
66
69
  describe: "A list of scopes to document. Values should be separated by a space, e.g --scope global public namespaceaccessible. Annotations are supported and should be passed lowercased and without the @ symbol, e.g. namespaceaccessible auraenabled."
67
70
  },
68
71
  defaultGroupName: {
69
72
  type: "string",
70
- default: logger$1.markdownDefaults.defaultGroupName,
73
+ default: index.markdownDefaults.defaultGroupName,
71
74
  describe: "Defines the @group name to be used when a file does not specify it."
72
75
  },
73
76
  namespace: {
@@ -77,23 +80,23 @@ const markdownOptions = {
77
80
  sortAlphabetically: {
78
81
  type: "boolean",
79
82
  describe: "Whether to sort files and members alphabetically.",
80
- default: logger$1.markdownDefaults.sortAlphabetically
83
+ default: index.markdownDefaults.sortAlphabetically
81
84
  },
82
85
  includeMetadata: {
83
86
  type: "boolean",
84
87
  describe: "Whether to include the file's meta.xml information: Whether it is active and and the API version",
85
- default: logger$1.markdownDefaults.includeMetadata
88
+ default: index.markdownDefaults.includeMetadata
86
89
  },
87
90
  linkingStrategy: {
88
91
  type: "string",
89
92
  describe: "The strategy to use when linking to other documentation pages.",
90
93
  choices: ["relative", "no-link", "none"],
91
- default: logger$1.markdownDefaults.linkingStrategy
94
+ default: index.markdownDefaults.linkingStrategy
92
95
  },
93
96
  referenceGuideTitle: {
94
97
  type: "string",
95
98
  describe: "The title of the reference guide.",
96
- default: logger$1.markdownDefaults.referenceGuideTitle
99
+ default: index.markdownDefaults.referenceGuideTitle
97
100
  }
98
101
  };
99
102
 
@@ -107,12 +110,12 @@ const openApiOptions = {
107
110
  targetDir: {
108
111
  type: "string",
109
112
  alias: "t",
110
- default: logger$1.openApiDefaults.targetDir,
113
+ default: index.openApiDefaults.targetDir,
111
114
  describe: "The directory location where the OpenApi file will be generated."
112
115
  },
113
116
  fileName: {
114
117
  type: "string",
115
- default: logger$1.openApiDefaults.fileName,
118
+ default: index.openApiDefaults.fileName,
116
119
  describe: "The name of the OpenApi file to be generated."
117
120
  },
118
121
  namespace: {
@@ -121,12 +124,12 @@ const openApiOptions = {
121
124
  },
122
125
  title: {
123
126
  type: "string",
124
- default: logger$1.openApiDefaults.title,
127
+ default: index.openApiDefaults.title,
125
128
  describe: "The title of the OpenApi file."
126
129
  },
127
130
  apiVersion: {
128
131
  type: "string",
129
- default: logger$1.openApiDefaults.apiVersion,
132
+ default: index.openApiDefaults.apiVersion,
130
133
  describe: "The version of the OpenApi file."
131
134
  }
132
135
  };
@@ -136,18 +139,7 @@ const changeLogOptions = {
136
139
  type: "string",
137
140
  alias: "p",
138
141
  demandOption: true,
139
- describe: "The directory location of the previous version of the source code. If previousGitReference is provided, this value should be the directory in which the Apex source code resides within the repository."
140
- },
141
- // TODO: Validate that if previousGitReference is provided, repoPath is also provided.
142
- repoPath: {
143
- type: "string",
144
- alias: "g",
145
- describe: "The path to the git repository. Must be provided if previousGitReference is provided."
146
- },
147
- previousGitReference: {
148
- type: "string",
149
- alias: "r",
150
- describe: "The git reference of the previous version of the source code."
142
+ describe: "The directory location of the previous version of the source code."
151
143
  },
152
144
  currentVersionDir: {
153
145
  type: "string",
@@ -158,20 +150,25 @@ const changeLogOptions = {
158
150
  targetDir: {
159
151
  type: "string",
160
152
  alias: "t",
161
- default: logger$1.changeLogDefaults.targetDir,
153
+ default: index.changeLogDefaults.targetDir,
162
154
  describe: "The directory location where the changelog file will be generated."
163
155
  },
164
156
  fileName: {
165
157
  type: "string",
166
- default: logger$1.changeLogDefaults.fileName,
158
+ default: index.changeLogDefaults.fileName,
167
159
  describe: "The name of the changelog file to be generated."
168
160
  },
169
161
  scope: {
170
162
  type: "string",
171
163
  array: true,
172
164
  alias: "s",
173
- default: logger$1.changeLogDefaults.scope,
165
+ default: index.changeLogDefaults.scope,
174
166
  describe: "The list of scope to respect when generating the changelog. Values should be separated by a space, e.g --scope global public namespaceaccessible. Annotations are supported and should be passed lowercased and without the @ symbol, e.g. namespaceaccessible auraenabled."
167
+ },
168
+ skipIfNoChanges: {
169
+ type: "boolean",
170
+ default: index.changeLogDefaults.skipIfNoChanges,
171
+ describe: "Skip the changelog generation if there are no changes between the previous and current version."
175
172
  }
176
173
  };
177
174
 
@@ -214,6 +211,7 @@ var __async$1 = (__this, __arguments, generator) => {
214
211
  step((generator = generator.apply(__this, __arguments)).next());
215
212
  });
216
213
  };
214
+ const yargs = require$1("yargs");
217
215
  const configOnlyMarkdownDefaults = {
218
216
  targetGenerator: "markdown",
219
217
  excludeTags: [],
@@ -279,22 +277,32 @@ function extractArgsForCommandProvidedThroughCli(extractFromProcessFn, config) {
279
277
  }
280
278
  }
281
279
  function extractArgsForCommandsProvidedInConfig(extractFromProcessFn, config) {
282
- const configs = Object.entries(config).map(([generator, generatorConfig]) => {
280
+ const providedThroughCli = yargs.parseSync(extractFromProcessFn());
281
+ const hasACommandBeenProvided = providedThroughCli._.length > 0;
282
+ const configs = Object.entries(config).filter(([generator]) => hasACommandBeenProvided ? providedThroughCli._[0] === generator : true).map(([generator, generatorConfig]) => {
283
283
  switch (generator) {
284
284
  case "markdown":
285
285
  return _function.pipe(
286
- validateMultiCommandConfig(extractFromProcessFn, "markdown", generatorConfig),
287
- E__namespace.map(() => __spreadValues(__spreadValues({}, configOnlyMarkdownDefaults), generatorConfig))
286
+ extractMultiCommandConfig(extractFromProcessFn, "markdown", generatorConfig),
287
+ E__namespace.map((cliArgs) => {
288
+ console.log("markdown", cliArgs);
289
+ return cliArgs;
290
+ }),
291
+ E__namespace.map((cliArgs) => __spreadValues(__spreadValues(__spreadValues({}, configOnlyMarkdownDefaults), generatorConfig), cliArgs))
288
292
  );
289
293
  case "openapi":
290
294
  return _function.pipe(
291
- validateMultiCommandConfig(extractFromProcessFn, "openapi", generatorConfig),
292
- E__namespace.map(() => __spreadValues(__spreadValues({}, configOnlyOpenApiDefaults), generatorConfig))
295
+ extractMultiCommandConfig(extractFromProcessFn, "openapi", generatorConfig),
296
+ E__namespace.map((cliArgs) => __spreadValues(__spreadValues(__spreadValues({}, configOnlyOpenApiDefaults), generatorConfig), cliArgs))
293
297
  );
294
298
  case "changelog":
295
299
  return _function.pipe(
296
- validateMultiCommandConfig(extractFromProcessFn, "changelog", generatorConfig),
297
- E__namespace.map(() => __spreadValues(__spreadValues({}, configOnlyChangelogDefaults), generatorConfig))
300
+ extractMultiCommandConfig(extractFromProcessFn, "changelog", generatorConfig),
301
+ E__namespace.map((cliArgs) => {
302
+ console.log("changelog", cliArgs);
303
+ return cliArgs;
304
+ }),
305
+ E__namespace.map((cliArgs) => __spreadValues(__spreadValues(__spreadValues({}, configOnlyChangelogDefaults), generatorConfig), cliArgs))
298
306
  );
299
307
  }
300
308
  });
@@ -321,21 +329,21 @@ function getConfigType(config) {
321
329
  return E__namespace.right({ _type: "single-command-config" });
322
330
  }
323
331
  function extractYargsDemandingCommand(extractFromProcessFn, config) {
324
- return yargs__namespace.config(config.config).command(
332
+ return yargs.config(config.config).command(
325
333
  "markdown",
326
334
  "Generate documentation from Apex classes as a Markdown site.",
327
335
  (yargs2) => yargs2.options(markdownOptions)
328
336
  ).command(
329
337
  "openapi",
330
338
  "Generate an OpenApi REST specification from Apex classes.",
331
- () => yargs__namespace.options(openApiOptions)
339
+ () => yargs.options(openApiOptions)
332
340
  ).command(
333
341
  "changelog",
334
342
  "Generate a changelog from 2 versions of the source code.",
335
- () => yargs__namespace.options(changeLogOptions)
343
+ () => yargs.options(changeLogOptions)
336
344
  ).demandCommand().parseSync(extractFromProcessFn());
337
345
  }
338
- function validateMultiCommandConfig(extractFromProcessFn, command, config) {
346
+ function extractMultiCommandConfig(extractFromProcessFn, command, config) {
339
347
  function getOptions(generator) {
340
348
  switch (generator) {
341
349
  case "markdown":
@@ -347,19 +355,11 @@ function validateMultiCommandConfig(extractFromProcessFn, command, config) {
347
355
  }
348
356
  }
349
357
  const options = getOptions(command);
358
+ console.log("config", config);
350
359
  return E__namespace.tryCatch(() => {
351
- yargs__namespace.config(config).options(options).check((argv) => {
352
- if (argv._.length > 0) {
353
- throw new Error(
354
- `Unexpected command "${argv._[0]}".
355
- The command name should be provided in the configuration when using the current configuration format.`
356
- );
357
- } else {
358
- return true;
359
- }
360
- }).fail((msg) => {
360
+ return yargs(extractFromProcessFn()).config(config).options(options).fail((msg) => {
361
361
  throw new Error(`Invalid configuration for command "${command}": ${msg}`);
362
- }).parse(extractFromProcessFn());
362
+ }).parseSync();
363
363
  }, E__namespace.toError);
364
364
  }
365
365
 
@@ -383,7 +383,7 @@ var __async = (__this, __arguments, generator) => {
383
383
  step((generator = generator.apply(__this, __arguments)).next());
384
384
  });
385
385
  };
386
- const logger = new logger$1.StdOutLogger();
386
+ const logger = new index.StdOutLogger();
387
387
  function main() {
388
388
  function parseResult(result) {
389
389
  E__namespace.match(catchUnexpectedError, (successMessage) => {
@@ -397,7 +397,7 @@ function main() {
397
397
  extractArgs().then((maybeConfigs) => __async(this, null, function* () {
398
398
  E__namespace.match(catchUnexpectedError, (configs) => __async(this, null, function* () {
399
399
  for (const config of configs) {
400
- yield logger$1.Apexdocs.generate(config, logger).then(parseResult);
400
+ yield index.Apexdocs.generate(config, logger).then(parseResult);
401
401
  }
402
402
  }))(maybeConfigs);
403
403
  })).catch(catchUnexpectedError);
package/dist/index.d.ts CHANGED
@@ -40,13 +40,12 @@ type UserDefinedOpenApiConfig = {
40
40
  type UserDefinedChangelogConfig = {
41
41
  targetGenerator: 'changelog';
42
42
  previousVersionDir: string;
43
- repoPath?: string;
44
- previousGitReference?: string;
45
43
  currentVersionDir: string;
46
44
  targetDir: string;
47
45
  fileName: string;
48
46
  scope: string[];
49
47
  exclude: string[];
48
+ skipIfNoChanges: boolean;
50
49
  };
51
50
 
52
51
  type UserDefinedConfig = UserDefinedMarkdownConfig | UserDefinedOpenApiConfig | UserDefinedChangelogConfig;
package/dist/index.js CHANGED
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C3kCwNpQ.js');
4
- var E = require('fp-ts/Either');
3
+ var index = require('./Apexdocs-BXshUaEK.js');
5
4
  require('fp-ts/function');
6
5
  require('fp-ts/TaskEither');
7
- require('simple-git');
6
+ require('fp-ts/Either');
8
7
  require('js-yaml');
9
8
  require('path');
10
9
  require('fp-ts/Task');
@@ -16,138 +15,13 @@ require('handlebars');
16
15
  require('fp-ts/boolean');
17
16
  require('fs');
18
17
  require('fp-ts/lib/TaskEither');
19
- require('minimatch');
20
- require('node:path');
21
- require('node:fs');
22
18
  require('chalk');
19
+ require('minimatch');
23
20
 
24
- function _interopNamespaceDefault(e) {
25
- var n = Object.create(null);
26
- if (e) {
27
- Object.keys(e).forEach(function (k) {
28
- if (k !== 'default') {
29
- var d = Object.getOwnPropertyDescriptor(e, k);
30
- Object.defineProperty(n, k, d.get ? d : {
31
- enumerable: true,
32
- get: function () { return e[k]; }
33
- });
34
- }
35
- });
36
- }
37
- n.default = e;
38
- return Object.freeze(n);
39
- }
40
-
41
- var E__namespace = /*#__PURE__*/_interopNamespaceDefault(E);
42
-
43
- var __defProp$1 = Object.defineProperty;
44
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
45
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
46
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
47
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
48
- var __spreadValues$1 = (a, b) => {
49
- for (var prop in b || (b = {}))
50
- if (__hasOwnProp$1.call(b, prop))
51
- __defNormalProp$1(a, prop, b[prop]);
52
- if (__getOwnPropSymbols$1)
53
- for (var prop of __getOwnPropSymbols$1(b)) {
54
- if (__propIsEnum$1.call(b, prop))
55
- __defNormalProp$1(a, prop, b[prop]);
56
- }
57
- return a;
58
- };
59
- var __async = (__this, __arguments, generator) => {
60
- return new Promise((resolve, reject) => {
61
- var fulfilled = (value) => {
62
- try {
63
- step(generator.next(value));
64
- } catch (e) {
65
- reject(e);
66
- }
67
- };
68
- var rejected = (value) => {
69
- try {
70
- step(generator.throw(value));
71
- } catch (e) {
72
- reject(e);
73
- }
74
- };
75
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
76
- step((generator = generator.apply(__this, __arguments)).next());
77
- });
78
- };
79
- function process(config) {
80
- return __async(this, null, function* () {
81
- const logger$1 = new logger.NoLogger();
82
- const configWithDefaults = __spreadValues$1(__spreadValues$1({}, getDefault(config)), config);
83
- if (!configWithDefaults.sourceDir) {
84
- throw new Error("sourceDir is required");
85
- }
86
- const result = yield logger.Apexdocs.generate(configWithDefaults, logger$1);
87
- E__namespace.match(
88
- (errors) => {
89
- throw errors;
90
- },
91
- () => {
92
- }
93
- )(result);
94
- });
95
- }
96
- function getDefault(config) {
97
- switch (config.targetGenerator) {
98
- case "markdown":
99
- return logger.markdownDefaults;
100
- case "openapi":
101
- return logger.openApiDefaults;
102
- case "changelog":
103
- return logger.changeLogDefaults;
104
- default:
105
- throw new Error("Unknown target generator");
106
- }
107
- }
108
21
 
109
- var __defProp = Object.defineProperty;
110
- var __defProps = Object.defineProperties;
111
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
112
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
113
- var __hasOwnProp = Object.prototype.hasOwnProperty;
114
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
115
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
116
- var __spreadValues = (a, b) => {
117
- for (var prop in b || (b = {}))
118
- if (__hasOwnProp.call(b, prop))
119
- __defNormalProp(a, prop, b[prop]);
120
- if (__getOwnPropSymbols)
121
- for (var prop of __getOwnPropSymbols(b)) {
122
- if (__propIsEnum.call(b, prop))
123
- __defNormalProp(a, prop, b[prop]);
124
- }
125
- return a;
126
- };
127
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
128
- function defineMarkdownConfig(config) {
129
- return __spreadProps(__spreadValues(__spreadValues({}, logger.markdownDefaults), config), {
130
- targetGenerator: "markdown"
131
- });
132
- }
133
- function defineOpenApiConfig(config) {
134
- return __spreadProps(__spreadValues(__spreadValues({}, logger.openApiDefaults), config), {
135
- targetGenerator: "openapi"
136
- });
137
- }
138
- function defineChangelogConfig(config) {
139
- return __spreadProps(__spreadValues(__spreadValues({}, logger.changeLogDefaults), config), {
140
- targetGenerator: "changelog"
141
- });
142
- }
143
- function skip() {
144
- return {
145
- _tag: "Skip"
146
- };
147
- }
148
22
 
149
- exports.defineChangelogConfig = defineChangelogConfig;
150
- exports.defineMarkdownConfig = defineMarkdownConfig;
151
- exports.defineOpenApiConfig = defineOpenApiConfig;
152
- exports.process = process;
153
- exports.skip = skip;
23
+ exports.defineChangelogConfig = index.defineChangelogConfig;
24
+ exports.defineMarkdownConfig = index.defineMarkdownConfig;
25
+ exports.defineOpenApiConfig = index.defineOpenApiConfig;
26
+ exports.process = index.process;
27
+ exports.skip = index.skip;