@cparra/apexdocs 2.25.0-alpha.1 → 2.25.0-alpha.3
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 +37 -0
- package/{lib → dist}/__spec__/core/expect-extensions.js +3 -2
- package/dist/__spec__/core/expect-extensions.js.map +1 -0
- package/{lib → dist}/__spec__/core/generating-class-docs.spec.js +54 -37
- package/dist/__spec__/core/generating-class-docs.spec.js.map +1 -0
- package/{lib → dist}/__spec__/core/generating-enum-docs.spec.js +25 -22
- package/dist/__spec__/core/generating-enum-docs.spec.js.map +1 -0
- package/{lib → dist}/__spec__/core/generating-interface-docs.spec.js +33 -30
- package/dist/__spec__/core/generating-interface-docs.spec.js.map +1 -0
- package/{lib → dist}/__spec__/core/generating-reference-guide.spec.js +8 -7
- package/dist/__spec__/core/generating-reference-guide.spec.js.map +1 -0
- package/dist/__spec__/core/test-helpers.d.ts +2 -0
- package/dist/__spec__/core/test-helpers.js +12 -0
- package/dist/__spec__/core/test-helpers.js.map +1 -0
- package/{lib → dist}/application/Apexdocs.d.ts +4 -2
- package/{lib → dist}/application/Apexdocs.js +49 -16
- package/dist/application/Apexdocs.js.map +1 -0
- package/dist/application/generators/generate-markdown-files.d.ts +3 -0
- package/dist/application/generators/generate-markdown-files.js +64 -0
- package/dist/application/generators/generate-markdown-files.js.map +1 -0
- package/dist/cli/args.d.ts +39 -0
- package/{lib/cli/generate.js → dist/cli/args.js} +37 -40
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/generate.js +291 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/core/__test__/inheritance-chain.test.d.ts +1 -0
- package/dist/core/__test__/inheritance-chain.test.js +42 -0
- package/dist/core/__test__/inheritance-chain.test.js.map +1 -0
- package/dist/core/adapters/apex-types.d.ts +6 -0
- package/{lib → dist/core}/adapters/apex-types.js +18 -21
- package/dist/core/adapters/apex-types.js.map +1 -0
- package/{lib → dist/core}/adapters/documentables.d.ts +1 -1
- package/dist/core/adapters/documentables.js +154 -0
- package/dist/core/adapters/documentables.js.map +1 -0
- package/{lib → dist/core}/adapters/fields-and-properties.d.ts +1 -2
- package/{lib → dist/core}/adapters/fields-and-properties.js +11 -6
- package/dist/core/adapters/fields-and-properties.js.map +1 -0
- package/{lib → dist/core}/adapters/methods-and-constructors.d.ts +1 -1
- package/{lib → dist/core}/adapters/methods-and-constructors.js +24 -16
- package/dist/core/adapters/methods-and-constructors.js.map +1 -0
- package/{lib → dist/core}/adapters/references.d.ts +2 -3
- package/{lib → dist/core}/adapters/references.js +5 -9
- package/dist/core/adapters/references.js.map +1 -0
- package/dist/core/adapters/type-utils.d.ts +3 -0
- package/dist/core/adapters/type-utils.js +12 -0
- package/dist/core/adapters/type-utils.js.map +1 -0
- package/dist/core/apex-bundle.js.map +1 -0
- package/{lib → dist}/core/generate-docs.d.ts +8 -3
- package/{lib → dist}/core/generate-docs.js +79 -24
- package/dist/core/generate-docs.js.map +1 -0
- package/dist/core/inheritance-chain.d.ts +2 -0
- package/{lib/index.js → dist/core/inheritance-chain.js} +11 -4
- package/dist/core/inheritance-chain.js.map +1 -0
- package/dist/core/manifest.js.map +1 -0
- package/{lib → dist}/core/template.js +12 -7
- package/{lib → dist}/core/template.js.map +1 -1
- package/{lib → dist}/core/templates/reference-guide.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/{lib → dist}/model/markdown-file.d.ts +1 -1
- package/{lib → dist}/model/markdown-file.js +1 -1
- package/dist/model/markdown-file.js.map +1 -0
- package/{lib → dist}/model/markdown-generation-util/doc-comment-annotation-util.js +3 -2
- package/dist/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -0
- package/{lib → dist}/model/markdown-generation-util/field-declaration-util.d.ts +1 -1
- package/{lib → dist}/model/markdown-generation-util/field-declaration-util.js +2 -1
- package/dist/model/markdown-generation-util/field-declaration-util.js.map +1 -0
- package/{lib → dist}/model/markdown-generation-util/method-declaration-util.d.ts +1 -1
- package/{lib → dist}/model/markdown-generation-util/method-declaration-util.js +2 -1
- package/dist/model/markdown-generation-util/method-declaration-util.js.map +1 -0
- package/{lib → dist}/model/markdown-generation-util/type-declaration-util.js +2 -1
- package/dist/model/markdown-generation-util/type-declaration-util.js.map +1 -0
- package/{lib → dist}/model/markdown-type-file.d.ts +1 -1
- package/dist/model/markdown-type-file.js.map +1 -0
- package/{lib → dist}/service/apex-file-reader.d.ts +1 -1
- package/{lib → dist}/service/apex-file-reader.js +1 -1
- package/{lib → dist}/service/apex-file-reader.js.map +1 -1
- package/{lib → dist}/service/manifest-factory.d.ts +2 -2
- package/{lib → dist}/service/manifest-factory.js +3 -2
- package/dist/service/manifest-factory.js.map +1 -0
- package/{lib → dist}/service/parser.d.ts +1 -1
- package/{lib → dist}/settings.d.ts +3 -0
- package/{lib → dist}/settings.js +3 -0
- package/{lib → dist}/settings.js.map +1 -1
- package/{lib → dist}/test-helpers/ClassMirrorBuilder.d.ts +4 -0
- package/{lib → dist}/test-helpers/ClassMirrorBuilder.js +11 -1
- package/dist/test-helpers/ClassMirrorBuilder.js.map +1 -0
- package/{lib → dist}/test-helpers/SettingsBuilder.js +1 -0
- package/{lib → dist}/test-helpers/SettingsBuilder.js.map +1 -1
- package/{lib → dist}/transpiler/factory.js +2 -4
- package/dist/transpiler/factory.js.map +1 -0
- package/{lib → dist}/transpiler/markdown/class-file-generatorHelper.d.ts +0 -2
- package/{lib → dist}/transpiler/markdown/class-file-generatorHelper.js +1 -15
- package/dist/transpiler/markdown/class-file-generatorHelper.js.map +1 -0
- package/{lib → dist}/transpiler/markdown/plain-markdown/class-template.js +3 -3
- package/{lib → dist}/transpiler/markdown/plain-markdown/constructors-partial-template.js +1 -1
- package/{lib → dist}/transpiler/markdown/plain-markdown/documentable-partial-template.js +6 -4
- package/{lib → dist}/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +1 -1
- package/{lib → dist}/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +1 -1
- package/{lib → dist}/transpiler/markdown/plain-markdown/methods-partial-template.js +2 -2
- package/{lib → dist}/util/logger.js +1 -1
- package/{lib → dist}/util/logger.js.map +1 -1
- package/{lib → dist}/util/string-utils.js +2 -2
- package/{lib → dist}/util/string-utils.js.map +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +73 -0
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +19 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +6 -2
- package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +3 -1
- package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +2 -2
- package/examples/plain-markdown/docs/index.md +12 -13
- package/examples/plain-markdown/force-app/classes/MultiInheritanceClass.cls +1 -0
- package/examples/plain-markdown/force-app/classes/SampleException.cls +16 -0
- package/jest.config.js +1 -1
- package/package.json +13 -15
- package/src/__spec__/core/generating-class-docs.spec.ts +57 -37
- package/src/__spec__/core/generating-enum-docs.spec.ts +25 -22
- package/src/__spec__/core/generating-interface-docs.spec.ts +33 -30
- package/src/__spec__/core/generating-reference-guide.spec.ts +8 -7
- package/src/__spec__/core/test-helpers.ts +9 -0
- package/src/application/Apexdocs.ts +56 -19
- package/src/application/generators/generate-markdown-files.ts +53 -0
- package/src/cli/args.ts +136 -0
- package/src/cli/generate.ts +11 -135
- package/src/core/__test__/inheritance-chain.test.ts +54 -0
- package/src/{adapters → core/adapters}/__tests__/interface-adapter.spec.ts +13 -11
- package/src/{adapters → core/adapters}/__tests__/references.spec.ts +11 -1
- package/src/{adapters → core/adapters}/apex-types.ts +54 -44
- package/src/core/adapters/documentables.ts +195 -0
- package/src/{adapters → core/adapters}/fields-and-properties.ts +13 -11
- package/src/{adapters → core/adapters}/methods-and-constructors.ts +31 -20
- package/src/{adapters → core/adapters}/references.ts +3 -6
- package/src/core/adapters/type-utils.ts +9 -0
- package/src/core/{renderable → adapters}/types.d.ts +36 -5
- package/src/core/generate-docs.ts +106 -31
- package/src/core/inheritance-chain.ts +23 -0
- package/src/core/template.ts +12 -9
- package/src/core/templates/reference-guide.ts +1 -1
- package/src/model/__tests__/manifest.spec.ts +1 -1
- package/src/model/markdown-file.ts +1 -1
- package/src/model/markdown-generation-util/field-declaration-util.ts +1 -1
- package/src/model/markdown-generation-util/method-declaration-util.ts +1 -1
- package/src/model/markdown-type-file.ts +5 -1
- package/src/service/__tests__/apex-file-reader.spec.ts +1 -0
- package/src/service/apex-file-reader.ts +1 -1
- package/src/service/manifest-factory.ts +2 -2
- package/src/service/parser.ts +1 -1
- package/src/settings.ts +6 -0
- package/src/test-helpers/ClassMirrorBuilder.ts +14 -1
- package/src/test-helpers/SettingsBuilder.ts +1 -0
- package/src/transpiler/factory.ts +2 -4
- package/src/transpiler/markdown/class-file-generatorHelper.ts +1 -18
- package/src/transpiler/markdown/plain-markdown/class-template.ts +3 -3
- package/src/transpiler/markdown/plain-markdown/constructors-partial-template.ts +1 -1
- package/src/transpiler/markdown/plain-markdown/documentable-partial-template.ts +6 -4
- package/src/transpiler/markdown/plain-markdown/fieldsPartialTemplate.ts +1 -1
- package/src/transpiler/markdown/plain-markdown/methods-partial-template.ts +2 -2
- package/src/util/logger.ts +1 -1
- package/tsconfig.json +1 -1
- package/docs/.nojekyll +0 -0
- package/docs/__old/README.md +0 -1
- package/docs/__old/index.html +0 -22
- package/docs/__old/restapi.json +0 -589
- package/docs/__old/types/Classes/nspc.AnotherInterface.md +0 -22
- package/docs/__old/types/Classes/nspc.ChildClass.md +0 -97
- package/docs/__old/types/Main/nspc.GroupedClass.md +0 -10
- package/docs/__old/types/Main/nspc.SampleClass.md +0 -189
- package/docs/__old/types/Misc-Group/nspc.EscapedAnnotations.md +0 -4
- package/docs/__old/types/Misc-Group/nspc.GrandparentClass.md +0 -13
- package/docs/__old/types/Misc-Group/nspc.InterfaceWithInheritance.md +0 -29
- package/docs/__old/types/Misc-Group/nspc.MemberGrouping.md +0 -13
- package/docs/__old/types/Misc-Group/nspc.ParentClass.md +0 -37
- package/docs/__old/types/Misc-Group/nspc.Reference1.md +0 -18
- package/docs/__old/types/Misc-Group/nspc.Reference2.md +0 -12
- package/docs/__old/types/Misc-Group/nspc.Reference3.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference4.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference5.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference6.md +0 -9
- package/docs/__old/types/Misc-Group/nspc.Reference7.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.SampleClassWithoutModifier.md +0 -11
- package/docs/__old/types/Misc-Group/nspc.SampleRestResource.md +0 -104
- package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +0 -33
- package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +0 -14
- package/docs/__old/types/README.md +0 -97
- package/docs/__old/types/Sample-Interfaces/nspc.SampleInterface.md +0 -23
- package/examples/includes/header.md +0 -3
- package/lib/__spec__/core/expect-extensions.js.map +0 -1
- package/lib/__spec__/core/generating-class-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-enum-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-interface-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-reference-guide.spec.js.map +0 -1
- package/lib/adapters/apex-types.d.ts +0 -7
- package/lib/adapters/apex-types.js.map +0 -1
- package/lib/adapters/documentables.js +0 -56
- package/lib/adapters/documentables.js.map +0 -1
- package/lib/adapters/fields-and-properties.js.map +0 -1
- package/lib/adapters/methods-and-constructors.js.map +0 -1
- package/lib/adapters/references.js.map +0 -1
- package/lib/adapters/type-utils.d.ts +0 -2
- package/lib/adapters/type-utils.js +0 -7
- package/lib/adapters/type-utils.js.map +0 -1
- package/lib/application/Apexdocs.js.map +0 -1
- package/lib/cli/generate.js.map +0 -1
- package/lib/core/generate-docs.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/model/apex-bundle.js.map +0 -1
- package/lib/model/inheritance.d.ts +0 -8
- package/lib/model/inheritance.js +0 -3
- package/lib/model/inheritance.js.map +0 -1
- package/lib/model/manifest.js.map +0 -1
- package/lib/model/markdown-file.js.map +0 -1
- package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
- package/lib/model/markdown-generation-util/field-declaration-util.js.map +0 -1
- package/lib/model/markdown-generation-util/method-declaration-util.js.map +0 -1
- package/lib/model/markdown-generation-util/type-declaration-util.js.map +0 -1
- package/lib/model/markdown-type-file.js.map +0 -1
- package/lib/service/manifest-factory.js.map +0 -1
- package/lib/test-helpers/ClassMirrorBuilder.js.map +0 -1
- package/lib/transpiler/factory.js.map +0 -1
- package/lib/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -9
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +0 -42
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +0 -1
- package/src/adapters/documentables.ts +0 -93
- package/src/adapters/type-utils.ts +0 -5
- package/src/adapters/types.d.ts +0 -8
- package/src/model/inheritance.ts +0 -7
- package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +0 -42
- /package/{lib → dist}/__spec__/core/expect-extensions.d.ts +0 -0
- /package/{lib → dist}/__spec__/core/generating-class-docs.spec.d.ts +0 -0
- /package/{lib → dist}/__spec__/core/generating-enum-docs.spec.d.ts +0 -0
- /package/{lib → dist}/__spec__/core/generating-interface-docs.spec.d.ts +0 -0
- /package/{lib → dist}/__spec__/core/generating-reference-guide.spec.d.ts +0 -0
- /package/{lib → dist}/cli/generate.d.ts +0 -0
- /package/{lib/model → dist/core}/apex-bundle.d.ts +0 -0
- /package/{lib/model → dist/core}/apex-bundle.js +0 -0
- /package/{lib/model → dist/core}/manifest.d.ts +0 -0
- /package/{lib/model → dist/core}/manifest.js +0 -0
- /package/{lib → dist}/core/template.d.ts +0 -0
- /package/{lib → dist}/core/templates/reference-guide.d.ts +0 -0
- /package/{lib → dist}/core/templates/reference-guide.js.map +0 -0
- /package/{lib → dist}/index.js.map +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -0
- /package/{lib → dist}/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -0
- /package/{lib → dist}/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -0
- /package/{lib → dist}/model/markdown-generation-util/index.d.ts +0 -0
- /package/{lib → dist}/model/markdown-generation-util/index.js +0 -0
- /package/{lib → dist}/model/markdown-generation-util/index.js.map +0 -0
- /package/{lib → dist}/model/markdown-generation-util/type-declaration-util.d.ts +0 -0
- /package/{lib → dist}/model/markdown-home-file.d.ts +0 -0
- /package/{lib → dist}/model/markdown-home-file.js +0 -0
- /package/{lib → dist}/model/markdown-home-file.js.map +0 -0
- /package/{lib → dist}/model/markdown-type-file.js +0 -0
- /package/{lib → dist}/model/openapi/apex-doc-types.d.ts +0 -0
- /package/{lib → dist}/model/openapi/apex-doc-types.js +0 -0
- /package/{lib → dist}/model/openapi/apex-doc-types.js.map +0 -0
- /package/{lib → dist}/model/openapi/open-api-types.d.ts +0 -0
- /package/{lib → dist}/model/openapi/open-api-types.js +0 -0
- /package/{lib → dist}/model/openapi/open-api-types.js.map +0 -0
- /package/{lib → dist}/model/openapi/open-api.d.ts +0 -0
- /package/{lib → dist}/model/openapi/open-api.js +0 -0
- /package/{lib → dist}/model/openapi/open-api.js.map +0 -0
- /package/{lib → dist}/model/openapi/openapi-type-file.d.ts +0 -0
- /package/{lib → dist}/model/openapi/openapi-type-file.js +0 -0
- /package/{lib → dist}/model/openapi/openapi-type-file.js.map +0 -0
- /package/{lib → dist}/model/outputFile.d.ts +0 -0
- /package/{lib → dist}/model/outputFile.js +0 -0
- /package/{lib → dist}/model/outputFile.js.map +0 -0
- /package/{lib → dist}/model/types-repository.d.ts +0 -0
- /package/{lib → dist}/model/types-repository.js +0 -0
- /package/{lib → dist}/model/types-repository.js.map +0 -0
- /package/{lib → dist}/service/file-system.d.ts +0 -0
- /package/{lib → dist}/service/file-system.js +0 -0
- /package/{lib → dist}/service/file-system.js.map +0 -0
- /package/{lib → dist}/service/file-writer.d.ts +0 -0
- /package/{lib → dist}/service/file-writer.js +0 -0
- /package/{lib → dist}/service/file-writer.js.map +0 -0
- /package/{lib → dist}/service/metadata-processor.d.ts +0 -0
- /package/{lib → dist}/service/metadata-processor.js +0 -0
- /package/{lib → dist}/service/metadata-processor.js.map +0 -0
- /package/{lib → dist}/service/parser.js +0 -0
- /package/{lib → dist}/service/parser.js.map +0 -0
- /package/{lib → dist}/service/state.d.ts +0 -0
- /package/{lib → dist}/service/state.js +0 -0
- /package/{lib → dist}/service/state.js.map +0 -0
- /package/{lib → dist}/service/walkers/class-walker.d.ts +0 -0
- /package/{lib → dist}/service/walkers/class-walker.js +0 -0
- /package/{lib → dist}/service/walkers/class-walker.js.map +0 -0
- /package/{lib → dist}/service/walkers/enum-walker.d.ts +0 -0
- /package/{lib → dist}/service/walkers/enum-walker.js +0 -0
- /package/{lib → dist}/service/walkers/enum-walker.js.map +0 -0
- /package/{lib → dist}/service/walkers/interface-walker.d.ts +0 -0
- /package/{lib → dist}/service/walkers/interface-walker.js +0 -0
- /package/{lib → dist}/service/walkers/interface-walker.js.map +0 -0
- /package/{lib → dist}/service/walkers/walker-factory.d.ts +0 -0
- /package/{lib → dist}/service/walkers/walker-factory.js +0 -0
- /package/{lib → dist}/service/walkers/walker-factory.js.map +0 -0
- /package/{lib → dist}/service/walkers/walker.d.ts +0 -0
- /package/{lib → dist}/service/walkers/walker.js +0 -0
- /package/{lib → dist}/service/walkers/walker.js.map +0 -0
- /package/{lib → dist}/test-helpers/AnnotationBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/AnnotationBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/AnnotationBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/DocCommentAnnotationBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/DocCommentAnnotationBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/DocCommentBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/DocCommentBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/DocCommentBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/FieldMirrorBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/FieldMirrorBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/FieldMirrorBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/InterfaceMirrorBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/InterfaceMirrorBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/InterfaceMirrorBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/MethodMirrorBuilder.d.ts +0 -0
- /package/{lib → dist}/test-helpers/MethodMirrorBuilder.js +0 -0
- /package/{lib → dist}/test-helpers/MethodMirrorBuilder.js.map +0 -0
- /package/{lib → dist}/test-helpers/SettingsBuilder.d.ts +0 -0
- /package/{lib → dist}/transpiler/factory.d.ts +0 -0
- /package/{lib → dist}/transpiler/file-container.d.ts +0 -0
- /package/{lib → dist}/transpiler/file-container.js +0 -0
- /package/{lib → dist}/transpiler/file-container.js.map +0 -0
- /package/{lib → dist}/transpiler/generator-choices.d.ts +0 -0
- /package/{lib → dist}/transpiler/generator-choices.js +0 -0
- /package/{lib → dist}/transpiler/generator-choices.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/docsify/docsify-docs-processor.js +0 -0
- /package/{lib → dist}/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -0
- /package/{lib → dist}/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/markdown-transpiler-base.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/markdown-transpiler-base.js +0 -0
- /package/{lib → dist}/transpiler/markdown/markdown-transpiler-base.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/class-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/class-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/enum-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/enum-template.js +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/enum-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/interface-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/interface-template.js +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/interface-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/methods-partial-template.js.map +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/type-doc-partial.js +0 -0
- /package/{lib → dist}/transpiler/markdown/plain-markdown/type-doc-partial.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/open-api-docs-processor.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/open-api-docs-processor.js +0 -0
- /package/{lib → dist}/transpiler/openapi/open-api-docs-processor.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/Builder.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/Builder.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/Builder.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/MethodParser.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/MethodParser.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/MethodParser.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ReferenceBuilder.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ResponsesBuilder.js +0 -0
- /package/{lib → dist}/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -0
- /package/{lib → dist}/transpiler/processor-type-transpiler.d.ts +0 -0
- /package/{lib → dist}/transpiler/processor-type-transpiler.js +0 -0
- /package/{lib → dist}/transpiler/processor-type-transpiler.js.map +0 -0
- /package/{lib → dist}/transpiler/transpiler.d.ts +0 -0
- /package/{lib → dist}/transpiler/transpiler.js +0 -0
- /package/{lib → dist}/transpiler/transpiler.js.map +0 -0
- /package/{lib → dist}/util/error-logger.d.ts +0 -0
- /package/{lib → dist}/util/error-logger.js +0 -0
- /package/{lib → dist}/util/error-logger.js.map +0 -0
- /package/{lib → dist}/util/logger.d.ts +0 -0
- /package/{lib → dist}/util/string-utils.d.ts +0 -0
- /package/src/{model → core}/apex-bundle.ts +0 -0
- /package/src/{model → core}/manifest.ts +0 -0
package/src/cli/generate.ts
CHANGED
|
@@ -1,140 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import * as yargs from 'yargs';
|
|
3
|
-
|
|
4
|
-
import { Settings } from '../settings';
|
|
5
2
|
import { Apexdocs } from '../application/Apexdocs';
|
|
6
|
-
import {
|
|
7
|
-
import { cosmiconfig } from 'cosmiconfig';
|
|
3
|
+
import { extractArgs } from './args';
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.options({
|
|
14
|
-
sourceDir: {
|
|
15
|
-
type: 'string',
|
|
16
|
-
alias: 's',
|
|
17
|
-
demandOption: true,
|
|
18
|
-
describe: 'The directory location which contains your apex .cls classes.',
|
|
19
|
-
},
|
|
20
|
-
targetDir: {
|
|
21
|
-
type: 'string',
|
|
22
|
-
alias: 't',
|
|
23
|
-
default: './docs/',
|
|
24
|
-
describe: 'The directory location where documentation will be generated to.',
|
|
25
|
-
},
|
|
26
|
-
recursive: {
|
|
27
|
-
type: 'boolean',
|
|
28
|
-
alias: 'r',
|
|
29
|
-
default: true,
|
|
30
|
-
describe: 'Whether .cls classes will be searched for recursively in the directory provided.',
|
|
31
|
-
},
|
|
32
|
-
scope: {
|
|
33
|
-
type: 'string',
|
|
34
|
-
array: true,
|
|
35
|
-
alias: 'p',
|
|
36
|
-
default: ['global'],
|
|
37
|
-
describe:
|
|
38
|
-
'A list of scopes to document. Values should be separated by a space, e.g --scope global public namespaceaccessible. ' +
|
|
39
|
-
'Annotations are supported and should be passed lowercased and without the @ symbol, e.g. namespaceaccessible auraenabled. ' +
|
|
40
|
-
'Note that this setting is ignored if generating an OpenApi REST specification since that looks for classes annotated with @RestResource.',
|
|
41
|
-
},
|
|
42
|
-
targetGenerator: {
|
|
43
|
-
type: 'string',
|
|
44
|
-
alias: 'g',
|
|
45
|
-
default: 'jekyll',
|
|
46
|
-
choices: ['jekyll', 'docsify', 'plain-markdown', 'openapi'],
|
|
47
|
-
describe:
|
|
48
|
-
'Define the static file generator for which the documents will be created. ' +
|
|
49
|
-
'Currently supports jekyll, docsify, plain markdown, and OpenAPI v3.1.0.',
|
|
50
|
-
},
|
|
51
|
-
indexOnly: {
|
|
52
|
-
type: 'boolean',
|
|
53
|
-
default: false,
|
|
54
|
-
describe: 'Defines whether only the index file should be generated.',
|
|
55
|
-
},
|
|
56
|
-
defaultGroupName: {
|
|
57
|
-
type: 'string',
|
|
58
|
-
default: 'Miscellaneous',
|
|
59
|
-
describe: 'Defines the @group name to be used when a file does not specify it.',
|
|
60
|
-
},
|
|
61
|
-
sanitizeHtml: {
|
|
62
|
-
type: 'boolean',
|
|
63
|
-
default: true,
|
|
64
|
-
describe:
|
|
65
|
-
'When on, any special character within your ApexDocs is converted into its HTML code representation. ' +
|
|
66
|
-
'This is specially useful when generic objects are described within the docs, e.g. "List< Foo>", "Map<Foo, Bar>" ' +
|
|
67
|
-
'because otherwise the content within < and > would be treated as HTML tags and not shown in the output. ' +
|
|
68
|
-
'Content in @example blocks are never sanitized.',
|
|
69
|
-
},
|
|
70
|
-
openApiTitle: {
|
|
71
|
-
type: 'string',
|
|
72
|
-
default: 'Apex REST Api',
|
|
73
|
-
describe: 'If using "openapi" as the target generator, this allows you to specify the OpenApi title value.',
|
|
74
|
-
},
|
|
75
|
-
title: {
|
|
76
|
-
type: 'string',
|
|
77
|
-
describe: "If this allows you to specify the title of the generated documentation's home file.",
|
|
78
|
-
default: 'Classes',
|
|
79
|
-
},
|
|
80
|
-
namespace: {
|
|
81
|
-
type: 'string',
|
|
82
|
-
describe:
|
|
83
|
-
'The package namespace, if any. If this value is provided the namespace will be added as a prefix to all of the parsed files. ' +
|
|
84
|
-
"If generating an OpenApi definition, it will be added to the file's Server Url.",
|
|
85
|
-
},
|
|
86
|
-
openApiFileName: {
|
|
87
|
-
type: 'string',
|
|
88
|
-
describe: 'If using "openapi" as the target generator, this allows you to specify the name of the output file.',
|
|
89
|
-
default: 'openapi',
|
|
90
|
-
},
|
|
91
|
-
sortMembersAlphabetically: {
|
|
92
|
-
type: 'boolean',
|
|
93
|
-
describe: 'Whether to sort members alphabetically.',
|
|
94
|
-
default: false,
|
|
95
|
-
},
|
|
96
|
-
includeMetadata: {
|
|
97
|
-
type: 'boolean',
|
|
98
|
-
describe: "Whether to include the file's meta.xml information: Whether it is active and and the API version",
|
|
99
|
-
default: false,
|
|
100
|
-
},
|
|
101
|
-
documentationRootDir: {
|
|
102
|
-
type: 'string',
|
|
103
|
-
describe:
|
|
104
|
-
'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.',
|
|
105
|
-
},
|
|
5
|
+
function main() {
|
|
6
|
+
extractArgs()
|
|
7
|
+
.then((config) => {
|
|
8
|
+
Apexdocs.generate(config);
|
|
106
9
|
})
|
|
107
|
-
.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
Settings.build({
|
|
114
|
-
sourceDirectory: argv.sourceDir,
|
|
115
|
-
recursive: argv.recursive,
|
|
116
|
-
scope: argv.scope,
|
|
117
|
-
outputDir: argv.targetDir,
|
|
118
|
-
targetGenerator: argv.targetGenerator as GeneratorChoices,
|
|
119
|
-
indexOnly: argv.indexOnly,
|
|
120
|
-
defaultGroupName: argv.defaultGroupName,
|
|
121
|
-
sanitizeHtml: argv.sanitizeHtml,
|
|
122
|
-
openApiTitle: argv.openApiTitle,
|
|
123
|
-
title: argv.title,
|
|
124
|
-
namespace: argv.namespace,
|
|
125
|
-
openApiFileName: argv.openApiFileName,
|
|
126
|
-
sortMembersAlphabetically: argv.sortMembersAlphabetically,
|
|
127
|
-
includeMetadata: argv.includeMetadata,
|
|
128
|
-
rootDir: argv.documentationRootDir,
|
|
129
|
-
onAfterProcess: config?.config?.onAfterProcess,
|
|
130
|
-
onBeforeFileWrite: config?.config?.onBeforeFileWrite,
|
|
131
|
-
frontMatterHeader: config?.config?.frontMatterHeader,
|
|
132
|
-
});
|
|
10
|
+
.catch((error) => {
|
|
11
|
+
console.error(error);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
133
15
|
|
|
134
|
-
|
|
135
|
-
Apexdocs.generate();
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.error(error);
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
140
|
-
});
|
|
16
|
+
main();
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ClassMirrorBuilder } from '../../test-helpers/ClassMirrorBuilder';
|
|
2
|
+
import { createInheritanceChain } from '../inheritance-chain';
|
|
3
|
+
|
|
4
|
+
describe('inheritance chain for classes', () => {
|
|
5
|
+
test('returns an empty list of the class does not extend any other class', () => {
|
|
6
|
+
const classMirror = new ClassMirrorBuilder().build();
|
|
7
|
+
const repository = [classMirror];
|
|
8
|
+
|
|
9
|
+
const inheritanceChain = createInheritanceChain(repository, classMirror);
|
|
10
|
+
|
|
11
|
+
expect(inheritanceChain).toEqual([]);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('returns the name of the extended class if it is not found in the repository', () => {
|
|
15
|
+
const classMirror = new ClassMirrorBuilder().withExtendedClass('ExtendedClass').build();
|
|
16
|
+
const repository = [classMirror];
|
|
17
|
+
|
|
18
|
+
const inheritanceChain = createInheritanceChain(repository, classMirror);
|
|
19
|
+
|
|
20
|
+
expect(inheritanceChain).toEqual(['ExtendedClass']);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('returns the extended class when it is present in the repository', () => {
|
|
24
|
+
const classMirror = new ClassMirrorBuilder().withExtendedClass('ExtendedClass').build();
|
|
25
|
+
const extendedClass = new ClassMirrorBuilder().withName('ExtendedClass').build();
|
|
26
|
+
const repository = [classMirror, extendedClass];
|
|
27
|
+
|
|
28
|
+
const inheritanceChain = createInheritanceChain(repository, classMirror);
|
|
29
|
+
|
|
30
|
+
expect(inheritanceChain).toEqual(['ExtendedClass']);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('returns the full inheritance chain when the extended class is also extended', () => {
|
|
34
|
+
const classMirror = new ClassMirrorBuilder().withExtendedClass('ExtendedClass').build();
|
|
35
|
+
const extendedClass = new ClassMirrorBuilder().withName('ExtendedClass').withExtendedClass('SuperClass').build();
|
|
36
|
+
const superClass = new ClassMirrorBuilder().withName('SuperClass').build();
|
|
37
|
+
const repository = [classMirror, extendedClass, superClass];
|
|
38
|
+
|
|
39
|
+
const inheritanceChain = createInheritanceChain(repository, classMirror);
|
|
40
|
+
|
|
41
|
+
expect(inheritanceChain).toEqual(['ExtendedClass', 'SuperClass']);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('returns the inheritance for a class that extends an inner class', () => {
|
|
45
|
+
const classMirror = new ClassMirrorBuilder().withExtendedClass('OuterClass.InnerClass').build();
|
|
46
|
+
const innerClass = new ClassMirrorBuilder().withName('InnerClass').build();
|
|
47
|
+
const outerClass = new ClassMirrorBuilder().withName('OuterClass').addInnerClass(innerClass).build();
|
|
48
|
+
const repository = [classMirror, outerClass];
|
|
49
|
+
|
|
50
|
+
const inheritanceChain = createInheritanceChain(repository, classMirror);
|
|
51
|
+
|
|
52
|
+
expect(inheritanceChain).toEqual(['OuterClass.InnerClass']);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { typeToRenderable } from '../apex-types';
|
|
2
|
+
import { InterfaceMirrorBuilder } from '../../../test-helpers/InterfaceMirrorBuilder';
|
|
3
|
+
import { AnnotationBuilder } from '../../../test-helpers/AnnotationBuilder';
|
|
4
|
+
import { MethodMirrorBuilder, ParameterBuilder } from '../../../test-helpers/MethodMirrorBuilder';
|
|
5
5
|
|
|
6
6
|
function linkGenerator(type: string): string {
|
|
7
7
|
return type;
|
|
@@ -10,14 +10,14 @@ function linkGenerator(type: string): string {
|
|
|
10
10
|
describe('Conversion from InterfaceMirror to InterfaceSource understandable by the templating engine', () => {
|
|
11
11
|
it('converts the name', () => {
|
|
12
12
|
const interfaceMirror = new InterfaceMirrorBuilder().withName('SampleInterface').build();
|
|
13
|
-
const interfaceSource =
|
|
13
|
+
const interfaceSource = typeToRenderable(interfaceMirror, linkGenerator);
|
|
14
14
|
|
|
15
15
|
expect(interfaceSource.name).toBe('SampleInterface');
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
it('converts the access modifier', () => {
|
|
19
19
|
const interfaceMirror = new InterfaceMirrorBuilder().build();
|
|
20
|
-
const interfaceSource =
|
|
20
|
+
const interfaceSource = typeToRenderable(interfaceMirror, linkGenerator);
|
|
21
21
|
|
|
22
22
|
expect(interfaceSource.meta.accessModifier).toBe('public');
|
|
23
23
|
});
|
|
@@ -26,7 +26,7 @@ describe('Conversion from InterfaceMirror to InterfaceSource understandable by t
|
|
|
26
26
|
const interfaceMirror = new InterfaceMirrorBuilder()
|
|
27
27
|
.addAnnotation(new AnnotationBuilder().withName('MyAnnotation').build())
|
|
28
28
|
.build();
|
|
29
|
-
const interfaceSource =
|
|
29
|
+
const interfaceSource = typeToRenderable(interfaceMirror, linkGenerator);
|
|
30
30
|
|
|
31
31
|
expect(interfaceSource.doc.annotations).toEqual(['MYANNOTATION']);
|
|
32
32
|
});
|
|
@@ -44,10 +44,10 @@ describe('Conversion from InterfaceMirror to InterfaceSource understandable by t
|
|
|
44
44
|
)
|
|
45
45
|
.build();
|
|
46
46
|
|
|
47
|
-
const interfaceSource =
|
|
47
|
+
const interfaceSource = typeToRenderable(interfaceMirror, linkGenerator);
|
|
48
48
|
|
|
49
49
|
expect(interfaceSource.methods.value).toHaveLength(1);
|
|
50
|
-
expect(interfaceSource.methods.value[0].signature.value[0]).toBe('public String sampleMethod()');
|
|
50
|
+
expect(interfaceSource.methods.value[0].signature.value.content[0]).toBe('public String sampleMethod()');
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
it('converts method declarations. Method with parameters', () => {
|
|
@@ -72,9 +72,11 @@ describe('Conversion from InterfaceMirror to InterfaceSource understandable by t
|
|
|
72
72
|
)
|
|
73
73
|
.build();
|
|
74
74
|
|
|
75
|
-
const interfaceSource =
|
|
75
|
+
const interfaceSource = typeToRenderable(interfaceMirror, linkGenerator);
|
|
76
76
|
|
|
77
77
|
expect(interfaceSource.methods.value).toHaveLength(1);
|
|
78
|
-
expect(interfaceSource.methods.value[0].signature.value[0]).toBe(
|
|
78
|
+
expect(interfaceSource.methods.value[0].signature.value.content[0]).toBe(
|
|
79
|
+
'public String sampleMethod(String param1)',
|
|
80
|
+
);
|
|
79
81
|
});
|
|
80
82
|
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { replaceInlineReferences } from '../references';
|
|
2
|
-
import { Link } from '
|
|
2
|
+
import { Link } from '../types';
|
|
3
3
|
|
|
4
4
|
function getFileLink(typeName: string): Link {
|
|
5
5
|
return {
|
|
6
|
+
__type: 'link' as const,
|
|
6
7
|
title: typeName,
|
|
7
8
|
url: `/api/${typeName}.html`,
|
|
8
9
|
};
|
|
@@ -10,6 +11,7 @@ function getFileLink(typeName: string): Link {
|
|
|
10
11
|
|
|
11
12
|
function getEmailLink(typeName: string) {
|
|
12
13
|
return {
|
|
14
|
+
__type: 'link' as const,
|
|
13
15
|
title: typeName,
|
|
14
16
|
url: `mailto:${typeName}`,
|
|
15
17
|
};
|
|
@@ -33,6 +35,7 @@ describe('reference utilities', () => {
|
|
|
33
35
|
const expected = [
|
|
34
36
|
'This is a test ',
|
|
35
37
|
{
|
|
38
|
+
__type: 'link',
|
|
36
39
|
title: 'ClassName',
|
|
37
40
|
url: '/api/ClassName.html',
|
|
38
41
|
},
|
|
@@ -44,6 +47,7 @@ describe('reference utilities', () => {
|
|
|
44
47
|
it('replaces links in the format of {@link ClassName}', () => {
|
|
45
48
|
function getFileLinkByTypeName(typeName: string): Link {
|
|
46
49
|
return {
|
|
50
|
+
__type: 'link' as const,
|
|
47
51
|
title: typeName,
|
|
48
52
|
url: `/api/${typeName}.html`,
|
|
49
53
|
};
|
|
@@ -55,6 +59,7 @@ describe('reference utilities', () => {
|
|
|
55
59
|
const expected = [
|
|
56
60
|
'This is a test ',
|
|
57
61
|
{
|
|
62
|
+
__type: 'link',
|
|
58
63
|
title: 'ClassName',
|
|
59
64
|
url: '/api/ClassName.html',
|
|
60
65
|
},
|
|
@@ -68,6 +73,7 @@ describe('reference utilities', () => {
|
|
|
68
73
|
it('replaces emails in the format of {@email email-address}', () => {
|
|
69
74
|
function getLinkByTypeName(typeName: string) {
|
|
70
75
|
return {
|
|
76
|
+
__type: 'link' as const,
|
|
71
77
|
title: typeName,
|
|
72
78
|
url: `mailto:${typeName}`,
|
|
73
79
|
};
|
|
@@ -79,6 +85,7 @@ describe('reference utilities', () => {
|
|
|
79
85
|
const expected = [
|
|
80
86
|
'This is an email ',
|
|
81
87
|
{
|
|
88
|
+
__type: 'link',
|
|
82
89
|
title: 'example@example.com',
|
|
83
90
|
url: 'mailto:example@example.com',
|
|
84
91
|
},
|
|
@@ -95,16 +102,19 @@ describe('reference utilities', () => {
|
|
|
95
102
|
const expected = [
|
|
96
103
|
'This is a test ',
|
|
97
104
|
{
|
|
105
|
+
__type: 'link',
|
|
98
106
|
title: 'ClassName',
|
|
99
107
|
url: '/api/ClassName.html',
|
|
100
108
|
},
|
|
101
109
|
', and ',
|
|
102
110
|
{
|
|
111
|
+
__type: 'link',
|
|
103
112
|
title: 'AnotherClass',
|
|
104
113
|
url: '/api/AnotherClass.html',
|
|
105
114
|
},
|
|
106
115
|
', and an email ',
|
|
107
116
|
{
|
|
117
|
+
__type: 'link',
|
|
108
118
|
title: 'testerson',
|
|
109
119
|
url: 'mailto:testerson',
|
|
110
120
|
},
|
|
@@ -4,16 +4,45 @@ import {
|
|
|
4
4
|
RenderableClass,
|
|
5
5
|
RenderableEnum,
|
|
6
6
|
RenderableInterface,
|
|
7
|
-
Renderable,
|
|
8
7
|
RenderableSection,
|
|
9
8
|
GroupedMember,
|
|
10
|
-
|
|
9
|
+
ClassMirrorWithInheritanceChain,
|
|
10
|
+
FieldMirrorWithInheritance,
|
|
11
|
+
PropertyMirrorWithInheritance,
|
|
12
|
+
} from './types';
|
|
11
13
|
import { adaptDescribable, adaptDocumentable } from './documentables';
|
|
12
|
-
import { GetRenderableContentByTypeName
|
|
13
|
-
import { FieldMirrorWithInheritance, PropertyMirrorWithInheritance } from '../model/inheritance';
|
|
14
|
+
import { GetRenderableContentByTypeName } from './references';
|
|
14
15
|
import { adaptConstructor, adaptMethod } from './methods-and-constructors';
|
|
15
16
|
import { adaptFieldOrProperty } from './fields-and-properties';
|
|
16
17
|
|
|
18
|
+
type GetReturnRenderable<T extends Type> = T extends InterfaceMirror
|
|
19
|
+
? RenderableInterface
|
|
20
|
+
: T extends ClassMirror
|
|
21
|
+
? RenderableClass
|
|
22
|
+
: RenderableEnum;
|
|
23
|
+
|
|
24
|
+
export function typeToRenderable<T extends Type>(
|
|
25
|
+
type: T,
|
|
26
|
+
linkGenerator: GetRenderableContentByTypeName,
|
|
27
|
+
namespace?: string,
|
|
28
|
+
): GetReturnRenderable<T> {
|
|
29
|
+
function getRenderable(): RenderableInterface | RenderableClass | RenderableEnum {
|
|
30
|
+
switch (type.type_name) {
|
|
31
|
+
case 'enum':
|
|
32
|
+
return enumTypeToEnumSource(type as EnumMirror, linkGenerator) as RenderableEnum;
|
|
33
|
+
case 'interface':
|
|
34
|
+
return interfaceTypeToInterfaceSource(type as InterfaceMirror, linkGenerator) as RenderableInterface;
|
|
35
|
+
case 'class':
|
|
36
|
+
return classTypeToClassSource(type as ClassMirrorWithInheritanceChain, linkGenerator) as RenderableClass;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
...(getRenderable() as GetReturnRenderable<T>),
|
|
42
|
+
namespace,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
17
46
|
function baseTypeAdapter(
|
|
18
47
|
type: EnumMirror | InterfaceMirror | ClassMirror,
|
|
19
48
|
linkGenerator: GetRenderableContentByTypeName,
|
|
@@ -40,29 +69,7 @@ function baseTypeAdapter(
|
|
|
40
69
|
};
|
|
41
70
|
}
|
|
42
71
|
|
|
43
|
-
|
|
44
|
-
type: Type,
|
|
45
|
-
linkGenerator: GetRenderableContentByTypeName,
|
|
46
|
-
namespace?: string,
|
|
47
|
-
): Renderable {
|
|
48
|
-
function getRenderable() {
|
|
49
|
-
switch (type.type_name) {
|
|
50
|
-
case 'enum':
|
|
51
|
-
return enumTypeToEnumSource(type as EnumMirror, linkGenerator);
|
|
52
|
-
case 'interface':
|
|
53
|
-
return interfaceTypeToInterfaceSource(type as InterfaceMirror, linkGenerator);
|
|
54
|
-
case 'class':
|
|
55
|
-
return classTypeToClassSource(type as ClassMirror, linkGenerator);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
...getRenderable(),
|
|
61
|
-
namespace,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function enumTypeToEnumSource(
|
|
72
|
+
function enumTypeToEnumSource(
|
|
66
73
|
enumType: EnumMirror,
|
|
67
74
|
linkGenerator: GetRenderableContentByTypeName,
|
|
68
75
|
baseHeadingLevel: number = 1,
|
|
@@ -81,7 +88,7 @@ export function enumTypeToEnumSource(
|
|
|
81
88
|
};
|
|
82
89
|
}
|
|
83
90
|
|
|
84
|
-
|
|
91
|
+
function interfaceTypeToInterfaceSource(
|
|
85
92
|
interfaceType: InterfaceMirror,
|
|
86
93
|
linkGenerator: GetRenderableContentByTypeName,
|
|
87
94
|
baseHeadingLevel: number = 1,
|
|
@@ -89,7 +96,7 @@ export function interfaceTypeToInterfaceSource(
|
|
|
89
96
|
return {
|
|
90
97
|
type: 'interface',
|
|
91
98
|
...baseTypeAdapter(interfaceType, linkGenerator, baseHeadingLevel),
|
|
92
|
-
extends: interfaceType.extended_interfaces.map(
|
|
99
|
+
extends: interfaceType.extended_interfaces.map(linkGenerator),
|
|
93
100
|
methods: {
|
|
94
101
|
headingLevel: baseHeadingLevel + 1,
|
|
95
102
|
heading: 'Methods',
|
|
@@ -98,8 +105,8 @@ export function interfaceTypeToInterfaceSource(
|
|
|
98
105
|
};
|
|
99
106
|
}
|
|
100
107
|
|
|
101
|
-
|
|
102
|
-
classType:
|
|
108
|
+
function classTypeToClassSource(
|
|
109
|
+
classType: ClassMirrorWithInheritanceChain,
|
|
103
110
|
linkGenerator: GetRenderableContentByTypeName,
|
|
104
111
|
baseHeadingLevel: number = 1,
|
|
105
112
|
): RenderableClass {
|
|
@@ -108,36 +115,36 @@ export function classTypeToClassSource(
|
|
|
108
115
|
...baseTypeAdapter(classType, linkGenerator, baseHeadingLevel),
|
|
109
116
|
classModifier: classType.classModifier,
|
|
110
117
|
sharingModifier: classType.sharingModifier,
|
|
111
|
-
implements: classType.implemented_interfaces.map(
|
|
112
|
-
extends: classType.
|
|
113
|
-
methods: adaptMembers('Methods', classType.methods, adaptMethod,
|
|
118
|
+
implements: classType.implemented_interfaces.map(linkGenerator),
|
|
119
|
+
extends: classType.inheritanceChain.map(linkGenerator),
|
|
120
|
+
methods: adaptMembers('Methods', classType.methods, adaptMethod, linkGenerator, baseHeadingLevel + 1),
|
|
114
121
|
constructors: adaptMembers(
|
|
115
122
|
'Constructors',
|
|
116
123
|
classType.constructors,
|
|
117
124
|
(constructor, linkGenerator, baseHeadingLevel) =>
|
|
118
125
|
adaptConstructor(classType.name, constructor, linkGenerator, baseHeadingLevel),
|
|
119
|
-
|
|
126
|
+
linkGenerator,
|
|
120
127
|
baseHeadingLevel + 1,
|
|
121
128
|
),
|
|
122
129
|
fields: adaptMembers(
|
|
123
130
|
'Fields',
|
|
124
131
|
classType.fields as FieldMirrorWithInheritance[],
|
|
125
132
|
adaptFieldOrProperty,
|
|
126
|
-
|
|
133
|
+
linkGenerator,
|
|
127
134
|
baseHeadingLevel + 1,
|
|
128
135
|
),
|
|
129
136
|
properties: adaptMembers(
|
|
130
137
|
'Properties',
|
|
131
138
|
classType.properties as PropertyMirrorWithInheritance[],
|
|
132
139
|
adaptFieldOrProperty,
|
|
133
|
-
|
|
140
|
+
linkGenerator,
|
|
134
141
|
baseHeadingLevel + 1,
|
|
135
142
|
),
|
|
136
143
|
innerClasses: {
|
|
137
144
|
headingLevel: baseHeadingLevel + 1,
|
|
138
145
|
heading: 'Classes',
|
|
139
146
|
value: classType.classes.map((innerClass) =>
|
|
140
|
-
classTypeToClassSource(innerClass, linkGenerator, baseHeadingLevel + 2),
|
|
147
|
+
classTypeToClassSource({ ...innerClass, inheritanceChain: [] }, linkGenerator, baseHeadingLevel + 2),
|
|
141
148
|
),
|
|
142
149
|
},
|
|
143
150
|
innerEnums: {
|
|
@@ -200,12 +207,15 @@ function toGroupedMembers<T extends Groupable, K>(
|
|
|
200
207
|
}
|
|
201
208
|
|
|
202
209
|
function groupByGroupName<T extends Groupable>(members: T[]): Record<string, T[]> {
|
|
203
|
-
return members.reduce(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
210
|
+
return members.reduce(
|
|
211
|
+
(acc, member) => {
|
|
212
|
+
const groupName = member.group ?? 'Other';
|
|
213
|
+
acc[groupName] = acc[groupName] ?? [];
|
|
214
|
+
acc[groupName].push(member);
|
|
215
|
+
return acc;
|
|
216
|
+
},
|
|
217
|
+
{} as Record<string, T[]>,
|
|
218
|
+
);
|
|
209
219
|
}
|
|
210
220
|
|
|
211
221
|
function singleGroup<T extends Groupable, K>(
|