@cparra/apexdocs 2.13.1 → 2.15.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/README.md +16 -13
- package/docs/README.md +1 -84
- package/docs/types/Classes/nspc.AnotherInterface.md +7 -0
- package/docs/{Misc-Group → types/Classes}/nspc.ChildClass.md +9 -3
- package/docs/{Main → types/Main}/nspc.GroupedClass.md +1 -1
- package/docs/{Main → types/Main}/nspc.SampleClass.md +5 -9
- package/docs/{Misc-Group → types/Misc-Group}/nspc.InterfaceWithInheritance.md +2 -2
- package/docs/{Misc-Group → types/Misc-Group}/nspc.ParentClass.md +1 -1
- package/docs/types/README.md +91 -0
- package/examples/force-app/main/default/classes/AnotherInterface.cls +4 -0
- package/examples/force-app/main/default/classes/ChildClass.cls +4 -0
- package/lib/cli/generate.js +17 -0
- package/lib/cli/generate.js.map +1 -1
- package/lib/model/markdown-home-file.js +1 -1
- package/lib/model/markdown-home-file.js.map +1 -1
- package/lib/service/apex-file-reader.js +4 -1
- package/lib/service/apex-file-reader.js.map +1 -1
- package/lib/service/parser.d.ts +1 -1
- package/lib/service/parser.js +9 -11
- package/lib/service/parser.js.map +1 -1
- package/lib/settings.d.ts +6 -0
- package/lib/settings.js +11 -1
- package/lib/settings.js.map +1 -1
- package/lib/test-helpers/SettingsBuilder.js +2 -0
- package/lib/test-helpers/SettingsBuilder.js.map +1 -1
- package/lib/transpiler/markdown/class-file-generatorHelper.js +3 -1
- package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
- package/lib/transpiler/transpiler.js +1 -1
- package/lib/transpiler/transpiler.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/generate.ts +18 -0
- package/src/model/markdown-home-file.ts +1 -1
- package/src/service/__tests__/apex-file-reader.spec.ts +2 -0
- package/src/service/apex-file-reader.ts +5 -1
- package/src/service/parser.ts +36 -41
- package/src/settings.ts +16 -1
- package/src/test-helpers/SettingsBuilder.ts +2 -0
- package/src/transpiler/markdown/class-file-generatorHelper.ts +2 -1
- package/src/transpiler/transpiler.ts +1 -1
- package/docs/Misc-Group/nspc.AnotherInterface.md +0 -1
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.GrandparentClass.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.MemberGrouping.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference1.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference2.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference3.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference4.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference5.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference6.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.Reference7.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.SampleClassWithoutModifier.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.SampleRestResource.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.SampleRestResourceWithInnerClass.md +0 -0
- /package/docs/{Misc-Group → types/Misc-Group}/nspc.SampleRestResourceWithoutApexDocs.md +0 -0
- /package/docs/{Sample-Interfaces → types/Sample-Interfaces}/nspc.SampleInterface.md +0 -0
package/README.md
CHANGED
|
@@ -118,19 +118,22 @@ apexdocs-generate
|
|
|
118
118
|
|
|
119
119
|
The CLI supports the following parameters:
|
|
120
120
|
|
|
121
|
-
| Parameter
|
|
122
|
-
|
|
123
|
-
| --sourceDir
|
|
124
|
-
| --targetDir
|
|
125
|
-
| --recursive
|
|
126
|
-
| --scope
|
|
127
|
-
| --targetGenerator
|
|
128
|
-
| --indexOnly
|
|
129
|
-
| --defaultGroupName
|
|
130
|
-
| --sanitizeHtml
|
|
131
|
-
| --openApiTitle
|
|
132
|
-
| --
|
|
133
|
-
| --
|
|
121
|
+
| Parameter | Alias | Description | Default | Required |
|
|
122
|
+
|------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|----------|
|
|
123
|
+
| --sourceDir | -s | The directory location which contains your apex .cls classes. | N/A | Yes |
|
|
124
|
+
| --targetDir | -t | The directory location where documentation will be generated to. | `docs` | No |
|
|
125
|
+
| --recursive | -r | Whether .cls classes will be searched for recursively in the directory provided. | `true` | No |
|
|
126
|
+
| --scope | -p | A list of scopes to document. Values should be separated by a space, e.g --scope public private. Note that this setting is ignored if generating an OpenApi REST specification since that looks for classes annotated with @RestResource. | `global` | No |
|
|
127
|
+
| --targetGenerator | -g | Define the static file generator for which the documents will be created. Currently supports: `jekyll`, `docsify`, `plain-markdown`, and `openapi`. | `jekyll` | No |
|
|
128
|
+
| --indexOnly | N/A | Defines whether only the index file should be generated. | `false` | No |
|
|
129
|
+
| --defaultGroupName | N/A | Defines the `@group` name to be used when a file does not specify it. | `Miscellaneous` | No |
|
|
130
|
+
| --sanitizeHtml | N/A | When on, any special character within your ApexDocs is converted into its HTML code representation. This is specially useful when generic objects are described within the docs, e.g. "List< Foo>", "Map<Foo, Bar>" because otherwise the content within < and > would be treated as HTML tags and not shown in the output. Content in @example blocks are never sanitized. | `Apex REST Api` | No |
|
|
131
|
+
| --openApiTitle | N/A | If using "openapi" as the target generator, this allows you to specify the OpenApi title value. | true | No |
|
|
132
|
+
| --title | N/A | Allows you to specify the home page main title. If using "openapi" this acts as an alias to the openApiTitle parameter | `Classes` | No |
|
|
133
|
+
| --namespace | N/A | The package namespace, if any. If this value is provided the namespace will be added as a prefix to all of the parsed files. If generating an OpenApi definition, it will be added to the file's Server Url. | N/A | No |
|
|
134
|
+
| --openApiFileName | N/A | If using "openapi" as the target generator, this allows you to specify the name of the output file. | `openapi` | No |
|
|
135
|
+
| --includeMetadata | N/A | Whether to include the file's meta.xml information: Whether it is active and and the API version | false | No |
|
|
136
|
+
| --documentationRootDir | N/A | The root directory where the documentation will be generated. This is useful when you want to generate the documentation in a subdirectory of your project. | N/A | No |
|
|
134
137
|
|
|
135
138
|
### Importing to your project
|
|
136
139
|
|
package/docs/README.md
CHANGED
|
@@ -1,84 +1 @@
|
|
|
1
|
-
|
|
2
|
-
## Misc Group
|
|
3
|
-
|
|
4
|
-
### [nspc.AnotherInterface](/Misc-Group/nspc.AnotherInterface.md)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
### [nspc.ChildClass](/Misc-Group/nspc.ChildClass.md)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
### [nspc.GrandparentClass](/Misc-Group/nspc.GrandparentClass.md)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### [nspc.InterfaceWithInheritance](/Misc-Group/nspc.InterfaceWithInheritance.md)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
### [nspc.MemberGrouping](/Misc-Group/nspc.MemberGrouping.md)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### [nspc.ParentClass](/Misc-Group/nspc.ParentClass.md)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
### [nspc.Reference1](/Misc-Group/nspc.Reference1.md)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### [nspc.Reference2](/Misc-Group/nspc.Reference2.md)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### [nspc.Reference3](/Misc-Group/nspc.Reference3.md)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### [nspc.Reference4](/Misc-Group/nspc.Reference4.md)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### [nspc.Reference5](/Misc-Group/nspc.Reference5.md)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### [nspc.Reference6](/Misc-Group/nspc.Reference6.md)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
### [nspc.Reference7](/Misc-Group/nspc.Reference7.md)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
### [nspc.SampleClassWithoutModifier](/Misc-Group/nspc.SampleClassWithoutModifier.md)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
### [nspc.SampleRestResource](/Misc-Group/nspc.SampleRestResource.md)
|
|
47
|
-
|
|
48
|
-
Account related operations
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
### [nspc.SampleRestResourceWithInnerClass](/Misc-Group/nspc.SampleRestResourceWithInnerClass.md)
|
|
53
|
-
|
|
54
|
-
Contact related operations
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
### [nspc.SampleRestResourceWithoutApexDocs](/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md)
|
|
59
|
-
|
|
60
|
-
Order related operations
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## Main
|
|
64
|
-
|
|
65
|
-
### [nspc.GroupedClass](/Main/nspc.GroupedClass.md)
|
|
66
|
-
|
|
67
|
-
Uses a block style apex doc
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
### [nspc.SampleClass](/Main/nspc.SampleClass.md)
|
|
72
|
-
|
|
73
|
-
This is a class description. This class relates to [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
74
|
-
But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist.
|
|
75
|
-
You can also link using this syntax [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
## Sample Interfaces
|
|
79
|
-
|
|
80
|
-
### [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
81
|
-
|
|
82
|
-
This is an interface description.
|
|
83
|
-
|
|
84
|
-
|
|
1
|
+
Go to [docs](/types/README.md) for more information.
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
# nspc.ChildClass
|
|
2
2
|
|
|
3
|
+
Some desc
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
**Inheritance**
|
|
4
7
|
|
|
5
|
-
[nspc.GrandparentClass](/Misc-Group/nspc.GrandparentClass.md)
|
|
8
|
+
[nspc.GrandparentClass](types/Misc-Group/nspc.GrandparentClass.md)
|
|
6
9
|
>
|
|
7
|
-
[nspc.ParentClass](/Misc-Group/nspc.ParentClass.md)
|
|
10
|
+
[nspc.ParentClass](types/Misc-Group/nspc.ParentClass.md)
|
|
8
11
|
>
|
|
9
12
|
ChildClass
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
**Implemented types**
|
|
13
16
|
|
|
14
|
-
[nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
17
|
+
[nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
**Group** Classes
|
|
15
21
|
|
|
16
22
|
## Fields
|
|
17
23
|
|
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
`NAMESPACEACCESSIBLE`
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`STATUS: ACTIVE`
|
|
8
|
-
|
|
9
|
-
This is a class description. This class relates to [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
5
|
+
This is a class description. This class relates to [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
10
6
|
But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist.
|
|
11
|
-
You can also link using this syntax [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
7
|
+
You can also link using this syntax [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
12
8
|
|
|
13
9
|
|
|
14
10
|
**Group** Main
|
|
@@ -20,7 +16,7 @@ This is a class description. This class relates to [nspc.SampleInterface](/Sampl
|
|
|
20
16
|
**Author** Cesar Parra
|
|
21
17
|
|
|
22
18
|
|
|
23
|
-
**See** [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
19
|
+
**See** [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
24
20
|
|
|
25
21
|
## Constructors
|
|
26
22
|
### My Super Group
|
|
@@ -28,7 +24,7 @@ This is a class description. This class relates to [nspc.SampleInterface](/Sampl
|
|
|
28
24
|
|
|
29
25
|
`NAMESPACEACCESSIBLE`
|
|
30
26
|
|
|
31
|
-
Constructs a SampleClass without any arguments. This relates to [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
27
|
+
Constructs a SampleClass without any arguments. This relates to [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
32
28
|
|
|
33
29
|
###### Throws
|
|
34
30
|
|
|
@@ -40,7 +36,7 @@ Constructs a SampleClass without any arguments. This relates to [nspc.SampleInte
|
|
|
40
36
|
**CustomAnnotation** A Custom method annotation
|
|
41
37
|
|
|
42
38
|
|
|
43
|
-
**See** [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
39
|
+
**See** [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
44
40
|
|
|
45
41
|
###### Example
|
|
46
42
|
```apex
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
**Extended types**
|
|
4
4
|
|
|
5
|
-
[nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
5
|
+
[nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
6
6
|
,
|
|
7
|
-
[nspc.AnotherInterface](/
|
|
7
|
+
[nspc.AnotherInterface](types/Classes/nspc.AnotherInterface.md)
|
|
8
8
|
## Methods
|
|
9
9
|
### `execute()`
|
|
10
10
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Sample Documentation
|
|
2
|
+
## Classes
|
|
3
|
+
|
|
4
|
+
### [nspc.AnotherInterface](types/Classes/nspc.AnotherInterface.md)
|
|
5
|
+
|
|
6
|
+
Some desc
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### [nspc.ChildClass](types/Classes/nspc.ChildClass.md)
|
|
11
|
+
|
|
12
|
+
Some desc
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Misc Group
|
|
16
|
+
|
|
17
|
+
### [nspc.GrandparentClass](types/Misc-Group/nspc.GrandparentClass.md)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### [nspc.InterfaceWithInheritance](types/Misc-Group/nspc.InterfaceWithInheritance.md)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### [nspc.MemberGrouping](types/Misc-Group/nspc.MemberGrouping.md)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### [nspc.ParentClass](types/Misc-Group/nspc.ParentClass.md)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### [nspc.Reference1](types/Misc-Group/nspc.Reference1.md)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### [nspc.Reference2](types/Misc-Group/nspc.Reference2.md)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### [nspc.Reference3](types/Misc-Group/nspc.Reference3.md)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### [nspc.Reference4](types/Misc-Group/nspc.Reference4.md)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### [nspc.Reference5](types/Misc-Group/nspc.Reference5.md)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### [nspc.Reference6](types/Misc-Group/nspc.Reference6.md)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### [nspc.Reference7](types/Misc-Group/nspc.Reference7.md)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### [nspc.SampleClassWithoutModifier](types/Misc-Group/nspc.SampleClassWithoutModifier.md)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### [nspc.SampleRestResource](types/Misc-Group/nspc.SampleRestResource.md)
|
|
54
|
+
|
|
55
|
+
Account related operations
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
### [nspc.SampleRestResourceWithInnerClass](types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md)
|
|
60
|
+
|
|
61
|
+
Contact related operations
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### [nspc.SampleRestResourceWithoutApexDocs](types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md)
|
|
66
|
+
|
|
67
|
+
Order related operations
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## Main
|
|
71
|
+
|
|
72
|
+
### [nspc.GroupedClass](types/Main/nspc.GroupedClass.md)
|
|
73
|
+
|
|
74
|
+
Uses a block style apex doc
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### [nspc.SampleClass](types/Main/nspc.SampleClass.md)
|
|
79
|
+
|
|
80
|
+
This is a class description. This class relates to [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
81
|
+
But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist.
|
|
82
|
+
You can also link using this syntax [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## Sample Interfaces
|
|
86
|
+
|
|
87
|
+
### [nspc.SampleInterface](types/Sample-Interfaces/nspc.SampleInterface.md)
|
|
88
|
+
|
|
89
|
+
This is an interface description.
|
|
90
|
+
|
|
91
|
+
|
package/lib/cli/generate.js
CHANGED
|
@@ -62,6 +62,11 @@ const argv = yargs.options({
|
|
|
62
62
|
default: 'Apex REST Api',
|
|
63
63
|
describe: 'If using "openapi" as the target generator, this allows you to specify the OpenApi title value.',
|
|
64
64
|
},
|
|
65
|
+
title: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
describe: "If this allows you to specify the title of the generated documentation's home file.",
|
|
68
|
+
default: 'Classes',
|
|
69
|
+
},
|
|
65
70
|
namespace: {
|
|
66
71
|
type: 'string',
|
|
67
72
|
describe: 'The package namespace, if any. If this value is provided the namespace will be added as a prefix to all of the parsed files. ' +
|
|
@@ -72,6 +77,15 @@ const argv = yargs.options({
|
|
|
72
77
|
describe: 'If using "openapi" as the target generator, this allows you to specify the name of the output file.',
|
|
73
78
|
default: 'openapi',
|
|
74
79
|
},
|
|
80
|
+
includeMetadata: {
|
|
81
|
+
type: 'boolean',
|
|
82
|
+
describe: "Whether to include the file's meta.xml information: Whether it is active and and the API version",
|
|
83
|
+
default: false,
|
|
84
|
+
},
|
|
85
|
+
documentationRootDir: {
|
|
86
|
+
type: 'string',
|
|
87
|
+
describe: 'Allows you to specify the root documentation directory where the files are being generated. This can be helpful when embedding the generated docs into an existing site so that the links are generated correctly.',
|
|
88
|
+
},
|
|
75
89
|
}).argv;
|
|
76
90
|
settings_1.Settings.build({
|
|
77
91
|
sourceDirectory: argv.sourceDir,
|
|
@@ -83,8 +97,11 @@ settings_1.Settings.build({
|
|
|
83
97
|
defaultGroupName: argv.defaultGroupName,
|
|
84
98
|
sanitizeHtml: argv.sanitizeHtml,
|
|
85
99
|
openApiTitle: argv.openApiTitle,
|
|
100
|
+
title: argv.title,
|
|
86
101
|
namespace: argv.namespace,
|
|
87
102
|
openApiFileName: argv.openApiFileName,
|
|
103
|
+
includeMetadata: argv.includeMetadata,
|
|
104
|
+
rootDir: argv.documentationRootDir,
|
|
88
105
|
});
|
|
89
106
|
try {
|
|
90
107
|
Apexdocs_1.Apexdocs.generate();
|
package/lib/cli/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAE/B,0CAAuC;AACvC,sDAAmD;AAGnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,+DAA+D;KAC1E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kEAAkE;KAC7E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,kFAAkF;KAC7F;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,QAAQ,EACN,sHAAsH;YACtH,4HAA4H;YAC5H,0IAA0I;KAC7I;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC;QAC3D,QAAQ,EACN,4EAA4E;YAC5E,yEAAyE;KAC5E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,0DAA0D;KACrE;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,qEAAqE;KAChF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,QAAQ,EACN,sGAAsG;YACtG,kHAAkH;YAClH,0GAA0G;YAC1G,iDAAiD;KACpD;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,iGAAiG;KAC5G;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,QAAQ,EACN,+HAA+H;YAC/H,iFAAiF;KACpF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,qGAAqG;QAC/G,OAAO,EAAE,SAAS;KACnB;CACF,CAAC,CAAC,IAAI,CAAC;AAER,mBAAQ,CAAC,KAAK,CAAC;IACb,eAAe,EAAE,IAAI,CAAC,SAAS;IAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,eAAe,EAAE,IAAI,CAAC,eAAmC;IACzD,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;IACvC,YAAY,EAAE,IAAI,CAAC,YAAY;IAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;IAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,eAAe,EAAE,IAAI,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ class MarkdownHomeFile extends markdown_file_1.MarkdownFile {
|
|
|
13
13
|
if (headerContent) {
|
|
14
14
|
this.addText(headerContent);
|
|
15
15
|
}
|
|
16
|
-
this.addTitle(
|
|
16
|
+
this.addTitle(settings_1.Settings.getInstance().getTitle());
|
|
17
17
|
this.addTypeEntries(types);
|
|
18
18
|
}
|
|
19
19
|
addTypeEntries(types) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-home-file.js","sourceRoot":"","sources":["../../src/model/markdown-home-file.ts"],"names":[],"mappings":";;;AACA,kGAAyF;AACzF,mDAA+C;AAC/C,uDAAgD;AAChD,0CAAuC;AAEvC,MAAa,gBAAiB,SAAQ,4BAAY;IAChD,YAAmB,QAAgB,EAAS,KAAa,EAAE,aAAsB;QAC/E,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QADH,aAAQ,GAAR,QAAQ,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAQ;QAEvD,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"markdown-home-file.js","sourceRoot":"","sources":["../../src/model/markdown-home-file.ts"],"names":[],"mappings":";;;AACA,kGAAyF;AACzF,mDAA+C;AAC/C,uDAAgD;AAChD,0CAAuC;AAEvC,MAAa,gBAAiB,SAAQ,4BAAY;IAChD,YAAmB,QAAgB,EAAS,KAAa,EAAE,aAAsB;QAC/E,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QADH,aAAQ,GAAR,QAAQ,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAQ;QAEvD,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,mBAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,KAAa;QAClC,MAAM,cAAc,GAAwB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,cAAc,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE;YACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,UAAgB;;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,oCAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,MAAA,UAAU,CAAC,UAAU,0CAAE,gBAAgB,EAAE;YAC3C,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAC/D,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,EAChD,EAAE,CACH,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAA,uBAAQ,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;IACH,CAAC;IAEO,KAAK,CAAC,OAAe;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAW,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,UAAgB;;QACpC,OAAO,CACL,MAAA,MAAA,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,0CAAE,IAAI,mCAC1F,mBAAQ,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAC7C,CAAC;IACJ,CAAC;CACF;AAnDD,4CAmDC"}
|
|
@@ -24,7 +24,10 @@ class ApexFileReader {
|
|
|
24
24
|
}
|
|
25
25
|
const rawApexFile = fileSystem.readFile(currentPath);
|
|
26
26
|
const metadataPath = fileSystem.joinPath(rootPath, `${currentFilePath}-meta.xml`);
|
|
27
|
-
|
|
27
|
+
let rawMetadataFile = null;
|
|
28
|
+
if (settings_1.Settings.getInstance().includeMetadata()) {
|
|
29
|
+
rawMetadataFile = fileSystem.exists(metadataPath) ? fileSystem.readFile(metadataPath) : null;
|
|
30
|
+
}
|
|
28
31
|
bundles.push(new apex_bundle_1.default(currentFilePath, rawApexFile, rawMetadataFile));
|
|
29
32
|
});
|
|
30
33
|
return bundles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apex-file-reader.js","sourceRoot":"","sources":["../../src/service/apex-file-reader.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAEvC,sDAA8C;AAE9C,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAsB,EAAE,WAAmB,IAAI,CAAC,eAAe;QACjF,IAAI,OAAO,GAAiB,EAAE,CAAC;QAE/B,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7D,iBAAiB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBAC/D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;aACtE;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACrC,OAAO;aACR;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,eAAe,WAAW,CAAC,CAAC;YAClF,
|
|
1
|
+
{"version":3,"file":"apex-file-reader.js","sourceRoot":"","sources":["../../src/service/apex-file-reader.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAEvC,sDAA8C;AAE9C,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAsB,EAAE,WAAmB,IAAI,CAAC,eAAe;QACjF,IAAI,OAAO,GAAiB,EAAE,CAAC;QAE/B,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7D,iBAAiB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBAC/D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;aACtE;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACrC,OAAO;aACR;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,eAAe,WAAW,CAAC,CAAC;YAClF,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,IAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,EAAE;gBAC5C,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAC9F;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,qBAAU,CAAC,eAAe,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,WAAmB;QAC3C,OAAO,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAEO,MAAM,KAAK,eAAe;QAChC,OAAO,mBAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;IAChD,CAAC;IAEO,MAAM,KAAK,eAAe;QAChC,OAAO,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;IAC1C,CAAC;CACF;AAzCD,wCAyCC"}
|
package/lib/service/parser.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ClassMirror, InterfaceMirror, ReflectionResult, Type } from '@cparra/apex-reflection';
|
|
2
2
|
import ApexBundle from '../model/apex-bundle';
|
|
3
3
|
export interface TypeParser {
|
|
4
4
|
parse(reflect: (apexBundle: ApexBundle) => ReflectionResult): Type[];
|
package/lib/service/parser.js
CHANGED
|
@@ -16,8 +16,9 @@ class RawBodyParser {
|
|
|
16
16
|
// If successful and there is a metadata file
|
|
17
17
|
const metadataParams = metadata_processor_1.default.process(currentBundle.rawMetadataContent);
|
|
18
18
|
metadataParams.forEach((value, key) => {
|
|
19
|
+
var _a;
|
|
19
20
|
const declaration = `${key}: ${value}`;
|
|
20
|
-
result.typeMirror.annotations.push({
|
|
21
|
+
(_a = result.typeMirror) === null || _a === void 0 ? void 0 : _a.annotations.push({
|
|
21
22
|
rawDeclaration: declaration,
|
|
22
23
|
name: declaration,
|
|
23
24
|
type: declaration,
|
|
@@ -29,6 +30,7 @@ class RawBodyParser {
|
|
|
29
30
|
.filter((reflectionResult) => {
|
|
30
31
|
return reflectionResult.typeMirror;
|
|
31
32
|
})
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
32
34
|
.map((reflectionResult) => reflectionResult.typeMirror);
|
|
33
35
|
return this.addFieldsFromParent(types);
|
|
34
36
|
}
|
|
@@ -57,7 +59,6 @@ class RawBodyParser {
|
|
|
57
59
|
}
|
|
58
60
|
typeAsInterface = this.addMethodsFromParent(typeAsInterface, types);
|
|
59
61
|
typesWithFields.push(typeAsInterface);
|
|
60
|
-
continue;
|
|
61
62
|
}
|
|
62
63
|
return typesWithFields;
|
|
63
64
|
}
|
|
@@ -102,31 +103,28 @@ class RawBodyParser {
|
|
|
102
103
|
return currentInterface;
|
|
103
104
|
}
|
|
104
105
|
getInheritedFields(parentAsClass, currentClass) {
|
|
105
|
-
|
|
106
|
+
return (parentAsClass.fields
|
|
106
107
|
// Filter out private fields
|
|
107
108
|
.filter((currentField) => currentField.access_modifier.toLowerCase() !== 'private')
|
|
108
109
|
// Filter out fields that also exist on the child
|
|
109
110
|
.filter((currentField) => !this.memberExists(currentClass.fields, currentField.name))
|
|
110
|
-
.map((currentField) => (Object.assign(Object.assign({}, currentField), { inherited: true })));
|
|
111
|
-
return parentFields;
|
|
111
|
+
.map((currentField) => (Object.assign(Object.assign({}, currentField), { inherited: true }))));
|
|
112
112
|
}
|
|
113
113
|
getInheritedProperties(parentAsClass, currentClass) {
|
|
114
|
-
|
|
114
|
+
return (parentAsClass.properties
|
|
115
115
|
// Filter out private properties
|
|
116
116
|
.filter((currentProperty) => currentProperty.access_modifier.toLowerCase() !== 'private')
|
|
117
117
|
// Filter out properties that also exist on the child
|
|
118
118
|
.filter((currentProperty) => !this.memberExists(currentClass.properties, currentProperty.name))
|
|
119
|
-
.map((currentProperty) => (Object.assign(Object.assign({}, currentProperty), { inherited: true })));
|
|
120
|
-
return parentProperties;
|
|
119
|
+
.map((currentProperty) => (Object.assign(Object.assign({}, currentProperty), { inherited: true }))));
|
|
121
120
|
}
|
|
122
121
|
getInheritedMethods(parentAsClass, currentClass) {
|
|
123
|
-
|
|
122
|
+
return (parentAsClass.methods
|
|
124
123
|
// Filter out private methods
|
|
125
124
|
.filter((currentMethod) => currentMethod.access_modifier.toLowerCase() !== 'private')
|
|
126
125
|
// Filter out methods that also exist on the child
|
|
127
126
|
.filter((currentMethod) => !this.memberExists(currentClass.methods, currentMethod.name))
|
|
128
|
-
.map((currentMethod) => (Object.assign(Object.assign({}, currentMethod), { inherited: true })));
|
|
129
|
-
return parentMethods;
|
|
127
|
+
.map((currentMethod) => (Object.assign(Object.assign({}, currentMethod), { inherited: true }))));
|
|
130
128
|
}
|
|
131
129
|
memberExists(members, fieldName) {
|
|
132
130
|
const fieldNames = members.map((currentMember) => currentMember.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/service/parser.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/service/parser.ts"],"names":[],"mappings":"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"}
|
package/lib/settings.d.ts
CHANGED
|
@@ -9,8 +9,11 @@ export interface SettingsConfig {
|
|
|
9
9
|
defaultGroupName: string;
|
|
10
10
|
sanitizeHtml: boolean;
|
|
11
11
|
openApiTitle?: string;
|
|
12
|
+
title: string;
|
|
12
13
|
namespace?: string;
|
|
13
14
|
openApiFileName: string;
|
|
15
|
+
includeMetadata: boolean;
|
|
16
|
+
rootDir?: string;
|
|
14
17
|
}
|
|
15
18
|
export declare class Settings {
|
|
16
19
|
config: SettingsConfig;
|
|
@@ -27,7 +30,10 @@ export declare class Settings {
|
|
|
27
30
|
get sanitizeHtml(): boolean;
|
|
28
31
|
getDefaultGroupName(): string;
|
|
29
32
|
getOpenApiTitle(): string | undefined;
|
|
33
|
+
getTitle(): string;
|
|
30
34
|
getNamespace(): string | undefined;
|
|
31
35
|
getNamespacePrefix(): string;
|
|
32
36
|
openApiFileName(): string;
|
|
37
|
+
includeMetadata(): boolean;
|
|
38
|
+
getRootDir(): string | undefined;
|
|
33
39
|
}
|
package/lib/settings.js
CHANGED
|
@@ -39,7 +39,11 @@ class Settings {
|
|
|
39
39
|
return this.config.defaultGroupName;
|
|
40
40
|
}
|
|
41
41
|
getOpenApiTitle() {
|
|
42
|
-
|
|
42
|
+
var _a;
|
|
43
|
+
return (_a = this.config.openApiTitle) !== null && _a !== void 0 ? _a : this.config.title;
|
|
44
|
+
}
|
|
45
|
+
getTitle() {
|
|
46
|
+
return this.config.title;
|
|
43
47
|
}
|
|
44
48
|
getNamespace() {
|
|
45
49
|
return this.config.namespace;
|
|
@@ -53,6 +57,12 @@ class Settings {
|
|
|
53
57
|
openApiFileName() {
|
|
54
58
|
return this.config.openApiFileName;
|
|
55
59
|
}
|
|
60
|
+
includeMetadata() {
|
|
61
|
+
return this.config.includeMetadata;
|
|
62
|
+
}
|
|
63
|
+
getRootDir() {
|
|
64
|
+
return this.config.rootDir;
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
exports.Settings = Settings;
|
|
58
68
|
//# sourceMappingURL=settings.js.map
|
package/lib/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAmBA,MAAa,QAAQ;IAGnB,YAA2B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAsB;QACxC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAEM,eAAe;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF;AA9ED,4BA8EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsBuilder.js","sourceRoot":"","sources":["../../src/test-helpers/SettingsBuilder.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,eAAe;IAC1B,KAAK;QACH,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,MAAM;YACxB,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"SettingsBuilder.js","sourceRoot":"","sources":["../../src/test-helpers/SettingsBuilder.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,eAAe;IAC1B,KAAK;QACH,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,MAAM;YACxB,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,SAAS;YAC1B,KAAK,EAAE,SAAS;YAChB,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;CACF;AAjBD,0CAiBC"}
|
|
@@ -9,7 +9,9 @@ class ClassFileGeneratorHelper {
|
|
|
9
9
|
return this.getClassGroup(classModel).replace(/ /g, '-').replace('.', '');
|
|
10
10
|
}
|
|
11
11
|
static getFileLink(classModel) {
|
|
12
|
-
|
|
12
|
+
var _a;
|
|
13
|
+
const documentationRoot = (_a = settings_1.Settings.getInstance().getRootDir()) !== null && _a !== void 0 ? _a : '';
|
|
14
|
+
const directoryRoot = `${documentationRoot}${this.getDirectoryRoot(classModel)}`;
|
|
13
15
|
const fullClassName = `${settings_1.Settings.getInstance().getNamespacePrefix()}${classModel.name}`;
|
|
14
16
|
return `[${fullClassName}](${directoryRoot}${fullClassName}.md)`;
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-file-generatorHelper.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/class-file-generatorHelper.ts"],"names":[],"mappings":";;AACA,mEAA+D;AAC/D,6CAA0C;AAC1C,+CAAwC;AACxC,wCAAmD;AAEnD,MAAqB,wBAAwB;IACpC,MAAM,CAAC,iBAAiB,CAAC,UAAgB;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,UAAgB
|
|
1
|
+
{"version":3,"file":"class-file-generatorHelper.js","sourceRoot":"","sources":["../../../src/transpiler/markdown/class-file-generatorHelper.ts"],"names":[],"mappings":";;AACA,mEAA+D;AAC/D,6CAA0C;AAC1C,+CAAwC;AACxC,wCAAmD;AAEnD,MAAqB,wBAAwB;IACpC,MAAM,CAAC,iBAAiB,CAAC,UAAgB;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,UAAgB;;QACxC,MAAM,iBAAiB,GAAG,MAAA,mBAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,mCAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,GAAG,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACzF,OAAO,IAAI,aAAa,KAAK,aAAa,GAAG,aAAa,MAAM,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,IAAI,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE;YACT,qFAAqF;YACrF,OAAO,IAAI,QAAQ,KAAK,QAAQ,GAAG,CAAC;SACrC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,UAAgB;QAC9C,iEAAiE;QACjE,MAAM,SAAS,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;QACzD,IAAI,+BAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,KAAK,eAAe,EAAE;YACjF,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SAClD;QAED,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,eAAK,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACvE,IAAI,kBAAkB,EAAE;YACtB,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;gBAC7E,yEAAyE;gBACzE,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,uEAAuE;gBACvE,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;aACpD;SACF;aAAM;YACL,sGAAsG;YACtG,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC;SACnD;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,UAAgB;;QAC3C,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAC7D,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAC1D,CAAC;QACF,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAC/E,CAAC;CACF;AAnDD,2CAmDC"}
|
|
@@ -13,7 +13,7 @@ class Transpiler {
|
|
|
13
13
|
return 0;
|
|
14
14
|
});
|
|
15
15
|
(_a = processor.onBeforeProcess) === null || _a === void 0 ? void 0 : _a.call(processor, sortedTypes);
|
|
16
|
-
if (settings_1.Settings.getInstance().indexOnly
|
|
16
|
+
if (settings_1.Settings.getInstance().indexOnly) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
sortedTypes.forEach((currentType) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/transpiler/transpiler.ts"],"names":[],"mappings":";;AAEA,0CAAuC;AACvC,4CAAqC;AAErC,MAAqB,UAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,SAAkC;;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACtD,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAA,SAAS,CAAC,eAAe,0DAAG,WAAW,CAAC,CAAC;QAEzC,IAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/transpiler/transpiler.ts"],"names":[],"mappings":";;AAEA,0CAAuC;AACvC,4CAAqC;AAErC,MAAqB,UAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,SAAkC;;QAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACtD,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAA,SAAS,CAAC,eAAe,0DAAG,WAAW,CAAC,CAAC;QAEzC,IAAI,mBAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE;YACpC,OAAO;SACR;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,eAAK,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACvD,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAA,SAAS,CAAC,cAAc,0DAAG,WAAW,CAAC,CAAC;IAC1C,CAAC;CACF;AApBD,6BAoBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cparra/apexdocs",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.0",
|
|
4
4
|
"description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apex",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"postversion": "git push && git push --tags",
|
|
25
25
|
"docs:init": "docsify init docs",
|
|
26
26
|
"docs:serve": "docsify serve docs",
|
|
27
|
-
"execute:example": "node lib/cli/generate.js -s examples/force-app -t docs --scope global public private protected -g docsify --defaultGroupName \"Misc Group\" --namespace nspc",
|
|
27
|
+
"execute:example": "node lib/cli/generate.js -s examples/force-app -t docs/types --scope global public private protected -g docsify --defaultGroupName \"Misc Group\" --namespace nspc --title \"Sample Documentation\" --documentationRootDir types",
|
|
28
28
|
"execute:example:index:only": "node lib/cli/generate.js -s examples/force-app -t docs --scope global public private -g docsify --indexOnly",
|
|
29
29
|
"execute:example:openapi": "node lib/cli/generate.js -s examples/force-app -t docs -g openapi --openApiTitle \"Sample REST Api\" --namespace nspc --openApiFileName restapi"
|
|
30
30
|
},
|
package/src/cli/generate.ts
CHANGED
|
@@ -66,6 +66,11 @@ const argv = yargs.options({
|
|
|
66
66
|
default: 'Apex REST Api',
|
|
67
67
|
describe: 'If using "openapi" as the target generator, this allows you to specify the OpenApi title value.',
|
|
68
68
|
},
|
|
69
|
+
title: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
describe: "If this allows you to specify the title of the generated documentation's home file.",
|
|
72
|
+
default: 'Classes',
|
|
73
|
+
},
|
|
69
74
|
namespace: {
|
|
70
75
|
type: 'string',
|
|
71
76
|
describe:
|
|
@@ -77,6 +82,16 @@ const argv = yargs.options({
|
|
|
77
82
|
describe: 'If using "openapi" as the target generator, this allows you to specify the name of the output file.',
|
|
78
83
|
default: 'openapi',
|
|
79
84
|
},
|
|
85
|
+
includeMetadata: {
|
|
86
|
+
type: 'boolean',
|
|
87
|
+
describe: "Whether to include the file's meta.xml information: Whether it is active and and the API version",
|
|
88
|
+
default: false,
|
|
89
|
+
},
|
|
90
|
+
documentationRootDir: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
describe:
|
|
93
|
+
'Allows you to specify the root documentation directory where the files are being generated. This can be helpful when embedding the generated docs into an existing site so that the links are generated correctly.',
|
|
94
|
+
},
|
|
80
95
|
}).argv;
|
|
81
96
|
|
|
82
97
|
Settings.build({
|
|
@@ -89,8 +104,11 @@ Settings.build({
|
|
|
89
104
|
defaultGroupName: argv.defaultGroupName,
|
|
90
105
|
sanitizeHtml: argv.sanitizeHtml,
|
|
91
106
|
openApiTitle: argv.openApiTitle,
|
|
107
|
+
title: argv.title,
|
|
92
108
|
namespace: argv.namespace,
|
|
93
109
|
openApiFileName: argv.openApiFileName,
|
|
110
|
+
includeMetadata: argv.includeMetadata,
|
|
111
|
+
rootDir: argv.documentationRootDir,
|
|
94
112
|
});
|
|
95
113
|
|
|
96
114
|
try {
|
|
@@ -27,7 +27,11 @@ export class ApexFileReader {
|
|
|
27
27
|
|
|
28
28
|
const rawApexFile = fileSystem.readFile(currentPath);
|
|
29
29
|
const metadataPath = fileSystem.joinPath(rootPath, `${currentFilePath}-meta.xml`);
|
|
30
|
-
|
|
30
|
+
let rawMetadataFile = null;
|
|
31
|
+
if (Settings.getInstance().includeMetadata()) {
|
|
32
|
+
rawMetadataFile = fileSystem.exists(metadataPath) ? fileSystem.readFile(metadataPath) : null;
|
|
33
|
+
}
|
|
34
|
+
|
|
31
35
|
bundles.push(new ApexBundle(currentFilePath, rawApexFile, rawMetadataFile));
|
|
32
36
|
});
|
|
33
37
|
return bundles;
|
package/src/service/parser.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Type,
|
|
3
|
-
ReflectionResult,
|
|
4
|
-
ClassMirror,
|
|
5
|
-
FieldMirror,
|
|
6
|
-
PropertyMirror,
|
|
7
|
-
MethodMirror,
|
|
8
|
-
InterfaceMirror,
|
|
9
|
-
} from '@cparra/apex-reflection';
|
|
1
|
+
import { ClassMirror, InterfaceMirror, ReflectionResult, Type } from '@cparra/apex-reflection';
|
|
10
2
|
import ApexBundle from '../model/apex-bundle';
|
|
11
3
|
import MetadataProcessor from './metadata-processor';
|
|
12
4
|
import { Logger } from '../util/logger';
|
|
@@ -30,7 +22,7 @@ export class RawBodyParser implements TypeParser {
|
|
|
30
22
|
const metadataParams = MetadataProcessor.process(currentBundle.rawMetadataContent);
|
|
31
23
|
metadataParams.forEach((value, key) => {
|
|
32
24
|
const declaration = `${key}: ${value}`;
|
|
33
|
-
result.typeMirror
|
|
25
|
+
result.typeMirror?.annotations.push({
|
|
34
26
|
rawDeclaration: declaration,
|
|
35
27
|
name: declaration,
|
|
36
28
|
type: declaration,
|
|
@@ -42,6 +34,7 @@ export class RawBodyParser implements TypeParser {
|
|
|
42
34
|
.filter((reflectionResult) => {
|
|
43
35
|
return reflectionResult.typeMirror;
|
|
44
36
|
})
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
45
38
|
.map((reflectionResult) => reflectionResult.typeMirror!);
|
|
46
39
|
|
|
47
40
|
return this.addFieldsFromParent(types);
|
|
@@ -76,7 +69,6 @@ export class RawBodyParser implements TypeParser {
|
|
|
76
69
|
|
|
77
70
|
typeAsInterface = this.addMethodsFromParent(typeAsInterface, types);
|
|
78
71
|
typesWithFields.push(typeAsInterface);
|
|
79
|
-
continue;
|
|
80
72
|
}
|
|
81
73
|
|
|
82
74
|
return typesWithFields;
|
|
@@ -131,45 +123,48 @@ export class RawBodyParser implements TypeParser {
|
|
|
131
123
|
}
|
|
132
124
|
|
|
133
125
|
private getInheritedFields(parentAsClass: ClassMirror, currentClass: ClassMirror) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
return (
|
|
127
|
+
parentAsClass.fields
|
|
128
|
+
// Filter out private fields
|
|
129
|
+
.filter((currentField) => currentField.access_modifier.toLowerCase() !== 'private')
|
|
130
|
+
// Filter out fields that also exist on the child
|
|
131
|
+
.filter((currentField) => !this.memberExists(currentClass.fields, currentField.name))
|
|
132
|
+
.map((currentField) => ({
|
|
133
|
+
...currentField,
|
|
134
|
+
inherited: true,
|
|
135
|
+
}))
|
|
136
|
+
);
|
|
144
137
|
}
|
|
145
138
|
|
|
146
139
|
private getInheritedProperties(parentAsClass: ClassMirror, currentClass: ClassMirror) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
140
|
+
return (
|
|
141
|
+
parentAsClass.properties
|
|
142
|
+
// Filter out private properties
|
|
143
|
+
.filter((currentProperty) => currentProperty.access_modifier.toLowerCase() !== 'private')
|
|
144
|
+
// Filter out properties that also exist on the child
|
|
145
|
+
.filter((currentProperty) => !this.memberExists(currentClass.properties, currentProperty.name))
|
|
146
|
+
.map((currentProperty) => ({
|
|
147
|
+
...currentProperty,
|
|
148
|
+
inherited: true,
|
|
149
|
+
}))
|
|
150
|
+
);
|
|
157
151
|
}
|
|
158
152
|
|
|
159
153
|
private getInheritedMethods(
|
|
160
154
|
parentAsClass: ClassMirror | InterfaceMirror,
|
|
161
155
|
currentClass: ClassMirror | InterfaceMirror,
|
|
162
156
|
) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
157
|
+
return (
|
|
158
|
+
parentAsClass.methods
|
|
159
|
+
// Filter out private methods
|
|
160
|
+
.filter((currentMethod) => currentMethod.access_modifier.toLowerCase() !== 'private')
|
|
161
|
+
// Filter out methods that also exist on the child
|
|
162
|
+
.filter((currentMethod) => !this.memberExists(currentClass.methods, currentMethod.name))
|
|
163
|
+
.map((currentMethod) => ({
|
|
164
|
+
...currentMethod,
|
|
165
|
+
inherited: true,
|
|
166
|
+
}))
|
|
167
|
+
);
|
|
173
168
|
}
|
|
174
169
|
|
|
175
170
|
memberExists(members: NameAware[], fieldName: string): boolean {
|
package/src/settings.ts
CHANGED
|
@@ -10,8 +10,11 @@ export interface SettingsConfig {
|
|
|
10
10
|
defaultGroupName: string;
|
|
11
11
|
sanitizeHtml: boolean;
|
|
12
12
|
openApiTitle?: string;
|
|
13
|
+
title: string;
|
|
13
14
|
namespace?: string;
|
|
14
15
|
openApiFileName: string;
|
|
16
|
+
includeMetadata: boolean;
|
|
17
|
+
rootDir?: string;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
export class Settings {
|
|
@@ -63,7 +66,11 @@ export class Settings {
|
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
public getOpenApiTitle(): string | undefined {
|
|
66
|
-
return this.config.openApiTitle;
|
|
69
|
+
return this.config.openApiTitle ?? this.config.title;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public getTitle(): string {
|
|
73
|
+
return this.config.title;
|
|
67
74
|
}
|
|
68
75
|
|
|
69
76
|
public getNamespace(): string | undefined {
|
|
@@ -80,4 +87,12 @@ export class Settings {
|
|
|
80
87
|
public openApiFileName(): string {
|
|
81
88
|
return this.config.openApiFileName;
|
|
82
89
|
}
|
|
90
|
+
|
|
91
|
+
public includeMetadata(): boolean {
|
|
92
|
+
return this.config.includeMetadata;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public getRootDir(): string | undefined {
|
|
96
|
+
return this.config.rootDir;
|
|
97
|
+
}
|
|
83
98
|
}
|
|
@@ -10,7 +10,8 @@ export default class ClassFileGeneratorHelper {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
public static getFileLink(classModel: Type) {
|
|
13
|
-
const
|
|
13
|
+
const documentationRoot = Settings.getInstance().getRootDir() ?? '';
|
|
14
|
+
const directoryRoot = `${documentationRoot}${this.getDirectoryRoot(classModel)}`;
|
|
14
15
|
const fullClassName = `${Settings.getInstance().getNamespacePrefix()}${classModel.name}`;
|
|
15
16
|
return `[${fullClassName}](${directoryRoot}${fullClassName}.md)`;
|
|
16
17
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# nspc.AnotherInterface
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|