@cparra/apexdocs 3.0.0-beta.1 → 3.0.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/LICENSE +1 -1
- package/README.md +246 -650
- package/dist/cli/generate.js +74 -3095
- package/dist/defaults-BcE8DTat.js +13 -0
- package/dist/defaults-D07y_bq4.js +40 -0
- package/dist/defaults-gPzwP66p.js +14 -0
- package/dist/index.d.ts +49 -19
- package/dist/index.js +90 -2
- package/dist/logger-BEbUIfqN.js +3282 -0
- package/dist/logger-BGuf1PnL.js +3281 -0
- package/dist/logger-CWBRF2za.js +3284 -0
- package/dist/logger-CdBmDEN1.js +3283 -0
- package/dist/logger-Ce4QqPFR.js +3278 -0
- package/dist/logger-CyEVYaAC.js +3284 -0
- package/dist/logger-D7a83ycP.js +3277 -0
- package/dist/logger-DGaHeBKk.js +3279 -0
- package/dist/logger-Dqhl_lO_.js +3278 -0
- package/dist/logger-aySSWi0G.js +3280 -0
- package/dist/logger-qLCcAtiy.js +3284 -0
- package/examples/README.md +5 -0
- package/examples/docsify/README.md +17 -0
- package/examples/docsify/apexdocs.config.ts +13 -0
- package/examples/docsify/classes/ASampleClass.cls +57 -0
- package/examples/docsify/classes/CodeControl.cls +19 -0
- package/examples/docsify/classes/SampleClass.cls +95 -0
- package/examples/docsify/classes/SampleInterface.cls +17 -0
- package/examples/docsify/classes/SomeDto.cls +122 -0
- package/examples/docsify/docs/.nojekyll +0 -0
- package/examples/docsify/docs/README.md +25 -0
- package/examples/docsify/docs/_config.yml +1 -0
- package/examples/docsify/docs/index.html +22 -0
- package/examples/docsify/docs/miscellaneous/ASampleClass.md +88 -0
- package/examples/docsify/docs/miscellaneous/CodeControl.md +107 -0
- package/examples/docsify/docs/miscellaneous/SomeDto.md +244 -0
- package/examples/docsify/docs/sample-classes/SampleClass.md +171 -0
- package/examples/docsify/docs/sample-interfaces/SampleInterface.md +36 -0
- package/examples/docsify/package-lock.json +2459 -0
- package/examples/docsify/package.json +14 -0
- package/examples/imported/.forceignore +12 -0
- package/examples/imported/README.md +6 -0
- package/examples/imported/config/project-scratch-def.json +5 -0
- package/examples/imported/docs/index.md +109 -0
- package/examples/imported/docs/miscellaneous/BaseClass.md +13 -0
- package/examples/imported/docs/miscellaneous/MultiInheritanceClass.md +69 -0
- package/examples/imported/docs/miscellaneous/ParentInterface.md +12 -0
- package/examples/imported/docs/miscellaneous/ReferencedEnum.md +5 -0
- package/examples/imported/docs/miscellaneous/SampleException.md +21 -0
- package/examples/imported/docs/miscellaneous/SampleInterface.md +113 -0
- package/examples/imported/docs/miscellaneous/Url.md +308 -0
- package/examples/imported/docs/sample-enums/SampleEnum.md +33 -0
- package/examples/imported/docs/samplegroup/SampleClass.md +167 -0
- package/examples/imported/force-app/classes/BaseClass.cls +3 -0
- package/examples/imported/force-app/classes/MultiInheritanceClass.cls +1 -0
- package/examples/imported/force-app/classes/ParentInterface.cls +3 -0
- package/examples/imported/force-app/classes/ReferencedEnum.cls +3 -0
- package/examples/imported/force-app/classes/SampleInterface.cls +50 -0
- package/examples/imported/force-app/classes/Url.cls +196 -0
- package/examples/imported/package-lock.json +665 -0
- package/examples/imported/package.json +6 -0
- package/examples/imported/scripts/process-docs.mjs +16 -0
- package/examples/imported/sfdx-project.json +12 -0
- package/examples/markdown/README.md +7 -0
- package/examples/markdown/docs/miscellaneous/Url.md +10 -8
- package/examples/markdown/force-app/classes/Url.cls +3 -1
- package/examples/markdown-jsconfig/.forceignore +12 -0
- package/examples/markdown-jsconfig/README.md +9 -0
- package/examples/markdown-jsconfig/apexdocs.config.mjs +22 -0
- package/examples/markdown-jsconfig/config/project-scratch-def.json +5 -0
- package/examples/markdown-jsconfig/docs/index.md +12 -0
- package/examples/markdown-jsconfig/docs/miscellaneous/Url.md +315 -0
- package/examples/markdown-jsconfig/force-app/classes/Url.cls +196 -0
- package/examples/markdown-jsconfig/package-lock.json +665 -0
- package/examples/markdown-jsconfig/package.json +15 -0
- package/examples/markdown-jsconfig/sfdx-project.json +12 -0
- package/examples/open-api/README.md +5 -0
- package/examples/open-api/docs/openapi.json +2 -570
- package/examples/vitepress/README.md +25 -0
- package/examples/vitepress/apexdocs.config.ts +9 -2
- package/examples/vitepress/docs/index.md +11 -11
- package/examples/vitepress/docs/miscellaneous/BaseClass.md +1 -1
- package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +2 -2
- package/examples/vitepress/docs/miscellaneous/SampleException.md +1 -1
- package/examples/vitepress/docs/miscellaneous/SampleInterface.md +6 -6
- package/examples/vitepress/docs/miscellaneous/Url.md +3 -3
- package/examples/vitepress/docs/sample-enums/SampleEnum.md +3 -3
- package/examples/vitepress/docs/samplegroup/SampleClass.md +5 -5
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls +73 -0
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls +30 -0
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls +17 -0
- package/package.json +3 -3
- package/src/application/Apexdocs.ts +16 -19
- package/src/application/__tests__/apex-file-reader.spec.ts +108 -67
- package/src/application/apex-file-reader.ts +1 -0
- package/src/application/generators/openapi.ts +17 -13
- package/src/cli/args.ts +12 -3
- package/src/cli/commands/markdown.ts +15 -12
- package/src/cli/commands/openapi.ts +5 -5
- package/src/cli/generate.ts +20 -4
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +15 -386
- package/src/core/markdown/__test__/generating-docs.spec.ts +378 -0
- package/src/core/markdown/__test__/generating-enum-docs.spec.ts +4 -328
- package/src/core/markdown/__test__/generating-interface-docs.spec.ts +4 -296
- package/src/core/markdown/__test__/generating-reference-guide.spec.ts +17 -1
- package/src/core/markdown/__test__/test-helpers.ts +3 -1
- package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +3 -1
- package/src/core/markdown/adapters/renderable-to-page-data.ts +6 -4
- package/src/core/markdown/generate-docs.ts +13 -15
- package/src/core/markdown/reflection/__test__/filter-scope.spec.ts +290 -0
- package/src/core/markdown/reflection/__test__/helpers.ts +18 -0
- package/src/core/markdown/reflection/__test__/remove-excluded-tags.spec.ts +200 -0
- package/src/core/markdown/reflection/remove-excluded-tags.ts +168 -0
- package/src/core/markdown/reflection/{sort-members.ts → sort-types-and-members.ts} +7 -5
- package/src/core/markdown/templates/reference-guide.ts +2 -2
- package/src/core/openapi/__tests__/open-api-docs-processor.spec.ts +6 -3
- package/src/core/openapi/open-api-docs-processor.ts +3 -3
- package/src/core/openapi/parser.ts +5 -2
- package/src/core/shared/types.d.ts +18 -18
- package/src/defaults.ts +15 -3
- package/src/index.ts +88 -14
- package/src/util/error-logger.ts +36 -36
- package/src/util/logger.ts +18 -11
- /package/examples/{vitepress/force-app/main/default → imported/force-app}/classes/SampleClass.cls +0 -0
- /package/examples/{vitepress/force-app/main/default → imported/force-app}/classes/SampleEnum.cls +0 -0
- /package/examples/{vitepress/force-app/main/default → imported/force-app}/classes/SampleException.cls +0 -0
- /package/examples/vitepress/force-app/main/default/classes/{SampleInterface.cls → feature-a/SampleInterface.cls} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defaults = {
|
|
4
|
+
targetGenerator: "markdown",
|
|
5
|
+
targetDir: "./docs/",
|
|
6
|
+
scope: ["global"],
|
|
7
|
+
defaultGroupName: "Miscellaneous",
|
|
8
|
+
includeMetadata: false,
|
|
9
|
+
sortAlphabetically: false,
|
|
10
|
+
linkingStrategy: "relative"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.defaults = defaults;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
const commonDefaults = {
|
|
23
|
+
targetDir: "./docs/"
|
|
24
|
+
};
|
|
25
|
+
const markdownDefaults = __spreadProps(__spreadValues({}, commonDefaults), {
|
|
26
|
+
scope: ["global"],
|
|
27
|
+
defaultGroupName: "Miscellaneous",
|
|
28
|
+
includeMetadata: false,
|
|
29
|
+
sortAlphabetically: false,
|
|
30
|
+
linkingStrategy: "relative",
|
|
31
|
+
referenceGuideTitle: "Apex Reference Guide"
|
|
32
|
+
});
|
|
33
|
+
const openApiDefaults = __spreadProps(__spreadValues({}, commonDefaults), {
|
|
34
|
+
fileName: "openapi",
|
|
35
|
+
title: "Apex REST API",
|
|
36
|
+
apiVersion: "1.0.0"
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
exports.markdownDefaults = markdownDefaults;
|
|
40
|
+
exports.openApiDefaults = openApiDefaults;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defaults = {
|
|
4
|
+
targetGenerator: "markdown",
|
|
5
|
+
targetDir: "./docs/",
|
|
6
|
+
scope: ["global"],
|
|
7
|
+
defaultGroupName: "Miscellaneous",
|
|
8
|
+
includeMetadata: false,
|
|
9
|
+
sortAlphabetically: false,
|
|
10
|
+
linkingStrategy: "relative",
|
|
11
|
+
referenceGuideTitle: "Apex Reference Guide"
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.defaults = defaults;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
import { SetOptional } from 'type-fest';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The configurable hooks that can be used to modify the output of the generator.
|
|
5
|
-
*/
|
|
6
|
-
type ConfigurableHooks = {
|
|
7
|
-
transformReferenceGuide: TransformReferenceGuide;
|
|
8
|
-
transformDocs: TransformDocs;
|
|
9
|
-
transformDocPage: TransformDocPage;
|
|
10
|
-
transformReference: TransformReference;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
1
|
type LinkingStrategy =
|
|
14
2
|
// Links will be generated using relative paths.
|
|
15
3
|
| 'relative'
|
|
@@ -22,17 +10,31 @@ type LinkingStrategy =
|
|
|
22
10
|
| 'none';
|
|
23
11
|
|
|
24
12
|
type UserDefinedMarkdownConfig = {
|
|
25
|
-
targetGenerator: 'markdown';
|
|
26
13
|
sourceDir: string;
|
|
14
|
+
targetGenerator: 'markdown';
|
|
27
15
|
targetDir: string;
|
|
28
16
|
scope: string[];
|
|
29
|
-
defaultGroupName: string;
|
|
30
17
|
namespace?: string;
|
|
31
|
-
|
|
18
|
+
defaultGroupName: string;
|
|
19
|
+
sortAlphabetically: boolean;
|
|
32
20
|
includeMetadata: boolean;
|
|
33
21
|
linkingStrategy: LinkingStrategy;
|
|
22
|
+
excludeTags: string[];
|
|
23
|
+
referenceGuideTitle: string;
|
|
34
24
|
} & Partial<ConfigurableHooks>;
|
|
35
25
|
|
|
26
|
+
type UserDefinedOpenApiConfig = {
|
|
27
|
+
targetGenerator: 'openapi';
|
|
28
|
+
sourceDir: string;
|
|
29
|
+
targetDir: string;
|
|
30
|
+
fileName: string;
|
|
31
|
+
namespace?: string;
|
|
32
|
+
title: string;
|
|
33
|
+
apiVersion: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
type UserDefinedConfig = UserDefinedMarkdownConfig | UserDefinedOpenApiConfig;
|
|
37
|
+
|
|
36
38
|
type SourceFileMetadata = {
|
|
37
39
|
filePath: string;
|
|
38
40
|
name: string;
|
|
@@ -76,7 +78,17 @@ type Skip = {
|
|
|
76
78
|
readonly _tag: 'Skip';
|
|
77
79
|
};
|
|
78
80
|
|
|
79
|
-
//
|
|
81
|
+
// CONFIGURABLE HOOKS
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The configurable hooks that can be used to modify the output of the generator.
|
|
85
|
+
*/
|
|
86
|
+
type ConfigurableHooks = {
|
|
87
|
+
transformReferenceGuide: TransformReferenceGuide;
|
|
88
|
+
transformDocs: TransformDocs;
|
|
89
|
+
transformDocPage: TransformDocPage;
|
|
90
|
+
transformReference: TransformReference;
|
|
91
|
+
};
|
|
80
92
|
|
|
81
93
|
type ConfigurableDocPageReference = Omit<DocPageReference, 'source'>;
|
|
82
94
|
|
|
@@ -110,8 +122,26 @@ type TransformDocPage = (
|
|
|
110
122
|
doc: DocPageData,
|
|
111
123
|
) => Partial<ConfigurableDocPageData> | Promise<Partial<ConfigurableDocPageData>>;
|
|
112
124
|
|
|
113
|
-
type ConfigurableMarkdownConfig = Omit<
|
|
114
|
-
|
|
125
|
+
type ConfigurableMarkdownConfig = Omit<Partial<UserDefinedMarkdownConfig>, 'targetGenerator'>;
|
|
126
|
+
/**
|
|
127
|
+
* Helper function to define a configuration to generate Markdown documentation.
|
|
128
|
+
* @param config The configuration to use.
|
|
129
|
+
*/
|
|
130
|
+
declare function defineMarkdownConfig(config: ConfigurableMarkdownConfig): Partial<UserDefinedMarkdownConfig>;
|
|
131
|
+
type ConfigurableOpenApiConfig = Omit<Partial<UserDefinedOpenApiConfig>, 'targetGenerator'>;
|
|
132
|
+
/**
|
|
133
|
+
* Helper function to define a configuration to generate OpenAPI documentation.
|
|
134
|
+
* @param config The configuration to use.
|
|
135
|
+
*/
|
|
136
|
+
declare function defineOpenApiConfig(config: ConfigurableOpenApiConfig): Partial<UserDefinedOpenApiConfig>;
|
|
137
|
+
/**
|
|
138
|
+
* Represents a file to be skipped.
|
|
139
|
+
*/
|
|
115
140
|
declare function skip(): Skip;
|
|
141
|
+
type CallableConfig = Partial<UserDefinedConfig> & {
|
|
142
|
+
sourceDir: string;
|
|
143
|
+
targetGenerator: 'markdown' | 'openapi';
|
|
144
|
+
};
|
|
145
|
+
declare function process(config: CallableConfig): Promise<void>;
|
|
116
146
|
|
|
117
|
-
export { type ConfigurableHooks, type DocPageData, type DocPageReference, type ReferenceGuidePageData, defineMarkdownConfig, skip };
|
|
147
|
+
export { type ConfigurableDocPageData, type ConfigurableDocPageReference, type ConfigurableHooks, type ConfigurableMarkdownConfig, type ConfigurableOpenApiConfig, type DocPageData, type DocPageReference, type ReferenceGuidePageData, type Skip, type TransformDocPage, type TransformDocs, type TransformReference, type TransformReferenceGuide, defineMarkdownConfig, defineOpenApiConfig, process, skip };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var logger = require('./logger-Ce4QqPFR.js');
|
|
4
|
+
var E = require('fp-ts/Either');
|
|
5
|
+
require('fp-ts/function');
|
|
6
|
+
require('fp-ts/TaskEither');
|
|
7
|
+
require('js-yaml');
|
|
8
|
+
require('path');
|
|
9
|
+
require('fp-ts/Task');
|
|
10
|
+
require('fp-ts/lib/Array');
|
|
11
|
+
require('@cparra/apex-reflection');
|
|
12
|
+
require('fp-ts/Option');
|
|
13
|
+
require('fast-xml-parser');
|
|
14
|
+
require('handlebars');
|
|
15
|
+
require('fp-ts/boolean');
|
|
16
|
+
require('fs');
|
|
17
|
+
require('fp-ts/lib/TaskEither');
|
|
18
|
+
require('chalk');
|
|
19
|
+
|
|
20
|
+
function _interopNamespaceDefault(e) {
|
|
21
|
+
var n = Object.create(null);
|
|
22
|
+
if (e) {
|
|
23
|
+
Object.keys(e).forEach(function (k) {
|
|
24
|
+
if (k !== 'default') {
|
|
25
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () { return e[k]; }
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
n.default = e;
|
|
34
|
+
return Object.freeze(n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var E__namespace = /*#__PURE__*/_interopNamespaceDefault(E);
|
|
4
38
|
|
|
5
39
|
var __defProp = Object.defineProperty;
|
|
6
40
|
var __defProps = Object.defineProperties;
|
|
@@ -21,16 +55,70 @@ var __spreadValues = (a, b) => {
|
|
|
21
55
|
return a;
|
|
22
56
|
};
|
|
23
57
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
58
|
+
var __async = (__this, __arguments, generator) => {
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
var fulfilled = (value) => {
|
|
61
|
+
try {
|
|
62
|
+
step(generator.next(value));
|
|
63
|
+
} catch (e) {
|
|
64
|
+
reject(e);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var rejected = (value) => {
|
|
68
|
+
try {
|
|
69
|
+
step(generator.throw(value));
|
|
70
|
+
} catch (e) {
|
|
71
|
+
reject(e);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
75
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
76
|
+
});
|
|
77
|
+
};
|
|
24
78
|
function defineMarkdownConfig(config) {
|
|
25
|
-
return __spreadProps(__spreadValues(__spreadValues({},
|
|
79
|
+
return __spreadProps(__spreadValues(__spreadValues({}, logger.markdownDefaults), config), {
|
|
26
80
|
targetGenerator: "markdown"
|
|
27
81
|
});
|
|
28
82
|
}
|
|
83
|
+
function defineOpenApiConfig(config) {
|
|
84
|
+
return __spreadProps(__spreadValues(__spreadValues({}, logger.openApiDefaults), config), {
|
|
85
|
+
targetGenerator: "openapi"
|
|
86
|
+
});
|
|
87
|
+
}
|
|
29
88
|
function skip() {
|
|
30
89
|
return {
|
|
31
90
|
_tag: "Skip"
|
|
32
91
|
};
|
|
33
92
|
}
|
|
93
|
+
function process(config) {
|
|
94
|
+
return __async(this, null, function* () {
|
|
95
|
+
const logger$1 = new logger.NoLogger();
|
|
96
|
+
const configWithDefaults = __spreadValues(__spreadValues({}, getDefault(config)), config);
|
|
97
|
+
if (!configWithDefaults.sourceDir) {
|
|
98
|
+
throw new Error("sourceDir is required");
|
|
99
|
+
}
|
|
100
|
+
const result = yield logger.Apexdocs.generate(configWithDefaults, logger$1);
|
|
101
|
+
E__namespace.match(
|
|
102
|
+
(errors) => {
|
|
103
|
+
throw errors;
|
|
104
|
+
},
|
|
105
|
+
() => {
|
|
106
|
+
}
|
|
107
|
+
)(result);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function getDefault(config) {
|
|
111
|
+
switch (config.targetGenerator) {
|
|
112
|
+
case "markdown":
|
|
113
|
+
return logger.markdownDefaults;
|
|
114
|
+
case "openapi":
|
|
115
|
+
return logger.openApiDefaults;
|
|
116
|
+
default:
|
|
117
|
+
throw new Error("Unknown target generator");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
34
120
|
|
|
35
121
|
exports.defineMarkdownConfig = defineMarkdownConfig;
|
|
122
|
+
exports.defineOpenApiConfig = defineOpenApiConfig;
|
|
123
|
+
exports.process = process;
|
|
36
124
|
exports.skip = skip;
|