@cparra/apexdocs 2.13.1 → 2.14.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 +2 -0
- package/docs/Main/nspc.SampleClass.md +0 -4
- package/lib/cli/generate.js +12 -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 +4 -0
- package/lib/settings.js +8 -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/transpiler.js +1 -1
- package/lib/transpiler/transpiler.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/generate.ts +12 -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 +11 -1
- package/src/test-helpers/SettingsBuilder.ts +2 -0
- package/src/transpiler/transpiler.ts +1 -1
package/README.md
CHANGED
|
@@ -129,8 +129,10 @@ The CLI supports the following parameters:
|
|
|
129
129
|
| --defaultGroupName | N/A | Defines the `@group` name to be used when a file does not specify it. | `Miscellaneous` | No |
|
|
130
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
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 |
|
|
132
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 |
|
|
133
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 |
|
|
134
136
|
|
|
135
137
|
### Importing to your project
|
|
136
138
|
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
`NAMESPACEACCESSIBLE`
|
|
4
4
|
|
|
5
|
-
`APIVERSION: 54`
|
|
6
|
-
|
|
7
|
-
`STATUS: ACTIVE`
|
|
8
|
-
|
|
9
5
|
This is a class description. This class relates to [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
|
10
6
|
But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist.
|
|
11
7
|
You can also link using this syntax [nspc.SampleInterface](/Sample-Interfaces/nspc.SampleInterface.md)
|
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,11 @@ 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
|
+
},
|
|
75
85
|
}).argv;
|
|
76
86
|
settings_1.Settings.build({
|
|
77
87
|
sourceDirectory: argv.sourceDir,
|
|
@@ -83,8 +93,10 @@ settings_1.Settings.build({
|
|
|
83
93
|
defaultGroupName: argv.defaultGroupName,
|
|
84
94
|
sanitizeHtml: argv.sanitizeHtml,
|
|
85
95
|
openApiTitle: argv.openApiTitle,
|
|
96
|
+
title: argv.title,
|
|
86
97
|
namespace: argv.namespace,
|
|
87
98
|
openApiFileName: argv.openApiFileName,
|
|
99
|
+
includeMetadata: argv.includeMetadata,
|
|
88
100
|
});
|
|
89
101
|
try {
|
|
90
102
|
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;CACtC,CAAC,CAAC;AAEH,IAAI;IACF,mBAAQ,CAAC,QAAQ,EAAE,CAAC;CACrB;AAAC,OAAO,KAAK,EAAE;IACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB"}
|
|
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,10 @@ 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;
|
|
14
16
|
}
|
|
15
17
|
export declare class Settings {
|
|
16
18
|
config: SettingsConfig;
|
|
@@ -27,7 +29,9 @@ export declare class Settings {
|
|
|
27
29
|
get sanitizeHtml(): boolean;
|
|
28
30
|
getDefaultGroupName(): string;
|
|
29
31
|
getOpenApiTitle(): string | undefined;
|
|
32
|
+
getTitle(): string;
|
|
30
33
|
getNamespace(): string | undefined;
|
|
31
34
|
getNamespacePrefix(): string;
|
|
32
35
|
openApiFileName(): string;
|
|
36
|
+
includeMetadata(): boolean;
|
|
33
37
|
}
|
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,9 @@ class Settings {
|
|
|
53
57
|
openApiFileName() {
|
|
54
58
|
return this.config.openApiFileName;
|
|
55
59
|
}
|
|
60
|
+
includeMetadata() {
|
|
61
|
+
return this.config.includeMetadata;
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
exports.Settings = Settings;
|
|
58
65
|
//# 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":";;;AAkBA,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;CACF;AA1ED,4BA0EC"}
|
|
@@ -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"}
|
|
@@ -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.14.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 --scope global public private protected -g docsify --defaultGroupName \"Misc Group\" --namespace nspc --title \"Sample Documentation\"",
|
|
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,11 @@ 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
|
+
},
|
|
80
90
|
}).argv;
|
|
81
91
|
|
|
82
92
|
Settings.build({
|
|
@@ -89,8 +99,10 @@ Settings.build({
|
|
|
89
99
|
defaultGroupName: argv.defaultGroupName,
|
|
90
100
|
sanitizeHtml: argv.sanitizeHtml,
|
|
91
101
|
openApiTitle: argv.openApiTitle,
|
|
102
|
+
title: argv.title,
|
|
92
103
|
namespace: argv.namespace,
|
|
93
104
|
openApiFileName: argv.openApiFileName,
|
|
105
|
+
includeMetadata: argv.includeMetadata,
|
|
94
106
|
});
|
|
95
107
|
|
|
96
108
|
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,10 @@ 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;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
export class Settings {
|
|
@@ -63,7 +65,11 @@ export class Settings {
|
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
public getOpenApiTitle(): string | undefined {
|
|
66
|
-
return this.config.openApiTitle;
|
|
68
|
+
return this.config.openApiTitle ?? this.config.title;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public getTitle(): string {
|
|
72
|
+
return this.config.title;
|
|
67
73
|
}
|
|
68
74
|
|
|
69
75
|
public getNamespace(): string | undefined {
|
|
@@ -80,4 +86,8 @@ export class Settings {
|
|
|
80
86
|
public openApiFileName(): string {
|
|
81
87
|
return this.config.openApiFileName;
|
|
82
88
|
}
|
|
89
|
+
|
|
90
|
+
public includeMetadata(): boolean {
|
|
91
|
+
return this.config.includeMetadata;
|
|
92
|
+
}
|
|
83
93
|
}
|