@cparra/apexdocs 2.25.0-alpha.3 → 2.25.0-alpha.5
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/dist/cli/generate.js +2746 -40
- package/dist/defaults-DUwru49Q.js +12 -0
- package/dist/defaults-SH0Rsi5E.js +11 -0
- package/dist/index.d.ts +62 -2
- package/dist/index.js +36 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +320 -0
- package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +1 -1
- package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +1 -1
- package/examples/plain-markdown/docs/index.md +83 -1
- package/examples/plain-markdown/force-app/classes/Url.cls +194 -0
- package/examples/plain-markdown/package.json +2 -2
- package/examples/vitepress/.forceignore +12 -0
- package/examples/vitepress/apexdocs.config.ts +108 -0
- package/examples/vitepress/config/project-scratch-def.json +13 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/config.mts +21 -0
- package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
- package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
- package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
- package/examples/vitepress/docs/api-examples.md +49 -0
- package/examples/vitepress/docs/index-frontmatter.md +16 -0
- package/examples/vitepress/docs/index.md +127 -0
- package/examples/vitepress/docs/markdown-examples.md +85 -0
- package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
- package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
- package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
- package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
- package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
- package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
- package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
- package/examples/vitepress/package-lock.json +2574 -0
- package/examples/vitepress/package.json +18 -0
- package/examples/vitepress/sfdx-project.json +12 -0
- package/jest.config.js +1 -0
- package/package.json +10 -6
- package/src/application/Apexdocs.ts +16 -106
- package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
- package/src/application/apex-file-reader.ts +42 -0
- package/src/application/file-writer.ts +25 -0
- package/src/application/generators/markdown.ts +53 -0
- package/src/application/generators/openapi.ts +56 -0
- package/src/cli/args.ts +17 -110
- package/src/cli/commands/markdown.ts +58 -0
- package/src/cli/generate.ts +7 -7
- package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
- package/src/core/manifest.ts +57 -51
- package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
- package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
- package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
- package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
- package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
- package/src/core/markdown/__test__/test-helpers.ts +22 -0
- package/src/core/markdown/adapters/__tests__/documentables.spec.ts +109 -0
- package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
- package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +12 -1
- package/src/core/{adapters → markdown/adapters}/apex-types.ts +8 -5
- package/src/core/{adapters → markdown/adapters}/documentables.ts +2 -62
- package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +7 -2
- package/src/core/{adapters/references.ts → markdown/adapters/inline.ts} +43 -10
- package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +7 -2
- package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
- package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
- package/src/core/{adapters → markdown/adapters}/type-utils.ts +5 -1
- package/src/core/{adapters → markdown/adapters}/types.d.ts +24 -3
- package/src/core/markdown/generate-docs.ts +158 -0
- package/src/core/markdown/reflection/error-handling.ts +37 -0
- package/src/core/markdown/reflection/filter-scope.ts +13 -0
- package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
- package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
- package/src/core/markdown/reflection/reflect-source.ts +41 -0
- package/src/core/markdown/reflection/sort-members.ts +59 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +1 -1
- package/src/core/markdown/templates/hookable.ts +7 -0
- package/src/core/{template.ts → markdown/templates/template.ts} +15 -12
- package/src/core/markdown/utils.ts +3 -0
- package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
- package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
- package/src/core/openapi/file-container.ts +13 -0
- package/src/{service → core/openapi}/manifest-factory.ts +3 -3
- package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
- package/src/core/openapi/openapi-type-file.ts +14 -0
- package/src/{service → core/openapi}/parser.ts +8 -8
- package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
- package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
- package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
- package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
- package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
- package/src/{model → core/openapi}/types-repository.ts +0 -9
- package/src/core/parse-apex-metadata.ts +14 -0
- package/src/core/settings.ts +56 -0
- package/src/core/shared/types.d.ts +92 -0
- package/src/core/shared/utils.ts +5 -0
- package/src/defaults.ts +8 -0
- package/src/index.ts +34 -2
- package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
- package/src/test-helpers/SettingsBuilder.ts +1 -5
- package/src/util/fp.ts +3 -0
- package/src/util/logger.ts +2 -2
- package/src/util/string-utils.ts +0 -4
- package/tsconfig.json +5 -1
- package/apexdocs.config.ts +0 -13
- package/dist/__spec__/core/expect-extensions.d.ts +0 -3
- package/dist/__spec__/core/expect-extensions.js +0 -55
- package/dist/__spec__/core/expect-extensions.js.map +0 -1
- package/dist/__spec__/core/generating-class-docs.spec.d.ts +0 -1
- package/dist/__spec__/core/generating-class-docs.spec.js +0 -444
- package/dist/__spec__/core/generating-class-docs.spec.js.map +0 -1
- package/dist/__spec__/core/generating-enum-docs.spec.d.ts +0 -1
- package/dist/__spec__/core/generating-enum-docs.spec.js +0 -306
- package/dist/__spec__/core/generating-enum-docs.spec.js.map +0 -1
- package/dist/__spec__/core/generating-interface-docs.spec.d.ts +0 -1
- package/dist/__spec__/core/generating-interface-docs.spec.js +0 -364
- package/dist/__spec__/core/generating-interface-docs.spec.js.map +0 -1
- package/dist/__spec__/core/generating-reference-guide.spec.d.ts +0 -1
- package/dist/__spec__/core/generating-reference-guide.spec.js +0 -162
- package/dist/__spec__/core/generating-reference-guide.spec.js.map +0 -1
- package/dist/__spec__/core/test-helpers.d.ts +0 -2
- package/dist/__spec__/core/test-helpers.js +0 -12
- package/dist/__spec__/core/test-helpers.js.map +0 -1
- package/dist/application/Apexdocs.d.ts +0 -15
- package/dist/application/Apexdocs.js +0 -113
- package/dist/application/Apexdocs.js.map +0 -1
- package/dist/application/generators/generate-markdown-files.d.ts +0 -3
- package/dist/application/generators/generate-markdown-files.js +0 -64
- package/dist/application/generators/generate-markdown-files.js.map +0 -1
- package/dist/cli/args.d.ts +0 -39
- package/dist/cli/args.js +0 -154
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -2
- package/dist/cli/generate.js.map +0 -1
- package/dist/core/__test__/inheritance-chain.test.d.ts +0 -1
- package/dist/core/__test__/inheritance-chain.test.js +0 -42
- package/dist/core/__test__/inheritance-chain.test.js.map +0 -1
- package/dist/core/adapters/apex-types.d.ts +0 -6
- package/dist/core/adapters/apex-types.js +0 -109
- package/dist/core/adapters/apex-types.js.map +0 -1
- package/dist/core/adapters/documentables.d.ts +0 -7
- package/dist/core/adapters/documentables.js +0 -154
- package/dist/core/adapters/documentables.js.map +0 -1
- package/dist/core/adapters/fields-and-properties.d.ts +0 -3
- package/dist/core/adapters/fields-and-properties.js +0 -37
- package/dist/core/adapters/fields-and-properties.js.map +0 -1
- package/dist/core/adapters/methods-and-constructors.d.ts +0 -5
- package/dist/core/adapters/methods-and-constructors.js +0 -100
- package/dist/core/adapters/methods-and-constructors.js.map +0 -1
- package/dist/core/adapters/references.d.ts +0 -4
- package/dist/core/adapters/references.js +0 -78
- package/dist/core/adapters/references.js.map +0 -1
- package/dist/core/adapters/type-utils.d.ts +0 -3
- package/dist/core/adapters/type-utils.js +0 -12
- package/dist/core/adapters/type-utils.js.map +0 -1
- package/dist/core/apex-bundle.d.ts +0 -6
- package/dist/core/apex-bundle.js +0 -11
- package/dist/core/apex-bundle.js.map +0 -1
- package/dist/core/generate-docs.d.ts +0 -28
- package/dist/core/generate-docs.js +0 -296
- package/dist/core/generate-docs.js.map +0 -1
- package/dist/core/inheritance-chain.d.ts +0 -2
- package/dist/core/inheritance-chain.js +0 -36
- package/dist/core/inheritance-chain.js.map +0 -1
- package/dist/core/manifest.d.ts +0 -22
- package/dist/core/manifest.js +0 -53
- package/dist/core/manifest.js.map +0 -1
- package/dist/core/template.d.ts +0 -10
- package/dist/core/template.js +0 -97
- package/dist/core/template.js.map +0 -1
- package/dist/core/templates/reference-guide.d.ts +0 -1
- package/dist/core/templates/reference-guide.js +0 -18
- package/dist/core/templates/reference-guide.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -7
- package/dist/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -14
- package/dist/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -1
- package/dist/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -7
- package/dist/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -12
- package/dist/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -1
- package/dist/model/markdown-file.d.ts +0 -16
- package/dist/model/markdown-file.js +0 -111
- package/dist/model/markdown-file.js.map +0 -1
- package/dist/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -8
- package/dist/model/markdown-generation-util/doc-comment-annotation-util.js +0 -47
- package/dist/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
- package/dist/model/markdown-generation-util/field-declaration-util.d.ts +0 -3
- package/dist/model/markdown-generation-util/field-declaration-util.js +0 -55
- package/dist/model/markdown-generation-util/field-declaration-util.js.map +0 -1
- package/dist/model/markdown-generation-util/index.d.ts +0 -3
- package/dist/model/markdown-generation-util/index.js +0 -20
- package/dist/model/markdown-generation-util/index.js.map +0 -1
- package/dist/model/markdown-generation-util/method-declaration-util.d.ts +0 -4
- package/dist/model/markdown-generation-util/method-declaration-util.js +0 -115
- package/dist/model/markdown-generation-util/method-declaration-util.js.map +0 -1
- package/dist/model/markdown-generation-util/type-declaration-util.d.ts +0 -3
- package/dist/model/markdown-generation-util/type-declaration-util.js +0 -82
- package/dist/model/markdown-generation-util/type-declaration-util.js.map +0 -1
- package/dist/model/markdown-home-file.d.ts +0 -11
- package/dist/model/markdown-home-file.js +0 -57
- package/dist/model/markdown-home-file.js.map +0 -1
- package/dist/model/markdown-type-file.d.ts +0 -26
- package/dist/model/markdown-type-file.js +0 -137
- package/dist/model/markdown-type-file.js.map +0 -1
- package/dist/model/openapi/apex-doc-types.d.ts +0 -19
- package/dist/model/openapi/apex-doc-types.js +0 -5
- package/dist/model/openapi/apex-doc-types.js.map +0 -1
- package/dist/model/openapi/open-api-types.d.ts +0 -93
- package/dist/model/openapi/open-api-types.js +0 -3
- package/dist/model/openapi/open-api-types.js.map +0 -1
- package/dist/model/openapi/open-api.d.ts +0 -16
- package/dist/model/openapi/open-api.js +0 -34
- package/dist/model/openapi/open-api.js.map +0 -1
- package/dist/model/openapi/openapi-type-file.d.ts +0 -7
- package/dist/model/openapi/openapi-type-file.js +0 -17
- package/dist/model/openapi/openapi-type-file.js.map +0 -1
- package/dist/model/outputFile.d.ts +0 -10
- package/dist/model/outputFile.js +0 -22
- package/dist/model/outputFile.js.map +0 -1
- package/dist/model/types-repository.d.ts +0 -16
- package/dist/model/types-repository.js +0 -54
- package/dist/model/types-repository.js.map +0 -1
- package/dist/service/apex-file-reader.d.ts +0 -14
- package/dist/service/apex-file-reader.js +0 -49
- package/dist/service/apex-file-reader.js.map +0 -1
- package/dist/service/file-system.d.ts +0 -14
- package/dist/service/file-system.js +0 -48
- package/dist/service/file-system.js.map +0 -1
- package/dist/service/file-writer.d.ts +0 -6
- package/dist/service/file-writer.js +0 -57
- package/dist/service/file-writer.js.map +0 -1
- package/dist/service/manifest-factory.d.ts +0 -10
- package/dist/service/manifest-factory.js +0 -17
- package/dist/service/manifest-factory.js.map +0 -1
- package/dist/service/metadata-processor.d.ts +0 -3
- package/dist/service/metadata-processor.js +0 -17
- package/dist/service/metadata-processor.js.map +0 -1
- package/dist/service/parser.d.ts +0 -21
- package/dist/service/parser.js +0 -138
- package/dist/service/parser.js.map +0 -1
- package/dist/service/state.d.ts +0 -9
- package/dist/service/state.js +0 -20
- package/dist/service/state.js.map +0 -1
- package/dist/service/walkers/class-walker.d.ts +0 -4
- package/dist/service/walkers/class-walker.js +0 -33
- package/dist/service/walkers/class-walker.js.map +0 -1
- package/dist/service/walkers/enum-walker.d.ts +0 -4
- package/dist/service/walkers/enum-walker.js +0 -11
- package/dist/service/walkers/enum-walker.js.map +0 -1
- package/dist/service/walkers/interface-walker.d.ts +0 -4
- package/dist/service/walkers/interface-walker.js +0 -15
- package/dist/service/walkers/interface-walker.js.map +0 -1
- package/dist/service/walkers/walker-factory.d.ts +0 -5
- package/dist/service/walkers/walker-factory.js +0 -21
- package/dist/service/walkers/walker-factory.js.map +0 -1
- package/dist/service/walkers/walker.d.ts +0 -19
- package/dist/service/walkers/walker.js +0 -17
- package/dist/service/walkers/walker.js.map +0 -1
- package/dist/settings.d.ts +0 -67
- package/dist/settings.js +0 -92
- package/dist/settings.js.map +0 -1
- package/dist/test-helpers/AnnotationBuilder.d.ts +0 -12
- package/dist/test-helpers/AnnotationBuilder.js +0 -31
- package/dist/test-helpers/AnnotationBuilder.js.map +0 -1
- package/dist/test-helpers/ClassMirrorBuilder.d.ts +0 -22
- package/dist/test-helpers/ClassMirrorBuilder.js +0 -64
- package/dist/test-helpers/ClassMirrorBuilder.js.map +0 -1
- package/dist/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -8
- package/dist/test-helpers/DocCommentAnnotationBuilder.js +0 -26
- package/dist/test-helpers/DocCommentAnnotationBuilder.js.map +0 -1
- package/dist/test-helpers/DocCommentBuilder.d.ts +0 -12
- package/dist/test-helpers/DocCommentBuilder.js +0 -38
- package/dist/test-helpers/DocCommentBuilder.js.map +0 -1
- package/dist/test-helpers/FieldMirrorBuilder.d.ts +0 -18
- package/dist/test-helpers/FieldMirrorBuilder.js +0 -54
- package/dist/test-helpers/FieldMirrorBuilder.js.map +0 -1
- package/dist/test-helpers/InterfaceMirrorBuilder.d.ts +0 -16
- package/dist/test-helpers/InterfaceMirrorBuilder.js +0 -43
- package/dist/test-helpers/InterfaceMirrorBuilder.js.map +0 -1
- package/dist/test-helpers/MethodMirrorBuilder.d.ts +0 -29
- package/dist/test-helpers/MethodMirrorBuilder.js +0 -72
- package/dist/test-helpers/MethodMirrorBuilder.js.map +0 -1
- package/dist/test-helpers/SettingsBuilder.d.ts +0 -8
- package/dist/test-helpers/SettingsBuilder.js +0 -28
- package/dist/test-helpers/SettingsBuilder.js.map +0 -1
- package/dist/transpiler/factory.d.ts +0 -6
- package/dist/transpiler/factory.js +0 -33
- package/dist/transpiler/factory.js.map +0 -1
- package/dist/transpiler/file-container.d.ts +0 -6
- package/dist/transpiler/file-container.js +0 -16
- package/dist/transpiler/file-container.js.map +0 -1
- package/dist/transpiler/generator-choices.d.ts +0 -1
- package/dist/transpiler/generator-choices.js +0 -3
- package/dist/transpiler/generator-choices.js.map +0 -1
- package/dist/transpiler/markdown/class-file-generatorHelper.d.ts +0 -9
- package/dist/transpiler/markdown/class-file-generatorHelper.js +0 -61
- package/dist/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
- package/dist/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -6
- package/dist/transpiler/markdown/docsify/docsify-docs-processor.js +0 -13
- package/dist/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -1
- package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -11
- package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -51
- package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -1
- package/dist/transpiler/markdown/markdown-transpiler-base.d.ts +0 -11
- package/dist/transpiler/markdown/markdown-transpiler-base.js +0 -27
- package/dist/transpiler/markdown/markdown-transpiler-base.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/class-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/class-template.js +0 -77
- package/dist/transpiler/markdown/plain-markdown/class-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.js +0 -36
- package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.js +0 -30
- package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/enum-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/enum-template.js +0 -16
- package/dist/transpiler/markdown/plain-markdown/enum-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +0 -27
- package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +0 -10
- package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/interface-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/interface-template.js +0 -20
- package/dist/transpiler/markdown/plain-markdown/interface-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/methods-partial-template.js +0 -47
- package/dist/transpiler/markdown/plain-markdown/methods-partial-template.js.map +0 -1
- package/dist/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +0 -1
- package/dist/transpiler/markdown/plain-markdown/type-doc-partial.js +0 -31
- package/dist/transpiler/markdown/plain-markdown/type-doc-partial.js.map +0 -1
- package/dist/transpiler/openapi/open-api-docs-processor.d.ts +0 -13
- package/dist/transpiler/openapi/open-api-docs-processor.js +0 -78
- package/dist/transpiler/openapi/open-api-docs-processor.js.map +0 -1
- package/dist/transpiler/openapi/parsers/Builder.d.ts +0 -16
- package/dist/transpiler/openapi/parsers/Builder.js +0 -30
- package/dist/transpiler/openapi/parsers/Builder.js.map +0 -1
- package/dist/transpiler/openapi/parsers/MethodParser.d.ts +0 -20
- package/dist/transpiler/openapi/parsers/MethodParser.js +0 -190
- package/dist/transpiler/openapi/parsers/MethodParser.js.map +0 -1
- package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -7
- package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -11
- package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -1
- package/dist/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -39
- package/dist/transpiler/openapi/parsers/ReferenceBuilder.js +0 -250
- package/dist/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -1
- package/dist/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -10
- package/dist/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -20
- package/dist/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -1
- package/dist/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -7
- package/dist/transpiler/openapi/parsers/ResponsesBuilder.js +0 -22
- package/dist/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -1
- package/dist/transpiler/processor-type-transpiler.d.ts +0 -10
- package/dist/transpiler/processor-type-transpiler.js +0 -9
- package/dist/transpiler/processor-type-transpiler.js.map +0 -1
- package/dist/transpiler/transpiler.d.ts +0 -5
- package/dist/transpiler/transpiler.js +0 -30
- package/dist/transpiler/transpiler.js.map +0 -1
- package/dist/util/error-logger.d.ts +0 -8
- package/dist/util/error-logger.js +0 -90
- package/dist/util/error-logger.js.map +0 -1
- package/dist/util/logger.d.ts +0 -21
- package/dist/util/logger.js +0 -61
- package/dist/util/logger.js.map +0 -1
- package/dist/util/string-utils.d.ts +0 -2
- package/dist/util/string-utils.js +0 -15
- package/dist/util/string-utils.js.map +0 -1
- package/examples/plain-markdown/template.md +0 -3
- package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
- package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
- package/src/__spec__/core/test-helpers.ts +0 -9
- package/src/application/generators/generate-markdown-files.ts +0 -53
- package/src/core/apex-bundle.ts +0 -3
- package/src/core/generate-docs.ts +0 -432
- package/src/model/markdown-file.ts +0 -122
- package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
- package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
- package/src/model/markdown-generation-util/index.ts +0 -3
- package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
- package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
- package/src/model/markdown-home-file.ts +0 -58
- package/src/model/markdown-type-file.ts +0 -169
- package/src/model/openapi/openapi-type-file.ts +0 -14
- package/src/model/outputFile.ts +0 -20
- package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
- package/src/service/apex-file-reader.ts +0 -51
- package/src/service/file-writer.ts +0 -34
- package/src/service/metadata-processor.ts +0 -16
- package/src/service/state.ts +0 -24
- package/src/service/walkers/class-walker.ts +0 -30
- package/src/service/walkers/enum-walker.ts +0 -7
- package/src/service/walkers/interface-walker.ts +0 -12
- package/src/service/walkers/walker-factory.ts +0 -19
- package/src/service/walkers/walker.ts +0 -42
- package/src/settings.ts +0 -153
- package/src/transpiler/factory.ts +0 -31
- package/src/transpiler/file-container.ts +0 -13
- package/src/transpiler/generator-choices.ts +0 -1
- package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
- package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
- package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
- package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
- package/src/transpiler/processor-type-transpiler.ts +0 -18
- /package/src/{service → application}/file-system.ts +0 -0
- /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
- /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
- /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
- /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
- /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
- /package/src/{model → core}/openapi/open-api-types.ts +0 -0
- /package/src/{model → core}/openapi/open-api.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OpenApiDocsProcessor } from '../open-api-docs-processor';
|
|
2
|
-
import { Settings } from '
|
|
2
|
+
import { Settings } from '../../settings';
|
|
3
3
|
import { SettingsBuilder } from '../../../test-helpers/SettingsBuilder';
|
|
4
4
|
import { DocCommentBuilder } from '../../../test-helpers/DocCommentBuilder';
|
|
5
5
|
import { AnnotationBuilder } from '../../../test-helpers/AnnotationBuilder';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ClassMirrorBuilder } from '../../../test-helpers/ClassMirrorBuilder';
|
|
2
1
|
import { ClassMirrorWrapper } from '../ClassMirrorWrapper';
|
|
3
|
-
import {
|
|
4
|
-
import { MethodMirrorBuilder } from '
|
|
2
|
+
import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
|
|
3
|
+
import { MethodMirrorBuilder } from '../../../../test-helpers/MethodMirrorBuilder';
|
|
4
|
+
import { AnnotationBuilder } from '../../../../test-helpers/AnnotationBuilder';
|
|
5
5
|
|
|
6
6
|
it('should return methods by annotation when they exist', function () {
|
|
7
7
|
const classMirror = new ClassMirrorBuilder()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Manifest from '../
|
|
1
|
+
import Manifest from '../manifest';
|
|
2
2
|
import { TypeParser } from './parser';
|
|
3
3
|
import { ReflectionResult } from '@cparra/apex-reflection';
|
|
4
|
-
import
|
|
4
|
+
import { SourceFile } from '../shared/types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Builds a new Manifest object, sourcing its types from the received TypeParser.
|
|
@@ -10,7 +10,7 @@ import ApexBundle from '../core/apex-bundle';
|
|
|
10
10
|
*/
|
|
11
11
|
export function createManifest(
|
|
12
12
|
typeParser: TypeParser,
|
|
13
|
-
reflect: (apexBundle:
|
|
13
|
+
reflect: (apexBundle: SourceFile) => ReflectionResult,
|
|
14
14
|
): Manifest {
|
|
15
15
|
return new Manifest(typeParser.parse(reflect));
|
|
16
16
|
}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FileContainer } from '../file-container';
|
|
1
|
+
import { FileContainer } from './file-container';
|
|
3
2
|
import { ClassMirror, Type } from '@cparra/apex-reflection';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { Settings } from '../../settings';
|
|
3
|
+
import { Logger } from '#utils/logger';
|
|
4
|
+
import { OpenApi } from './open-api';
|
|
5
|
+
import { Settings } from '../settings';
|
|
8
6
|
import { MethodParser } from './parsers/MethodParser';
|
|
9
|
-
import { camel2title } from '
|
|
7
|
+
import { camel2title } from '#utils/string-utils';
|
|
8
|
+
import { createOpenApiFile } from './openapi-type-file';
|
|
10
9
|
|
|
11
|
-
export class OpenApiDocsProcessor
|
|
10
|
+
export class OpenApiDocsProcessor {
|
|
12
11
|
protected readonly _fileContainer: FileContainer;
|
|
13
12
|
openApiModel: OpenApi;
|
|
14
13
|
|
|
15
14
|
constructor() {
|
|
16
|
-
super();
|
|
17
15
|
this._fileContainer = new FileContainer();
|
|
18
16
|
const title = Settings.getInstance().getOpenApiTitle();
|
|
19
17
|
if (!title) {
|
|
@@ -68,7 +66,8 @@ export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
|
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
onAfterProcess: ((types: Type[]) => void) | undefined = () => {
|
|
71
|
-
|
|
69
|
+
const page = createOpenApiFile(Settings.getInstance().openApiFileName(), this.openApiModel);
|
|
70
|
+
this._fileContainer.pushFile(page);
|
|
72
71
|
};
|
|
73
72
|
|
|
74
73
|
private getEndpointPath(type: Type): string | null {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OpenApi } from './open-api';
|
|
2
|
+
import { OpenApiPageData } from '../shared/types';
|
|
3
|
+
|
|
4
|
+
export function createOpenApiFile(fileName: string, openApiModel: OpenApi): OpenApiPageData {
|
|
5
|
+
const content = JSON.stringify({ ...openApiModel, namespace: undefined }, null, 2);
|
|
6
|
+
return {
|
|
7
|
+
fileExtension: 'json',
|
|
8
|
+
fileName,
|
|
9
|
+
directory: '',
|
|
10
|
+
content,
|
|
11
|
+
frontmatter: null,
|
|
12
|
+
group: null,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { ClassMirror, InterfaceMirror, ReflectionResult, Type } from '@cparra/apex-reflection';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { parseApexMetadata } from '../parse-apex-metadata';
|
|
3
|
+
import { Logger } from '#utils/logger';
|
|
4
|
+
import { SourceFile } from '../shared/types';
|
|
5
5
|
|
|
6
6
|
export interface TypeParser {
|
|
7
|
-
parse(reflect: (apexBundle:
|
|
7
|
+
parse(reflect: (apexBundle: SourceFile) => ReflectionResult): Type[];
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
type NameAware = { name: string };
|
|
11
11
|
|
|
12
12
|
export class RawBodyParser implements TypeParser {
|
|
13
|
-
constructor(public typeBundles:
|
|
13
|
+
constructor(public typeBundles: SourceFile[]) {}
|
|
14
14
|
|
|
15
|
-
parse(reflect: (apexBundle:
|
|
15
|
+
parse(reflect: (apexBundle: SourceFile) => ReflectionResult): Type[] {
|
|
16
16
|
const types = this.typeBundles
|
|
17
17
|
.map((currentBundle) => {
|
|
18
18
|
Logger.log(`Parsing file: ${currentBundle.filePath}`);
|
|
19
19
|
const result = reflect(currentBundle);
|
|
20
|
-
if (!!result.typeMirror && !!currentBundle.
|
|
20
|
+
if (!!result.typeMirror && !!currentBundle.metadataContent) {
|
|
21
21
|
// If successful and there is a metadata file
|
|
22
|
-
const metadataParams =
|
|
22
|
+
const metadataParams = parseApexMetadata(currentBundle.metadataContent);
|
|
23
23
|
metadataParams.forEach((value, key) => {
|
|
24
24
|
const declaration = `${key}: ${value}`;
|
|
25
25
|
result.typeMirror?.annotations.push({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Reference, ReferenceBuilder } from './ReferenceBuilder';
|
|
2
|
-
import { ApexDocSchemaObject } from '../../../
|
|
3
|
-
import { SchemaObject } from '../../../
|
|
2
|
+
import { ApexDocSchemaObject } from '../../../core/openapi/apex-doc-types';
|
|
3
|
+
import { SchemaObject } from '../../../core/openapi/open-api-types';
|
|
4
4
|
|
|
5
5
|
export type ApexDocSchemaAware = {
|
|
6
6
|
schema: ApexDocSchemaObject;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClassMirror, MethodMirror } from '@cparra/apex-reflection';
|
|
2
|
-
import { OpenApi } from '../../../
|
|
2
|
+
import { OpenApi } from '../../../core/openapi/open-api';
|
|
3
3
|
import * as yaml from 'js-yaml';
|
|
4
|
-
import { ClassMirrorWrapper } from '../../../
|
|
4
|
+
import { ClassMirrorWrapper } from '../../../core/openapi/apex-type-wrappers/ClassMirrorWrapper';
|
|
5
5
|
import { Reference, ReferenceBuilder } from './ReferenceBuilder';
|
|
6
6
|
import { ParameterObjectBuilder } from './ParameterObjectBuilder';
|
|
7
7
|
import { ResponsesBuilder } from './ResponsesBuilder';
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
ApexDocHttpRequestBody,
|
|
10
10
|
ApexDocHttpResponse,
|
|
11
11
|
ApexDocParameterObject,
|
|
12
|
-
} from '../../../
|
|
12
|
+
} from '../../../core/openapi/apex-doc-types';
|
|
13
13
|
import { RequestBodyBuilder } from './RequestBodyBuilder';
|
|
14
14
|
import { ApexDocSchemaAware } from './Builder';
|
|
15
|
-
import { PropertiesObject, ReferenceObject } from '../../../
|
|
16
|
-
import { MethodMirrorWrapper } from '../../../
|
|
15
|
+
import { PropertiesObject, ReferenceObject } from '../../../core/openapi/open-api-types';
|
|
16
|
+
import { MethodMirrorWrapper } from '../../../core/openapi/apex-type-wrappers/MethodMirrorWrapper';
|
|
17
17
|
|
|
18
18
|
type FallbackMethodParser = (methodMirror: MethodMirror) => void;
|
|
19
19
|
type AddToOpenApi<T extends ApexDocSchemaAware> = (input: T, urlValue: string, httpMethodKey: HttpOperations) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ParameterObject } from '../../../
|
|
1
|
+
import { ParameterObject } from '../../../core/openapi/open-api-types';
|
|
2
2
|
import { Reference } from './ReferenceBuilder';
|
|
3
|
-
import { ApexDocParameterObject } from '../../../
|
|
3
|
+
import { ApexDocParameterObject } from '../../../core/openapi/apex-doc-types';
|
|
4
4
|
import { Builder } from './Builder';
|
|
5
5
|
|
|
6
6
|
export class ParameterObjectBuilder extends Builder<ParameterObject, ApexDocParameterObject> {
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
SchemaObject,
|
|
6
6
|
SchemaObjectArray,
|
|
7
7
|
SchemaObjectObject,
|
|
8
|
-
} from '../../../
|
|
9
|
-
import { TypeBundle, TypesRepository } from '../../../
|
|
8
|
+
} from '../../../core/openapi/open-api-types';
|
|
9
|
+
import { TypeBundle, TypesRepository } from '../../../core/openapi/types-repository';
|
|
10
10
|
import { ClassMirror, DocCommentAnnotation, FieldMirror, PropertyMirror } from '@cparra/apex-reflection';
|
|
11
11
|
import { ListObjectType, ReferencedType } from '@cparra/apex-reflection';
|
|
12
|
-
import { ApexDocSchemaObject } from '../../../
|
|
12
|
+
import { ApexDocSchemaObject } from '../../../core/openapi/apex-doc-types';
|
|
13
13
|
|
|
14
14
|
type TypeBundleWithIsCollectionAndReferenceOverrides = TypeBundle & {
|
|
15
15
|
originalTypeName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RequestBody } from '../../../
|
|
1
|
+
import { RequestBody } from '../../../core/openapi/open-api-types';
|
|
2
2
|
import { Reference } from './ReferenceBuilder';
|
|
3
|
-
import { ApexDocHttpRequestBody } from '../../../
|
|
3
|
+
import { ApexDocHttpRequestBody } from '../../../core/openapi/apex-doc-types';
|
|
4
4
|
import { Builder } from './Builder';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ResponseObject } from '../../../
|
|
1
|
+
import { ResponseObject } from '../../../core/openapi/open-api-types';
|
|
2
2
|
import { Reference } from './ReferenceBuilder';
|
|
3
|
-
import { ApexDocHttpResponse } from '../../../
|
|
3
|
+
import { ApexDocHttpResponse } from '../../../core/openapi/apex-doc-types';
|
|
4
4
|
import { Builder } from './Builder';
|
|
5
5
|
|
|
6
6
|
export class ResponsesBuilder extends Builder<ResponseObject, ApexDocHttpResponse> {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
|
|
2
2
|
import { MethodMirrorBuilder } from '../../../../test-helpers/MethodMirrorBuilder';
|
|
3
3
|
import { AnnotationBuilder } from '../../../../test-helpers/AnnotationBuilder';
|
|
4
|
-
import { OpenApi } from '../../../../
|
|
4
|
+
import { OpenApi } from '../../../../core/openapi/open-api';
|
|
5
5
|
import { MethodParser } from '../MethodParser';
|
|
6
6
|
import { DocCommentBuilder } from '../../../../test-helpers/DocCommentBuilder';
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ParameterObjectBuilder } from '../ParameterObjectBuilder';
|
|
2
2
|
import { Reference } from '../ReferenceBuilder';
|
|
3
|
-
import { ReferenceObject } from '../../../../
|
|
4
|
-
import { ApexDocParameterObject } from '../../../../
|
|
3
|
+
import { ReferenceObject } from '../../../../core/openapi/open-api-types';
|
|
4
|
+
import { ApexDocParameterObject } from '../../../../core/openapi/apex-doc-types';
|
|
5
5
|
|
|
6
6
|
jest.mock('../ReferenceBuilder', () => {
|
|
7
7
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TypesRepository } from '../../../../
|
|
1
|
+
import { TypesRepository } from '../../../../core/openapi/types-repository';
|
|
2
2
|
import { ReferenceBuilder } from '../ReferenceBuilder';
|
|
3
3
|
import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
|
|
4
4
|
import { FieldMirrorBuilder } from '../../../../test-helpers/FieldMirrorBuilder';
|
|
5
|
-
import { SchemaObjectArray, SchemaObjectObject } from '../../../../
|
|
5
|
+
import { SchemaObjectArray, SchemaObjectObject } from '../../../../core/openapi/open-api-types';
|
|
6
6
|
import { DocCommentBuilder } from '../../../../test-helpers/DocCommentBuilder';
|
|
7
7
|
import { DocCommentAnnotationBuilder } from '../../../../test-helpers/DocCommentAnnotationBuilder';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RequestBodyBuilder } from '../RequestBodyBuilder';
|
|
2
2
|
import { Reference } from '../ReferenceBuilder';
|
|
3
|
-
import { ReferenceObject } from '../../../../
|
|
4
|
-
import { ApexDocHttpRequestBody } from '../../../../
|
|
3
|
+
import { ReferenceObject } from '../../../../core/openapi/open-api-types';
|
|
4
|
+
import { ApexDocHttpRequestBody } from '../../../../core/openapi/apex-doc-types';
|
|
5
5
|
|
|
6
6
|
jest.mock('../ReferenceBuilder', () => {
|
|
7
7
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResponsesBuilder } from '../ResponsesBuilder';
|
|
2
2
|
import { Reference } from '../ReferenceBuilder';
|
|
3
|
-
import { ApexDocHttpResponse } from '../../../../
|
|
3
|
+
import { ApexDocHttpResponse } from '../../../../core/openapi/apex-doc-types';
|
|
4
4
|
|
|
5
5
|
jest.mock('../ReferenceBuilder', () => {
|
|
6
6
|
return {
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
import { Type } from '@cparra/apex-reflection';
|
|
2
|
-
import ProcessorTypeTranspiler from './processor-type-transpiler';
|
|
3
2
|
import { Settings } from '../settings';
|
|
4
|
-
import
|
|
3
|
+
import { OpenApiDocsProcessor } from './open-api-docs-processor';
|
|
5
4
|
|
|
6
5
|
export default class Transpiler {
|
|
7
|
-
static generate(types: Type[], processor:
|
|
6
|
+
static generate(types: Type[], processor: OpenApiDocsProcessor): void {
|
|
8
7
|
const sortedTypes = types.sort((apexTypeA, apexTypeB) => {
|
|
9
8
|
if (apexTypeA.name < apexTypeB.name) return -1;
|
|
10
9
|
if (apexTypeA.name > apexTypeB.name) return 1;
|
|
11
10
|
return 0;
|
|
12
11
|
});
|
|
13
12
|
|
|
14
|
-
processor.onBeforeProcess?.(sortedTypes);
|
|
15
|
-
|
|
16
13
|
if (Settings.getInstance().indexOnly) {
|
|
17
14
|
return;
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
sortedTypes.forEach((currentType) => {
|
|
21
|
-
State.getInstance().setTypeBeingProcessed(currentType);
|
|
22
18
|
processor.onProcess(currentType);
|
|
23
19
|
});
|
|
24
20
|
processor.onAfterProcess?.(sortedTypes);
|
|
@@ -4,7 +4,6 @@ export type TypeBundle = { type: Type; isChild: boolean; parentType?: Type };
|
|
|
4
4
|
|
|
5
5
|
export class TypesRepository {
|
|
6
6
|
private static instance: TypesRepository;
|
|
7
|
-
private scopedTypes: Type[] = [];
|
|
8
7
|
private allTypes: Type[] = [];
|
|
9
8
|
|
|
10
9
|
public static getInstance(): TypesRepository {
|
|
@@ -52,12 +51,4 @@ export class TypesRepository {
|
|
|
52
51
|
}
|
|
53
52
|
return { type: foundType, isChild: false };
|
|
54
53
|
}
|
|
55
|
-
|
|
56
|
-
public populateScoped(types: Type[]) {
|
|
57
|
-
this.scopedTypes = types;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public getFromScopedByName(typeName: string): Type | undefined {
|
|
61
|
-
return this.scopedTypes.find((currentType: Type) => currentType.name === typeName);
|
|
62
|
-
}
|
|
63
54
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
2
|
+
|
|
3
|
+
export function parseApexMetadata(input: string) {
|
|
4
|
+
const map = new Map<string, string>();
|
|
5
|
+
const xml = new XMLParser().parse(input);
|
|
6
|
+
|
|
7
|
+
map.set('apiVersion', xml.ApexClass.apiVersion ?? '');
|
|
8
|
+
|
|
9
|
+
if (xml.ApexClass.status) {
|
|
10
|
+
map.set('status', xml.ApexClass.status);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return map;
|
|
14
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Generator } from './shared/types';
|
|
2
|
+
|
|
3
|
+
export interface SettingsConfig {
|
|
4
|
+
sourceDirectory: string;
|
|
5
|
+
scope: string[];
|
|
6
|
+
outputDir: string;
|
|
7
|
+
targetGenerator: Generator;
|
|
8
|
+
indexOnly: boolean;
|
|
9
|
+
defaultGroupName: string;
|
|
10
|
+
openApiTitle?: string;
|
|
11
|
+
namespace?: string;
|
|
12
|
+
openApiFileName: string;
|
|
13
|
+
includeMetadata: boolean;
|
|
14
|
+
sortMembersAlphabetically?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class Settings {
|
|
18
|
+
private static instance: Settings;
|
|
19
|
+
|
|
20
|
+
private constructor(public config: SettingsConfig) {}
|
|
21
|
+
|
|
22
|
+
public static build(config: SettingsConfig) {
|
|
23
|
+
Settings.instance = new Settings(config);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public static getInstance(): Settings {
|
|
27
|
+
if (!Settings.instance) {
|
|
28
|
+
throw new Error('Settings has not been initialized');
|
|
29
|
+
}
|
|
30
|
+
return Settings.instance;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
get scope(): string[] {
|
|
34
|
+
return this.config.scope;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
get targetGenerator(): Generator {
|
|
38
|
+
return this.config.targetGenerator;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get indexOnly(): boolean {
|
|
42
|
+
return this.config.indexOnly;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public getOpenApiTitle(): string | undefined {
|
|
46
|
+
return this.config.openApiTitle;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public getNamespace(): string | undefined {
|
|
50
|
+
return this.config.namespace;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public openApiFileName(): string {
|
|
54
|
+
return this.config.openApiFileName;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Type } from '@cparra/apex-reflection';
|
|
2
|
+
|
|
3
|
+
export type Generator = 'markdown' | 'openapi';
|
|
4
|
+
|
|
5
|
+
export type ConfigurableHooks = {
|
|
6
|
+
transformReferenceGuide: TransformReferenceGuide;
|
|
7
|
+
transformDocs: TransformDocs;
|
|
8
|
+
transformDocPage: TransformDocPage;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type UserDefinedMarkdownConfig = {
|
|
12
|
+
targetGenerator: 'markdown';
|
|
13
|
+
sourceDir: string;
|
|
14
|
+
targetDir: string;
|
|
15
|
+
scope: string[];
|
|
16
|
+
defaultGroupName: string;
|
|
17
|
+
namespace?: string;
|
|
18
|
+
sortMembersAlphabetically: boolean;
|
|
19
|
+
includeMetadata: boolean;
|
|
20
|
+
} & Partial<ConfigurableHooks>;
|
|
21
|
+
|
|
22
|
+
export type UserDefinedOpenApiConfig = {
|
|
23
|
+
targetGenerator: 'openapi';
|
|
24
|
+
sourceDir: string;
|
|
25
|
+
targetDir: string;
|
|
26
|
+
includeMetadata: boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type UserDefinedConfig = UserDefinedMarkdownConfig | UserDefinedOpenApiConfig;
|
|
30
|
+
|
|
31
|
+
export type SourceFile = {
|
|
32
|
+
filePath: string;
|
|
33
|
+
content: string;
|
|
34
|
+
metadataContent: string | null;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type ParsedFile = {
|
|
38
|
+
filePath: string;
|
|
39
|
+
type: Type;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type Frontmatter = string | Record<string, unknown> | null;
|
|
43
|
+
|
|
44
|
+
export type ReferenceGuidePageData = {
|
|
45
|
+
directory: string;
|
|
46
|
+
frontmatter: Frontmatter;
|
|
47
|
+
content: string;
|
|
48
|
+
fileExtension: string;
|
|
49
|
+
fileName: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type DocPageData = {
|
|
53
|
+
source: {
|
|
54
|
+
filePath: string;
|
|
55
|
+
name: string;
|
|
56
|
+
type: 'interface' | 'class' | 'enum';
|
|
57
|
+
};
|
|
58
|
+
group: string | null;
|
|
59
|
+
fileName: string;
|
|
60
|
+
fileExtension: string;
|
|
61
|
+
directory: string;
|
|
62
|
+
frontmatter: Frontmatter;
|
|
63
|
+
content: string;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export type OpenApiPageData = Omit<DocPageData, 'source'>;
|
|
67
|
+
|
|
68
|
+
export type PageData = DocPageData | OpenApiPageData | ReferenceGuidePageData;
|
|
69
|
+
|
|
70
|
+
export type DocumentationBundle = {
|
|
71
|
+
referenceGuide: ReferenceGuidePageData;
|
|
72
|
+
docs: DocPageData[];
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export type Skip = {
|
|
76
|
+
readonly _tag: 'Skip';
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export type PostHookDocumentationBundle = {
|
|
80
|
+
referenceGuide: ReferenceGuidePageData | Skip;
|
|
81
|
+
docs: DocPageData[];
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// Configurable Hooks
|
|
85
|
+
|
|
86
|
+
export type TransformReferenceGuide = (
|
|
87
|
+
referenceGuide: ReferenceGuidePageData,
|
|
88
|
+
) => Partial<ReferenceGuidePageData> | Skip | Promise<Partial<ReferenceGuidePageData> | Skip>;
|
|
89
|
+
|
|
90
|
+
export type TransformDocs = (docs: DocPageData[]) => DocPageData[] | Promise<DocPageData[]>;
|
|
91
|
+
|
|
92
|
+
export type TransformDocPage = (doc: DocPageData) => Partial<DocPageData> | Promise<Partial<DocPageData>>;
|
package/src/defaults.ts
ADDED
package/src/index.ts
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { SetOptional } from 'type-fest';
|
|
2
|
+
import type {
|
|
3
|
+
ConfigurableHooks,
|
|
4
|
+
Skip,
|
|
5
|
+
UserDefinedMarkdownConfig,
|
|
6
|
+
ReferenceGuidePageData,
|
|
7
|
+
DocPageData,
|
|
8
|
+
} from './core/shared/types';
|
|
9
|
+
import { defaults } from './defaults';
|
|
2
10
|
|
|
3
|
-
|
|
11
|
+
type ConfigurableMarkdownConfig = Omit<
|
|
12
|
+
SetOptional<
|
|
13
|
+
UserDefinedMarkdownConfig,
|
|
14
|
+
'targetDir' | 'scope' | 'defaultGroupName' | 'includeMetadata' | 'sortMembersAlphabetically'
|
|
15
|
+
>,
|
|
16
|
+
'targetGenerator'
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
function defineMarkdownConfig(config: ConfigurableMarkdownConfig): UserDefinedMarkdownConfig {
|
|
20
|
+
return {
|
|
21
|
+
...defaults,
|
|
22
|
+
...config,
|
|
23
|
+
targetGenerator: 'markdown',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function skip(): Skip {
|
|
28
|
+
return {
|
|
29
|
+
_tag: 'Skip',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Exports
|
|
34
|
+
|
|
35
|
+
export { defineMarkdownConfig, skip, ConfigurableHooks, ReferenceGuidePageData, DocPageData };
|
|
@@ -20,11 +20,6 @@ export class InterfaceMirrorBuilder {
|
|
|
20
20
|
return this;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
withDocComment(docComment: DocComment): InterfaceMirrorBuilder {
|
|
24
|
-
this.docComment = docComment;
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
23
|
addMethod(method: MethodMirror): InterfaceMirrorBuilder {
|
|
29
24
|
this.methods.push(method);
|
|
30
25
|
return this;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SettingsConfig } from '../settings';
|
|
1
|
+
import { SettingsConfig } from '../core/settings';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Builder class to create SettingsConfig objects.
|
|
@@ -8,18 +8,14 @@ export class SettingsBuilder {
|
|
|
8
8
|
build(): SettingsConfig {
|
|
9
9
|
return {
|
|
10
10
|
sourceDirectory: './',
|
|
11
|
-
recursive: true,
|
|
12
11
|
scope: [],
|
|
13
12
|
outputDir: './',
|
|
14
13
|
targetGenerator: 'openapi',
|
|
15
14
|
indexOnly: false,
|
|
16
15
|
defaultGroupName: 'Misc',
|
|
17
|
-
sanitizeHtml: true,
|
|
18
16
|
openApiTitle: 'Apex API',
|
|
19
17
|
openApiFileName: 'openapi',
|
|
20
|
-
title: 'Classes',
|
|
21
18
|
includeMetadata: false,
|
|
22
|
-
linkingStrategy: 'root-relative',
|
|
23
19
|
};
|
|
24
20
|
}
|
|
25
21
|
}
|
package/src/util/fp.ts
ADDED
package/src/util/logger.ts
CHANGED
|
@@ -26,14 +26,14 @@ export class Logger {
|
|
|
26
26
|
* @param message The error message to log.
|
|
27
27
|
* @param args Optional arguments.
|
|
28
28
|
*/
|
|
29
|
-
public static error(message:
|
|
29
|
+
public static error(message: unknown, ...args: string[]) {
|
|
30
30
|
this.logSingle(message, false, 'red', false);
|
|
31
31
|
args.forEach(() => {
|
|
32
32
|
this.logSingle(message, false, 'red', false);
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
public static logSingle(text:
|
|
36
|
+
public static logSingle(text: unknown, showSpinner = true, color: 'green' | 'red' = 'green', overrideConsole = true) {
|
|
37
37
|
if (this.currentFrame > 9) {
|
|
38
38
|
this.currentFrame = 0;
|
|
39
39
|
}
|
package/src/util/string-utils.ts
CHANGED
package/tsconfig.json
CHANGED
package/apexdocs.config.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { TargetFile, TargetType } from './src/settings';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
onBeforeFileWrite: (file: TargetFile): TargetFile => {
|
|
5
|
-
console.log('onBefore writing', file);
|
|
6
|
-
return file;
|
|
7
|
-
},
|
|
8
|
-
onAfterProcess: (files: TargetFile[]) => {
|
|
9
|
-
console.log('onAfterProcess files', files);
|
|
10
|
-
},
|
|
11
|
-
frontMatterHeader: (file: TargetType) => [`title: ${file.name}.cls`, `description: ${file.description}`],
|
|
12
|
-
sortMembersAlphabetically: true,
|
|
13
|
-
};
|