@cparra/apexdocs 3.0.0 → 3.1.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 +11 -5
- package/package.json +4 -1
- package/.github/workflows/ci.yaml +0 -22
- package/.github/workflows/close_stale.yml +0 -22
- package/.prettierrc.js +0 -7
- package/__mocks__/chalk.js +0 -12
- package/__mocks__/log-update.js +0 -6
- package/eslint.config.mjs +0 -10
- package/examples/README.md +0 -5
- package/examples/docsify/README.md +0 -17
- package/examples/docsify/apexdocs.config.ts +0 -13
- package/examples/docsify/classes/ASampleClass.cls +0 -57
- package/examples/docsify/classes/CodeControl.cls +0 -19
- package/examples/docsify/classes/SampleClass.cls +0 -95
- package/examples/docsify/classes/SampleInterface.cls +0 -17
- package/examples/docsify/classes/SomeDto.cls +0 -122
- package/examples/docsify/docs/.nojekyll +0 -0
- package/examples/docsify/docs/README.md +0 -25
- package/examples/docsify/docs/_config.yml +0 -1
- package/examples/docsify/docs/index.html +0 -22
- package/examples/docsify/docs/miscellaneous/ASampleClass.md +0 -88
- package/examples/docsify/docs/miscellaneous/CodeControl.md +0 -107
- package/examples/docsify/docs/miscellaneous/SomeDto.md +0 -244
- package/examples/docsify/docs/sample-classes/SampleClass.md +0 -171
- package/examples/docsify/docs/sample-interfaces/SampleInterface.md +0 -36
- package/examples/docsify/package-lock.json +0 -2459
- package/examples/docsify/package.json +0 -14
- package/examples/imported/.forceignore +0 -12
- package/examples/imported/README.md +0 -6
- package/examples/imported/config/project-scratch-def.json +0 -5
- package/examples/imported/docs/index.md +0 -109
- package/examples/imported/docs/miscellaneous/BaseClass.md +0 -13
- package/examples/imported/docs/miscellaneous/MultiInheritanceClass.md +0 -69
- package/examples/imported/docs/miscellaneous/ParentInterface.md +0 -12
- package/examples/imported/docs/miscellaneous/ReferencedEnum.md +0 -5
- package/examples/imported/docs/miscellaneous/SampleException.md +0 -21
- package/examples/imported/docs/miscellaneous/SampleInterface.md +0 -113
- package/examples/imported/docs/miscellaneous/Url.md +0 -308
- package/examples/imported/docs/sample-enums/SampleEnum.md +0 -33
- package/examples/imported/docs/samplegroup/SampleClass.md +0 -167
- package/examples/imported/force-app/classes/BaseClass.cls +0 -3
- package/examples/imported/force-app/classes/MultiInheritanceClass.cls +0 -1
- package/examples/imported/force-app/classes/ParentInterface.cls +0 -3
- package/examples/imported/force-app/classes/ReferencedEnum.cls +0 -3
- package/examples/imported/force-app/classes/SampleClass.cls +0 -72
- package/examples/imported/force-app/classes/SampleEnum.cls +0 -30
- package/examples/imported/force-app/classes/SampleException.cls +0 -17
- package/examples/imported/force-app/classes/SampleInterface.cls +0 -50
- package/examples/imported/force-app/classes/Url.cls +0 -196
- package/examples/imported/package-lock.json +0 -665
- package/examples/imported/package.json +0 -6
- package/examples/imported/scripts/process-docs.mjs +0 -16
- package/examples/imported/sfdx-project.json +0 -12
- package/examples/markdown/.forceignore +0 -12
- package/examples/markdown/README.md +0 -7
- package/examples/markdown/config/project-scratch-def.json +0 -5
- package/examples/markdown/docs/index.md +0 -109
- package/examples/markdown/docs/miscellaneous/BaseClass.md +0 -16
- package/examples/markdown/docs/miscellaneous/MultiInheritanceClass.md +0 -72
- package/examples/markdown/docs/miscellaneous/ParentInterface.md +0 -15
- package/examples/markdown/docs/miscellaneous/ReferencedEnum.md +0 -8
- package/examples/markdown/docs/miscellaneous/SampleException.md +0 -24
- package/examples/markdown/docs/miscellaneous/SampleInterface.md +0 -116
- package/examples/markdown/docs/miscellaneous/Url.md +0 -311
- package/examples/markdown/docs/sample-enums/SampleEnum.md +0 -36
- package/examples/markdown/docs/samplegroup/SampleClass.md +0 -170
- package/examples/markdown/force-app/classes/BaseClass.cls +0 -3
- package/examples/markdown/force-app/classes/MultiInheritanceClass.cls +0 -1
- package/examples/markdown/force-app/classes/ParentInterface.cls +0 -3
- package/examples/markdown/force-app/classes/ReferencedEnum.cls +0 -3
- package/examples/markdown/force-app/classes/SampleClass.cls +0 -72
- package/examples/markdown/force-app/classes/SampleEnum.cls +0 -30
- package/examples/markdown/force-app/classes/SampleException.cls +0 -17
- package/examples/markdown/force-app/classes/SampleInterface.cls +0 -50
- package/examples/markdown/force-app/classes/Url.cls +0 -196
- package/examples/markdown/package-lock.json +0 -665
- package/examples/markdown/package.json +0 -20
- package/examples/markdown/sfdx-project.json +0 -12
- package/examples/markdown-jsconfig/.forceignore +0 -12
- package/examples/markdown-jsconfig/README.md +0 -9
- package/examples/markdown-jsconfig/apexdocs.config.mjs +0 -22
- package/examples/markdown-jsconfig/config/project-scratch-def.json +0 -5
- package/examples/markdown-jsconfig/docs/index.md +0 -12
- package/examples/markdown-jsconfig/docs/miscellaneous/Url.md +0 -315
- package/examples/markdown-jsconfig/force-app/classes/Url.cls +0 -196
- package/examples/markdown-jsconfig/package-lock.json +0 -665
- package/examples/markdown-jsconfig/package.json +0 -15
- package/examples/markdown-jsconfig/sfdx-project.json +0 -12
- package/examples/open-api/README.md +0 -5
- package/examples/open-api/config/project-scratch-def.json +0 -13
- package/examples/open-api/docs/openapi.json +0 -14
- package/examples/open-api/force-app/main/default/classes/ChildClass.cls +0 -42
- package/examples/open-api/force-app/main/default/classes/SampleClass.cls +0 -167
- package/examples/open-api/force-app/main/default/restapi/SampleRestResource.cls +0 -195
- package/examples/open-api/force-app/main/default/restapi/SampleRestResourceToSkip.cls +0 -35
- package/examples/open-api/force-app/main/default/restapi/SampleRestResourceWithInnerClass.cls +0 -24
- package/examples/open-api/force-app/main/default/restapi/SampleRestResourceWithoutApexDocs.cls +0 -15
- package/examples/open-api/force-app/main/default/restapi/references/Reference1.cls +0 -9
- package/examples/open-api/force-app/main/default/restapi/references/Reference2.cls +0 -9
- package/examples/open-api/force-app/main/default/restapi/references/Reference3.cls +0 -3
- package/examples/open-api/force-app/main/default/restapi/references/Reference4.cls +0 -3
- package/examples/open-api/force-app/main/default/restapi/references/Reference5.cls +0 -3
- package/examples/open-api/force-app/main/default/restapi/references/Reference6.cls +0 -6
- package/examples/open-api/force-app/main/default/restapi/references/Reference7.cls +0 -3
- package/examples/open-api/package-lock.json +0 -724
- package/examples/open-api/package.json +0 -20
- package/examples/open-api/sfdx-project.json +0 -12
- package/examples/vitepress/.forceignore +0 -12
- package/examples/vitepress/README.md +0 -25
- package/examples/vitepress/apexdocs.config.ts +0 -113
- package/examples/vitepress/config/project-scratch-def.json +0 -13
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +0 -259
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +0 -40
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +0 -11474
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +0 -9172
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/cache/deps/package.json +0 -3
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4339
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -567
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +0 -323
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +0 -7
- package/examples/vitepress/docs/.vitepress/config.mts +0 -21
- package/examples/vitepress/docs/.vitepress/sidebar.json +0 -119
- package/examples/vitepress/docs/api-examples.md +0 -49
- package/examples/vitepress/docs/index-frontmatter.md +0 -16
- package/examples/vitepress/docs/index.md +0 -56
- package/examples/vitepress/docs/markdown-examples.md +0 -85
- package/examples/vitepress/docs/miscellaneous/BaseClass.md +0 -20
- package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +0 -76
- package/examples/vitepress/docs/miscellaneous/ParentInterface.md +0 -19
- package/examples/vitepress/docs/miscellaneous/ReferencedEnum.md +0 -15
- package/examples/vitepress/docs/miscellaneous/SampleException.md +0 -28
- package/examples/vitepress/docs/miscellaneous/SampleInterface.md +0 -116
- package/examples/vitepress/docs/miscellaneous/Url.md +0 -317
- package/examples/vitepress/docs/sample-enums/SampleEnum.md +0 -40
- package/examples/vitepress/docs/samplegroup/SampleClass.md +0 -174
- package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +0 -3
- package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +0 -1
- package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +0 -3
- package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +0 -5
- package/examples/vitepress/force-app/main/default/classes/Url.cls +0 -198
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls +0 -73
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls +0 -30
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls +0 -17
- package/examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls +0 -46
- package/examples/vitepress/package-lock.json +0 -2574
- package/examples/vitepress/package.json +0 -18
- package/examples/vitepress/sfdx-project.json +0 -12
- package/jest.config.js +0 -10
- package/jest.d.ts +0 -7
- package/src/application/Apexdocs.ts +0 -69
- package/src/application/__tests__/apex-file-reader.spec.ts +0 -128
- package/src/application/apex-file-reader.ts +0 -56
- package/src/application/file-system.ts +0 -69
- package/src/application/file-writer.ts +0 -43
- package/src/application/generators/markdown.ts +0 -45
- package/src/application/generators/openapi.ts +0 -75
- package/src/cli/args.ts +0 -55
- package/src/cli/commands/markdown.ts +0 -56
- package/src/cli/commands/openapi.ts +0 -36
- package/src/cli/generate.ts +0 -32
- package/src/core/__test__/manifest.spec.ts +0 -16
- package/src/core/manifest.ts +0 -90
- package/src/core/markdown/__test__/expect-extensions.ts +0 -32
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +0 -362
- package/src/core/markdown/__test__/generating-docs.spec.ts +0 -378
- package/src/core/markdown/__test__/generating-enum-docs.spec.ts +0 -61
- package/src/core/markdown/__test__/generating-interface-docs.spec.ts +0 -169
- package/src/core/markdown/__test__/generating-reference-guide.spec.ts +0 -196
- package/src/core/markdown/__test__/inheritance-chain.test.ts +0 -54
- package/src/core/markdown/__test__/test-helpers.ts +0 -25
- package/src/core/markdown/adapters/__tests__/documentables.spec.ts +0 -109
- package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +0 -150
- package/src/core/markdown/adapters/__tests__/link-generator.spec.ts +0 -130
- package/src/core/markdown/adapters/__tests__/references.spec.ts +0 -136
- package/src/core/markdown/adapters/apex-types.ts +0 -238
- package/src/core/markdown/adapters/documentables.ts +0 -115
- package/src/core/markdown/adapters/fields-and-properties.ts +0 -45
- package/src/core/markdown/adapters/generate-link.ts +0 -82
- package/src/core/markdown/adapters/inline.ts +0 -143
- package/src/core/markdown/adapters/methods-and-constructors.ts +0 -133
- package/src/core/markdown/adapters/reference-guide.ts +0 -37
- package/src/core/markdown/adapters/renderable-bundle.ts +0 -61
- package/src/core/markdown/adapters/renderable-to-page-data.ts +0 -91
- package/src/core/markdown/adapters/type-utils.ts +0 -13
- package/src/core/markdown/adapters/types.d.ts +0 -180
- package/src/core/markdown/generate-docs.ts +0 -210
- package/src/core/markdown/reflection/__test__/filter-scope.spec.ts +0 -290
- package/src/core/markdown/reflection/__test__/helpers.ts +0 -18
- package/src/core/markdown/reflection/__test__/remove-excluded-tags.spec.ts +0 -200
- package/src/core/markdown/reflection/filter-scope.ts +0 -13
- package/src/core/markdown/reflection/inheritance-chain-expanion.ts +0 -22
- package/src/core/markdown/reflection/inheritance-chain.ts +0 -23
- package/src/core/markdown/reflection/inherited-member-expansion.ts +0 -105
- package/src/core/markdown/reflection/reflect-source.ts +0 -123
- package/src/core/markdown/reflection/remove-excluded-tags.ts +0 -168
- package/src/core/markdown/reflection/sort-types-and-members.ts +0 -61
- package/src/core/markdown/templates/class-template.ts +0 -75
- package/src/core/markdown/templates/constructors-partial-template.ts +0 -32
- package/src/core/markdown/templates/documentable-partial-template.ts +0 -26
- package/src/core/markdown/templates/enum-template.ts +0 -12
- package/src/core/markdown/templates/fieldsPartialTemplate.ts +0 -23
- package/src/core/markdown/templates/grouped-members-partial-template.ts +0 -6
- package/src/core/markdown/templates/hookable.ts +0 -7
- package/src/core/markdown/templates/interface-template.ts +0 -16
- package/src/core/markdown/templates/methods-partial-template.ts +0 -43
- package/src/core/markdown/templates/reference-guide.ts +0 -14
- package/src/core/markdown/templates/template.ts +0 -114
- package/src/core/markdown/templates/type-doc-partial.ts +0 -27
- package/src/core/markdown/utils.ts +0 -3
- package/src/core/openApiSettings.ts +0 -41
- package/src/core/openapi/__tests__/manifest-factory.spec.ts +0 -16
- package/src/core/openapi/__tests__/open-api-docs-processor.spec.ts +0 -59
- package/src/core/openapi/__tests__/open-api.spec.ts +0 -22
- package/src/core/openapi/apex-doc-types.ts +0 -26
- package/src/core/openapi/apex-type-wrappers/ClassMirrorWrapper.ts +0 -12
- package/src/core/openapi/apex-type-wrappers/MethodMirrorWrapper.ts +0 -11
- package/src/core/openapi/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +0 -15
- package/src/core/openapi/file-container.ts +0 -13
- package/src/core/openapi/manifest-factory.ts +0 -16
- package/src/core/openapi/open-api-docs-processor.ts +0 -93
- package/src/core/openapi/open-api-types.ts +0 -119
- package/src/core/openapi/open-api.ts +0 -45
- package/src/core/openapi/openapi-type-file.ts +0 -12
- package/src/core/openapi/parser.ts +0 -163
- package/src/core/openapi/parsers/Builder.ts +0 -40
- package/src/core/openapi/parsers/MethodParser.ts +0 -249
- package/src/core/openapi/parsers/ParameterObjectBuilder.ts +0 -13
- package/src/core/openapi/parsers/ReferenceBuilder.ts +0 -299
- package/src/core/openapi/parsers/RequestBodyBuilder.ts +0 -19
- package/src/core/openapi/parsers/ResponsesBuilder.ts +0 -21
- package/src/core/openapi/parsers/__tests__/MethodParser.spec.ts +0 -44
- package/src/core/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +0 -68
- package/src/core/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +0 -751
- package/src/core/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +0 -64
- package/src/core/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +0 -55
- package/src/core/openapi/transpiler.ts +0 -17
- package/src/core/openapi/types-repository.ts +0 -54
- package/src/core/parse-apex-metadata.ts +0 -30
- package/src/core/shared/types.d.ts +0 -150
- package/src/core/shared/utils.ts +0 -5
- package/src/defaults.ts +0 -21
- package/src/index.ts +0 -110
- package/src/test-helpers/AnnotationBuilder.ts +0 -29
- package/src/test-helpers/ClassMirrorBuilder.ts +0 -69
- package/src/test-helpers/DocCommentAnnotationBuilder.ts +0 -24
- package/src/test-helpers/DocCommentBuilder.ts +0 -36
- package/src/test-helpers/FieldMirrorBuilder.ts +0 -59
- package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -39
- package/src/test-helpers/MethodMirrorBuilder.ts +0 -77
- package/src/test-helpers/SettingsBuilder.ts +0 -17
- package/src/util/error-logger.ts +0 -92
- package/src/util/fp.ts +0 -3
- package/src/util/logger.ts +0 -51
- package/src/util/string-utils.ts +0 -7
- package/tsconfig.json +0 -25
- package/tslint.json +0 -6
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { InlineCode, Link, RenderableContent } from './types';
|
|
2
|
-
import { pipe } from 'fp-ts/function';
|
|
3
|
-
import { apply } from '#utils/fp';
|
|
4
|
-
|
|
5
|
-
type InlineRenderableContent = InlineCode | Link | string;
|
|
6
|
-
|
|
7
|
-
type ToInlineRenderableContent = (typeName: string) => InlineRenderableContent;
|
|
8
|
-
|
|
9
|
-
function defaultGetEmailByReference(email: string): Link {
|
|
10
|
-
return {
|
|
11
|
-
__type: 'link',
|
|
12
|
-
title: email,
|
|
13
|
-
url: `mailto:${email}`,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function replaceInlineReferences(
|
|
18
|
-
text: string,
|
|
19
|
-
linkReplacer: ToInlineRenderableContent,
|
|
20
|
-
emailReplacer: ToInlineRenderableContent = defaultGetEmailByReference,
|
|
21
|
-
): RenderableContent[] {
|
|
22
|
-
const inlineLinks = apply(replaceInlineLinks, linkReplacer);
|
|
23
|
-
const inlineEmails = apply(replaceInlineEmails, emailReplacer);
|
|
24
|
-
|
|
25
|
-
return pipe(inlineCode([text]), inlineLinks, inlineEmails);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function inlineCode(renderableContents: RenderableContent[]): RenderableContent[] {
|
|
29
|
-
return renderableContents.flatMap((renderableContent) => inlineCodeContent(renderableContent));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Replace string that is inline code with InlineCode
|
|
33
|
-
// Inline code is any text that backticks surround
|
|
34
|
-
function inlineCodeContent(renderableContent: RenderableContent): RenderableContent[] {
|
|
35
|
-
if (typeof renderableContent !== 'string') {
|
|
36
|
-
return [renderableContent];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function inlineCodeLink(text: string): InlineCode {
|
|
40
|
-
return {
|
|
41
|
-
__type: 'inline-code',
|
|
42
|
-
content: text,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const text = renderableContent;
|
|
47
|
-
|
|
48
|
-
// Matches any text surrounded by backticks
|
|
49
|
-
const codeFormatRegEx = '`([^`]*)`';
|
|
50
|
-
const matches = match(codeFormatRegEx, text);
|
|
51
|
-
return createRenderableContents(matches, text, inlineCodeLink);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function replaceInlineLinks(
|
|
55
|
-
getLinkByTypeName: ToInlineRenderableContent,
|
|
56
|
-
renderableContents: RenderableContent[],
|
|
57
|
-
): RenderableContent[] {
|
|
58
|
-
return renderableContents.flatMap((renderableContent) => inlineLinkContent(renderableContent, getLinkByTypeName));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function inlineLinkContent(
|
|
62
|
-
renderableContent: RenderableContent,
|
|
63
|
-
getLinkByTypeName: ToInlineRenderableContent,
|
|
64
|
-
): RenderableContent[] {
|
|
65
|
-
if (typeof renderableContent !== 'string') {
|
|
66
|
-
return [renderableContent];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const text = renderableContent;
|
|
70
|
-
|
|
71
|
-
// Matches either `<<ClassName>>` or `{@link ClassName}`
|
|
72
|
-
const linkFormatRegEx = '{@link (.*?)}|<<([^>]+)>>';
|
|
73
|
-
const matches = match(linkFormatRegEx, text);
|
|
74
|
-
return createRenderableContents(matches, text, getLinkByTypeName);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export function replaceInlineEmails(
|
|
78
|
-
getLinkByTypeName: ToInlineRenderableContent,
|
|
79
|
-
renderableContents: RenderableContent[],
|
|
80
|
-
): RenderableContent[] {
|
|
81
|
-
return renderableContents.flatMap((renderableContent) => inlineEmailContent(renderableContent, getLinkByTypeName));
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function inlineEmailContent(
|
|
85
|
-
renderableContent: RenderableContent,
|
|
86
|
-
getLinkByTypeName: ToInlineRenderableContent,
|
|
87
|
-
): RenderableContent[] {
|
|
88
|
-
if (typeof renderableContent !== 'string') {
|
|
89
|
-
return [renderableContent];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const text = renderableContent;
|
|
93
|
-
|
|
94
|
-
// Parsing references using the format '{@email email}'
|
|
95
|
-
const linkFormatRegEx = '{@email (.*?)}';
|
|
96
|
-
const matches = match(linkFormatRegEx, text);
|
|
97
|
-
return createRenderableContents(matches, text, getLinkByTypeName);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function match(regex: string, text: string) {
|
|
101
|
-
const expression = new RegExp(regex, 'gi');
|
|
102
|
-
let match;
|
|
103
|
-
const matches = [];
|
|
104
|
-
|
|
105
|
-
do {
|
|
106
|
-
match = expression.exec(text);
|
|
107
|
-
if (match) {
|
|
108
|
-
matches.push(match);
|
|
109
|
-
}
|
|
110
|
-
} while (match);
|
|
111
|
-
|
|
112
|
-
return matches;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function createRenderableContents(matches: RegExpExecArray[], text: string, linker: ToInlineRenderableContent) {
|
|
116
|
-
if (matches.length === 0) {
|
|
117
|
-
return [text];
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const result: RenderableContent[] = [];
|
|
121
|
-
let lastIndex = 0;
|
|
122
|
-
for (const match of matches) {
|
|
123
|
-
const index = match.index;
|
|
124
|
-
const length = match[0].length;
|
|
125
|
-
|
|
126
|
-
// loop through the matches (skip the first one, which is the full match)
|
|
127
|
-
// until we find the first capturing group that has a value
|
|
128
|
-
const capturedGroup = match.slice(1).find((group) => group);
|
|
129
|
-
if (!capturedGroup) {
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
result.push(text.slice(lastIndex, index));
|
|
133
|
-
result.push(linker(capturedGroup));
|
|
134
|
-
|
|
135
|
-
lastIndex = index + length;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (lastIndex < text.length) {
|
|
139
|
-
result.push(text.slice(lastIndex));
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return result;
|
|
143
|
-
}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { ConstructorMirror, MethodMirror, ParameterMirror, ThrowsAnnotation } from '@cparra/apex-reflection';
|
|
2
|
-
import {
|
|
3
|
-
RenderableConstructor,
|
|
4
|
-
RenderableMethod,
|
|
5
|
-
MethodMirrorWithInheritance,
|
|
6
|
-
CodeBlock,
|
|
7
|
-
GetRenderableContentByTypeName,
|
|
8
|
-
} from './types';
|
|
9
|
-
import { adaptDescribable, adaptDocumentable } from './documentables';
|
|
10
|
-
import { Documentable } from './types';
|
|
11
|
-
|
|
12
|
-
export function adaptMethod(
|
|
13
|
-
method: MethodMirror,
|
|
14
|
-
linkGenerator: GetRenderableContentByTypeName,
|
|
15
|
-
baseHeadingLevel: number,
|
|
16
|
-
): RenderableMethod {
|
|
17
|
-
function buildTitle(method: MethodMirrorWithInheritance): string {
|
|
18
|
-
const { name, parameters } = method;
|
|
19
|
-
const parametersString = parameters.map((param) => param.name).join(', ');
|
|
20
|
-
return `${name}(${parametersString})`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function buildSignature(method: MethodMirrorWithInheritance): CodeBlock {
|
|
24
|
-
const { access_modifier, typeReference, name, memberModifiers } = method;
|
|
25
|
-
const parameters = method.parameters
|
|
26
|
-
.map((param) => `${param.typeReference.rawDeclaration} ${param.name}`)
|
|
27
|
-
.join(', ');
|
|
28
|
-
const members = memberModifiers.length > 0 ? `${memberModifiers.join(' ')} ` : '';
|
|
29
|
-
return {
|
|
30
|
-
__type: 'code-block',
|
|
31
|
-
language: 'apex',
|
|
32
|
-
content: [`${access_modifier} ${members}${typeReference.rawDeclaration} ${name}(${parameters})`],
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return {
|
|
37
|
-
headingLevel: baseHeadingLevel,
|
|
38
|
-
doc: adaptDocumentable(method, linkGenerator, baseHeadingLevel + 1),
|
|
39
|
-
heading: buildTitle(method as MethodMirrorWithInheritance),
|
|
40
|
-
signature: {
|
|
41
|
-
headingLevel: baseHeadingLevel + 1,
|
|
42
|
-
heading: 'Signature',
|
|
43
|
-
value: buildSignature(method as MethodMirrorWithInheritance),
|
|
44
|
-
},
|
|
45
|
-
returnType: {
|
|
46
|
-
headingLevel: baseHeadingLevel + 1,
|
|
47
|
-
heading: 'Return Type',
|
|
48
|
-
value: {
|
|
49
|
-
...adaptDescribable(method.docComment?.returnAnnotation?.bodyLines, linkGenerator),
|
|
50
|
-
type: linkGenerator(method.typeReference.rawDeclaration),
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
throws: {
|
|
54
|
-
headingLevel: baseHeadingLevel + 1,
|
|
55
|
-
heading: 'Throws',
|
|
56
|
-
value: method.docComment?.throwsAnnotations.map((thrown) => mapThrows(thrown, linkGenerator)),
|
|
57
|
-
},
|
|
58
|
-
parameters: {
|
|
59
|
-
headingLevel: baseHeadingLevel + 1,
|
|
60
|
-
heading: 'Parameters',
|
|
61
|
-
value: method.parameters.map((param) => mapParameters(method, param, linkGenerator)),
|
|
62
|
-
},
|
|
63
|
-
inherited: (method as MethodMirrorWithInheritance).inherited,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export function adaptConstructor(
|
|
68
|
-
typeName: string,
|
|
69
|
-
constructor: ConstructorMirror,
|
|
70
|
-
linkGenerator: GetRenderableContentByTypeName,
|
|
71
|
-
baseHeadingLevel: number,
|
|
72
|
-
): RenderableConstructor {
|
|
73
|
-
function buildTitle(name: string, constructor: ConstructorMirror): string {
|
|
74
|
-
const { parameters } = constructor;
|
|
75
|
-
const parametersString = parameters.map((param) => param.name).join(', ');
|
|
76
|
-
return `${name}(${parametersString})`;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function buildSignature(name: string, constructor: ConstructorMirror): CodeBlock {
|
|
80
|
-
const { access_modifier } = constructor;
|
|
81
|
-
const parameters = constructor.parameters
|
|
82
|
-
.map((param) => `${param.typeReference.rawDeclaration} ${param.name}`)
|
|
83
|
-
.join(', ');
|
|
84
|
-
return {
|
|
85
|
-
__type: 'code-block',
|
|
86
|
-
language: 'apex',
|
|
87
|
-
content: [`${access_modifier} ${name}(${parameters})`],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
doc: adaptDocumentable(constructor, linkGenerator, baseHeadingLevel + 1),
|
|
93
|
-
headingLevel: baseHeadingLevel,
|
|
94
|
-
heading: buildTitle(typeName, constructor),
|
|
95
|
-
signature: {
|
|
96
|
-
headingLevel: baseHeadingLevel + 1,
|
|
97
|
-
heading: 'Signature',
|
|
98
|
-
value: buildSignature(typeName, constructor),
|
|
99
|
-
},
|
|
100
|
-
parameters: {
|
|
101
|
-
headingLevel: baseHeadingLevel + 1,
|
|
102
|
-
heading: 'Parameters',
|
|
103
|
-
value: constructor.parameters.map((param) => mapParameters(constructor, param, linkGenerator)),
|
|
104
|
-
},
|
|
105
|
-
throws: {
|
|
106
|
-
headingLevel: baseHeadingLevel + 1,
|
|
107
|
-
heading: 'Throws',
|
|
108
|
-
value: constructor.docComment?.throwsAnnotations.map((thrown) => mapThrows(thrown, linkGenerator)),
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function mapParameters(
|
|
114
|
-
documentable: Documentable,
|
|
115
|
-
param: ParameterMirror,
|
|
116
|
-
linkGenerator: GetRenderableContentByTypeName,
|
|
117
|
-
) {
|
|
118
|
-
const paramAnnotation = documentable.docComment?.paramAnnotations.find(
|
|
119
|
-
(pa) => pa.paramName.toLowerCase() === param.name.toLowerCase(),
|
|
120
|
-
);
|
|
121
|
-
return {
|
|
122
|
-
...adaptDescribable(paramAnnotation?.bodyLines, linkGenerator),
|
|
123
|
-
name: param.name,
|
|
124
|
-
type: linkGenerator(param.typeReference.rawDeclaration),
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function mapThrows(thrown: ThrowsAnnotation, linkGenerator: GetRenderableContentByTypeName) {
|
|
129
|
-
return {
|
|
130
|
-
...adaptDescribable(thrown.bodyLines, linkGenerator),
|
|
131
|
-
type: linkGenerator(thrown.exceptionName),
|
|
132
|
-
};
|
|
133
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { MarkdownGeneratorConfig } from '../generate-docs';
|
|
2
|
-
import { DocPageReference, ParsedFile } from '../../shared/types';
|
|
3
|
-
import { Type } from '@cparra/apex-reflection';
|
|
4
|
-
|
|
5
|
-
export function parsedFilesToReferenceGuide(
|
|
6
|
-
config: MarkdownGeneratorConfig,
|
|
7
|
-
parsedFiles: ParsedFile[],
|
|
8
|
-
): Record<string, DocPageReference> {
|
|
9
|
-
return parsedFiles.reduce<Record<string, DocPageReference>>((acc, parsedFile) => {
|
|
10
|
-
acc[parsedFile.type.name] = parsedFileToDocPageReference(config, parsedFile);
|
|
11
|
-
return acc;
|
|
12
|
-
}, {});
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function parsedFileToDocPageReference(config: MarkdownGeneratorConfig, parsedFile: ParsedFile): DocPageReference {
|
|
16
|
-
const path = `${slugify(getTypeGroup(parsedFile.type, config))}/${parsedFile.type.name}.md`;
|
|
17
|
-
return {
|
|
18
|
-
source: parsedFile.source,
|
|
19
|
-
displayName: parsedFile.type.name,
|
|
20
|
-
outputDocPath: path,
|
|
21
|
-
referencePath: path,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function getTypeGroup(type: Type, config: MarkdownGeneratorConfig): string {
|
|
26
|
-
const groupAnnotation = type.docComment?.annotations.find((annotation) => annotation.name.toLowerCase() === 'group');
|
|
27
|
-
return groupAnnotation?.body ?? config.defaultGroupName;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function slugify(text: string): string {
|
|
31
|
-
return text
|
|
32
|
-
.toLowerCase()
|
|
33
|
-
.replace(/[^a-z0-9\s-]/g, '') // Remove non-alphanumeric characters except spaces and hyphens
|
|
34
|
-
.trim()
|
|
35
|
-
.replace(/\s+/g, '-') // Replace spaces with hyphens
|
|
36
|
-
.replace(/-+/g, '-'); // Replace multiple hyphens with a single hyphen
|
|
37
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { DocPageReference, ParsedFile } from '../../shared/types';
|
|
2
|
-
import { Link, ReferenceGuideReference, Renderable, RenderableBundle } from './types';
|
|
3
|
-
import { typeToRenderable } from './apex-types';
|
|
4
|
-
import { adaptDescribable } from './documentables';
|
|
5
|
-
import { MarkdownGeneratorConfig } from '../generate-docs';
|
|
6
|
-
import { apply } from '#utils/fp';
|
|
7
|
-
import { Type } from '@cparra/apex-reflection';
|
|
8
|
-
import { generateLink } from './generate-link';
|
|
9
|
-
|
|
10
|
-
export function parsedFilesToRenderableBundle(
|
|
11
|
-
config: MarkdownGeneratorConfig,
|
|
12
|
-
parsedFiles: ParsedFile[],
|
|
13
|
-
references: Record<string, DocPageReference>,
|
|
14
|
-
): RenderableBundle {
|
|
15
|
-
const referenceFinder = apply(generateLink(config.linkingStrategy), references);
|
|
16
|
-
|
|
17
|
-
function toReferenceGuide(parsedFiles: ParsedFile[]): Record<string, ReferenceGuideReference[]> {
|
|
18
|
-
return parsedFiles.reduce<Record<string, ReferenceGuideReference[]>>(
|
|
19
|
-
addToReferenceGuide(apply(referenceFinder, '__base__'), config, references),
|
|
20
|
-
{},
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function toRenderables(parsedFiles: ParsedFile[]): Renderable[] {
|
|
25
|
-
return parsedFiles.reduce<Renderable[]>((acc, parsedFile) => {
|
|
26
|
-
const renderable = typeToRenderable(parsedFile, apply(referenceFinder, parsedFile.source.name), config);
|
|
27
|
-
acc.push(renderable);
|
|
28
|
-
return acc;
|
|
29
|
-
}, []);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return {
|
|
33
|
-
referencesByGroup: toReferenceGuide(parsedFiles),
|
|
34
|
-
renderables: toRenderables(parsedFiles),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function addToReferenceGuide(
|
|
39
|
-
findLinkFromHome: (referenceName: string) => string | Link,
|
|
40
|
-
config: MarkdownGeneratorConfig,
|
|
41
|
-
references: Record<string, DocPageReference>,
|
|
42
|
-
) {
|
|
43
|
-
return (acc: Record<string, ReferenceGuideReference[]>, parsedFile: ParsedFile) => {
|
|
44
|
-
const group: string = getTypeGroup(parsedFile.type, config);
|
|
45
|
-
if (!acc[group]) {
|
|
46
|
-
acc[group] = [];
|
|
47
|
-
}
|
|
48
|
-
acc[group].push({
|
|
49
|
-
reference: references[parsedFile.type.name],
|
|
50
|
-
title: findLinkFromHome(parsedFile.type.name) as Link,
|
|
51
|
-
description: adaptDescribable(parsedFile.type.docComment?.descriptionLines, findLinkFromHome).description ?? null,
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
return acc;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function getTypeGroup(type: Type, config: MarkdownGeneratorConfig): string {
|
|
59
|
-
const groupAnnotation = type.docComment?.annotations.find((annotation) => annotation.name.toLowerCase() === 'group');
|
|
60
|
-
return groupAnnotation?.body ?? config.defaultGroupName;
|
|
61
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { ReferenceGuideReference, Renderable, RenderableBundle, RenderableEnum } from './types';
|
|
2
|
-
import { DocPageData, DocumentationBundle } from '../../shared/types';
|
|
3
|
-
import { pipe } from 'fp-ts/function';
|
|
4
|
-
import { CompilationRequest, Template } from '../templates/template';
|
|
5
|
-
import { enumMarkdownTemplate } from '../templates/enum-template';
|
|
6
|
-
import { interfaceMarkdownTemplate } from '../templates/interface-template';
|
|
7
|
-
import { classMarkdownTemplate } from '../templates/class-template';
|
|
8
|
-
import { markdownDefaults } from '../../../defaults';
|
|
9
|
-
|
|
10
|
-
export const convertToDocumentationBundle = (
|
|
11
|
-
referenceGuideTitle: string,
|
|
12
|
-
referenceGuideTemplate: string,
|
|
13
|
-
{ referencesByGroup, renderables }: RenderableBundle,
|
|
14
|
-
): DocumentationBundle => ({
|
|
15
|
-
referenceGuide: {
|
|
16
|
-
frontmatter: null,
|
|
17
|
-
content: referencesToReferenceGuideContent(referenceGuideTitle, referencesByGroup, referenceGuideTemplate),
|
|
18
|
-
outputDocPath: 'index.md',
|
|
19
|
-
},
|
|
20
|
-
docs: renderables.map((renderable: Renderable) =>
|
|
21
|
-
renderableToPageData(Object.values(referencesByGroup).flat(), renderable),
|
|
22
|
-
),
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
function referencesToReferenceGuideContent(
|
|
26
|
-
referenceGuideTitle: string,
|
|
27
|
-
references: { [key: string]: ReferenceGuideReference[] },
|
|
28
|
-
template: string,
|
|
29
|
-
): string {
|
|
30
|
-
function alphabetizeReferences(references: { [key: string]: ReferenceGuideReference[] }): {
|
|
31
|
-
[key: string]: ReferenceGuideReference[];
|
|
32
|
-
} {
|
|
33
|
-
return Object.keys(references)
|
|
34
|
-
.sort((a, b) => a.localeCompare(b))
|
|
35
|
-
.reduce<{ [key: string]: ReferenceGuideReference[] }>((acc, key) => {
|
|
36
|
-
acc[key] = references[key].sort((a, b) => a.title.toString().localeCompare(b.title.toString()));
|
|
37
|
-
return acc;
|
|
38
|
-
}, {});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return pipe(references, alphabetizeReferences, (references) =>
|
|
42
|
-
compile({
|
|
43
|
-
template: template,
|
|
44
|
-
source: { referenceGuideTitle: referenceGuideTitle, references },
|
|
45
|
-
}),
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function renderableToPageData(referenceGuideReference: ReferenceGuideReference[], renderable: Renderable): DocPageData {
|
|
50
|
-
function buildDocOutput(renderable: Renderable, docContents: string): DocPageData {
|
|
51
|
-
const reference: ReferenceGuideReference = referenceGuideReference.find(
|
|
52
|
-
(ref) => ref.reference.source.name.toLowerCase() === renderable.name.toLowerCase(),
|
|
53
|
-
)!;
|
|
54
|
-
|
|
55
|
-
return {
|
|
56
|
-
source: {
|
|
57
|
-
filePath: renderable.filePath,
|
|
58
|
-
name: renderable.name,
|
|
59
|
-
type: renderable.type,
|
|
60
|
-
},
|
|
61
|
-
outputDocPath: reference!.reference.outputDocPath,
|
|
62
|
-
frontmatter: null,
|
|
63
|
-
content: docContents,
|
|
64
|
-
group: renderable.doc.group ?? markdownDefaults.defaultGroupName,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return pipe(renderable, resolveApexTypeTemplate, compile, (docContents) => buildDocOutput(renderable, docContents));
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function resolveApexTypeTemplate(renderable: Renderable): CompilationRequest {
|
|
72
|
-
function getTemplate(renderable: Renderable): string {
|
|
73
|
-
switch (renderable.type) {
|
|
74
|
-
case 'enum':
|
|
75
|
-
return enumMarkdownTemplate;
|
|
76
|
-
case 'interface':
|
|
77
|
-
return interfaceMarkdownTemplate;
|
|
78
|
-
case 'class':
|
|
79
|
-
return classMarkdownTemplate;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return {
|
|
84
|
-
template: getTemplate(renderable),
|
|
85
|
-
source: renderable as RenderableEnum,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function compile(request: CompilationRequest): string {
|
|
90
|
-
return Template.getInstance().compile(request);
|
|
91
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { CodeBlock, EmptyLine, InlineCode, RenderableContent } from './types';
|
|
2
|
-
|
|
3
|
-
export function isEmptyLine(content: RenderableContent): content is EmptyLine {
|
|
4
|
-
return Object.keys(content).includes('__type') && (content as { __type: string }).__type === 'empty-line';
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function isCodeBlock(content: RenderableContent): content is CodeBlock {
|
|
8
|
-
return Object.keys(content).includes('__type') && (content as { __type: string }).__type === 'code-block';
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function isInlineCode(content: RenderableContent): content is InlineCode {
|
|
12
|
-
return Object.keys(content).includes('__type') && (content as { __type: string }).__type === 'inline-code';
|
|
13
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
// Apex Reflection-based types
|
|
2
|
-
import {
|
|
3
|
-
Annotation as MirrorAnnotation,
|
|
4
|
-
ClassMirror,
|
|
5
|
-
DocComment,
|
|
6
|
-
FieldMirror,
|
|
7
|
-
MethodMirror,
|
|
8
|
-
PropertyMirror,
|
|
9
|
-
} from '@cparra/apex-reflection';
|
|
10
|
-
import { DocPageReference } from '../../shared/types';
|
|
11
|
-
|
|
12
|
-
export type Describable = string[] | undefined;
|
|
13
|
-
|
|
14
|
-
export type Documentable = {
|
|
15
|
-
annotations: MirrorAnnotation[];
|
|
16
|
-
docComment?: DocComment;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export type InheritanceSupport = { inherited: boolean };
|
|
20
|
-
export type ClassMirrorWithInheritanceChain = ClassMirror & { inheritanceChain: string[] };
|
|
21
|
-
export type FieldMirrorWithInheritance = FieldMirror & InheritanceSupport;
|
|
22
|
-
export type PropertyMirrorWithInheritance = PropertyMirror & InheritanceSupport;
|
|
23
|
-
export type MethodMirrorWithInheritance = MethodMirror & InheritanceSupport;
|
|
24
|
-
|
|
25
|
-
// Renderable types
|
|
26
|
-
|
|
27
|
-
export type ReferenceGuideReference = {
|
|
28
|
-
reference: DocPageReference;
|
|
29
|
-
title: Link;
|
|
30
|
-
description: RenderableContent[] | null;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export type RenderableBundle = {
|
|
34
|
-
// References are grouped by their defined @group annotation
|
|
35
|
-
referencesByGroup: Record<string, ReferenceGuideReference[]>;
|
|
36
|
-
renderables: Renderable[];
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export type Link = {
|
|
40
|
-
readonly __type: 'link';
|
|
41
|
-
title: string;
|
|
42
|
-
url: string;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export type EmptyLine = {
|
|
46
|
-
__type: 'empty-line';
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export type StringOrLink = string | Link;
|
|
50
|
-
|
|
51
|
-
export type GetRenderableContentByTypeName = (typeName: string) => StringOrLink;
|
|
52
|
-
|
|
53
|
-
export type RenderableContent = StringOrLink | EmptyLine | CodeBlock | InlineCode;
|
|
54
|
-
|
|
55
|
-
type EnumValue = {
|
|
56
|
-
value: string;
|
|
57
|
-
description?: RenderableContent[];
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
type CustomTag = {
|
|
61
|
-
name: string;
|
|
62
|
-
description?: RenderableContent[];
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Represents an annotation to a top-level type. For example, @NamespaceAccessible.
|
|
67
|
-
*/
|
|
68
|
-
type Annotation = string;
|
|
69
|
-
|
|
70
|
-
type CodeBlock = {
|
|
71
|
-
readonly __type: 'code-block';
|
|
72
|
-
language: string;
|
|
73
|
-
content: string[];
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
type InlineCode = {
|
|
77
|
-
readonly __type: 'inline-code';
|
|
78
|
-
content: string;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
type RenderableDocumentation = {
|
|
82
|
-
annotations?: Annotation[];
|
|
83
|
-
description?: RenderableContent[];
|
|
84
|
-
customTags?: CustomTag[];
|
|
85
|
-
example: RenderableSection<RenderableContent[] | undefined>;
|
|
86
|
-
group?: string;
|
|
87
|
-
author?: string;
|
|
88
|
-
date?: string;
|
|
89
|
-
sees?: StringOrLink[];
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
type RenderableType = {
|
|
93
|
-
namespace?: string;
|
|
94
|
-
headingLevel: number;
|
|
95
|
-
heading: string;
|
|
96
|
-
name: string;
|
|
97
|
-
meta: {
|
|
98
|
-
accessModifier: string;
|
|
99
|
-
};
|
|
100
|
-
doc: RenderableDocumentation;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
type RenderableMethodParameter = {
|
|
104
|
-
name: string;
|
|
105
|
-
type: StringOrLink;
|
|
106
|
-
description?: RenderableContent[];
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
type TypeSource = {
|
|
110
|
-
type: StringOrLink;
|
|
111
|
-
description?: RenderableContent[];
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
type RenderableConstructor = {
|
|
115
|
-
headingLevel: number;
|
|
116
|
-
heading: string;
|
|
117
|
-
signature: RenderableSection<CodeBlock>;
|
|
118
|
-
parameters?: RenderableSection<RenderableMethodParameter[] | undefined>;
|
|
119
|
-
throws?: RenderableSection<TypeSource[] | undefined>;
|
|
120
|
-
doc: RenderableDocumentation;
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
type RenderableMethod = {
|
|
124
|
-
doc: RenderableDocumentation;
|
|
125
|
-
headingLevel: number;
|
|
126
|
-
heading: string;
|
|
127
|
-
signature: RenderableSection<CodeBlock>;
|
|
128
|
-
parameters: RenderableSection<RenderableMethodParameter[] | undefined>;
|
|
129
|
-
returnType: RenderableSection<TypeSource>;
|
|
130
|
-
throws: RenderableSection<TypeSource[] | undefined>;
|
|
131
|
-
inherited?: boolean;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
type RenderableField = {
|
|
135
|
-
headingLevel: number;
|
|
136
|
-
heading: string;
|
|
137
|
-
type: RenderableSection<StringOrLink>;
|
|
138
|
-
accessModifier: string;
|
|
139
|
-
inherited?: boolean;
|
|
140
|
-
signature: RenderableSection<CodeBlock>;
|
|
141
|
-
doc: RenderableDocumentation;
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
export type RenderableSection<T> = {
|
|
145
|
-
headingLevel: number;
|
|
146
|
-
heading: string;
|
|
147
|
-
value: T;
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
export type GroupedMember<T> = RenderableSection<T[]> & { groupDescription: string | undefined };
|
|
151
|
-
|
|
152
|
-
export type RenderableClass = RenderableType & {
|
|
153
|
-
type: 'class';
|
|
154
|
-
extends?: StringOrLink[];
|
|
155
|
-
implements?: StringOrLink[];
|
|
156
|
-
classModifier?: string;
|
|
157
|
-
sharingModifier?: string;
|
|
158
|
-
constructors: RenderableSection<RenderableConstructor[] | GroupedMember<RenderableConstructor>[]> & {
|
|
159
|
-
isGrouped: boolean;
|
|
160
|
-
};
|
|
161
|
-
methods: RenderableSection<RenderableMethod[] | GroupedMember<RenderableMethod>[]> & { isGrouped: boolean };
|
|
162
|
-
fields: RenderableSection<RenderableField[] | GroupedMember<RenderableField>[]> & { isGrouped: boolean };
|
|
163
|
-
properties: RenderableSection<RenderableField[] | GroupedMember<RenderableField>[]> & { isGrouped: boolean };
|
|
164
|
-
innerClasses: RenderableSection<RenderableClass[]>;
|
|
165
|
-
innerEnums: RenderableSection<RenderableEnum[]>;
|
|
166
|
-
innerInterfaces: RenderableSection<RenderableInterface[]>;
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
export type RenderableInterface = RenderableType & {
|
|
170
|
-
type: 'interface';
|
|
171
|
-
extends?: StringOrLink[];
|
|
172
|
-
methods: RenderableSection<RenderableMethod[]>;
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
export type RenderableEnum = RenderableType & {
|
|
176
|
-
type: 'enum';
|
|
177
|
-
values: RenderableSection<EnumValue[]>;
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
export type Renderable = (RenderableClass | RenderableInterface | RenderableEnum) & { filePath: string };
|