@cparra/apexdocs 2.4.0 → 2.6.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/docs/.nojekyll +0 -0
- package/docs/Main/GroupedClass.md +10 -0
- package/docs/{Sample-Classes → Main}/SampleClass.md +5 -1
- package/docs/README.md +4 -5
- package/docs/index.html +22 -0
- package/docs/ts/GroupedClass.d.ts +3 -0
- package/docs/ts/SampleClass.d.ts +11 -0
- package/docs/ts/SampleInterface.d.ts +0 -0
- package/examples/force-app/main/default/classes/GroupedClass.cls +1 -1
- package/examples/force-app/main/default/classes/SampleClass.cls +1 -1
- package/lib/application/Apexdocs.js +2 -1
- package/lib/application/Apexdocs.js.map +1 -1
- package/lib/cli/generate.js +3 -3
- package/lib/cli/generate.js.map +1 -1
- package/lib/model/markdown-file.js +1 -0
- package/lib/model/markdown-file.js.map +1 -1
- package/lib/model/markdown-generation-util/method-declaration-util.js +7 -3
- package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -1
- package/lib/model/ts-definition-file.d.ts +26 -0
- package/lib/model/ts-definition-file.js +137 -0
- package/lib/model/ts-definition-file.js.map +1 -0
- package/lib/service/state.d.ts +9 -0
- package/lib/service/state.js +20 -0
- package/lib/service/state.js.map +1 -0
- package/lib/settings.d.ts +2 -1
- package/lib/settings.js +15 -2
- package/lib/settings.js.map +1 -1
- package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +1 -0
- package/lib/transpiler/markdown/class-file-generatorHelper.js +26 -2
- package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +2 -1
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +3 -0
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +1 -1
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +2 -1
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +3 -0
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -1
- package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +2 -0
- package/lib/transpiler/markdown/markdown-transpiler-base.js.map +1 -1
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +5 -0
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +14 -0
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +1 -0
- package/lib/transpiler/transpiler.js +2 -0
- package/lib/transpiler/transpiler.js.map +1 -1
- package/lib/transpiler/ts-types/TsTypesTranspiler.d.ts +9 -0
- package/lib/transpiler/ts-types/TsTypesTranspiler.js +23 -0
- package/lib/transpiler/ts-types/TsTypesTranspiler.js.map +1 -0
- package/package.json +3 -2
- package/src/application/Apexdocs.ts +9 -1
- package/src/cli/generate.ts +3 -3
- package/src/model/markdown-file.ts +1 -0
- package/src/model/markdown-generation-util/method-declaration-util.ts +6 -1
- package/src/model/ts-definition-file.ts +165 -0
- package/src/service/state.ts +24 -0
- package/src/settings.ts +18 -3
- package/src/transpiler/markdown/class-file-generatorHelper.ts +29 -2
- package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +5 -1
- package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +5 -1
- package/src/transpiler/markdown/markdown-transpiler-base.ts +4 -0
- package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +11 -0
- package/src/transpiler/transpiler.ts +2 -0
- package/src/transpiler/ts-types/TsTypesTranspiler.ts +24 -0
- package/docs/Utils/GroupedClass.md +0 -10
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ public class MyClass {
|
|
|
75
75
|
|
|
76
76
|
### Demo
|
|
77
77
|
|
|
78
|
-
ApexDocs currently supports generating markdown files for Jekyll and Docsify sites.
|
|
78
|
+
ApexDocs currently supports generating markdown files for Jekyll and Docsify sites, as well as generating plain markdown files.
|
|
79
79
|
|
|
80
80
|
### In the wild
|
|
81
81
|
|
|
@@ -114,15 +114,15 @@ apexdocs-generate
|
|
|
114
114
|
|
|
115
115
|
The CLI supports the following parameters:
|
|
116
116
|
|
|
117
|
-
| Parameter | Alias | Description
|
|
118
|
-
|
|
119
|
-
| --sourceDir | -s | The directory location which contains your apex .cls classes.
|
|
120
|
-
| --targetDir | -t | The directory location where documentation will be generated to.
|
|
121
|
-
| --recursive | -r | Whether .cls classes will be searched for recursively in the directory provided.
|
|
122
|
-
| --scope | -p | A list of scopes to document. Values should be separated by a space, e.g --scope public private
|
|
123
|
-
| --targetGenerator | -g | Define the static file generator for which the documents will be created. Currently supports jekyll and
|
|
124
|
-
| --indexOnly | N/A | Defines whether only the index file should be
|
|
125
|
-
| --defaultGroupName | N/A | Defines the `@group` name to be used when a file does not specify it.
|
|
117
|
+
| Parameter | Alias | Description | Default | Required |
|
|
118
|
+
|--------------------|-------|------------------------------------------------------------------------------------------------------------------------------------------|-----------------|----------|
|
|
119
|
+
| --sourceDir | -s | The directory location which contains your apex .cls classes. | N/A | Yes |
|
|
120
|
+
| --targetDir | -t | The directory location where documentation will be generated to. | `docs` | No |
|
|
121
|
+
| --recursive | -r | Whether .cls classes will be searched for recursively in the directory provided. | `true` | No |
|
|
122
|
+
| --scope | -p | A list of scopes to document. Values should be separated by a space, e.g --scope public private | `global` | No |
|
|
123
|
+
| --targetGenerator | -g | Define the static file generator for which the documents will be created. Currently supports: `jekyll`, `docsify`, and `plain-markdown`. | `jekyll` | No |
|
|
124
|
+
| --indexOnly | N/A | Defines whether only the index file should be generated. | `false` | No |
|
|
125
|
+
| --defaultGroupName | N/A | Defines the `@group` name to be used when a file does not specify it. | `Miscellaneous` | No |
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
### Importing to your project
|
package/docs/.nojekyll
ADDED
|
File without changes
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
This is a class description. This class relates to [SampleInterface](/Sample-Interfaces/SampleInterface.md) But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist. You can also link using this syntax [SampleInterface](/Sample-Interfaces/SampleInterface.md)
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
**Group**
|
|
12
|
+
**Group** Main
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
**CustomAnnotation** A Custom annotation
|
|
@@ -29,6 +29,7 @@ This is a class description. This class relates to [SampleInterface](/Sample-Int
|
|
|
29
29
|
Constructs a SampleClass without any arguments. This relates to [SampleInterface](/Sample-Interfaces/SampleInterface.md)
|
|
30
30
|
|
|
31
31
|
###### Throws
|
|
32
|
+
|
|
32
33
|
|Exception|Description|
|
|
33
34
|
|---|---|
|
|
34
35
|
|`ExcName`|some exception|
|
|
@@ -52,6 +53,7 @@ SampleClass sampleInstance = new SampleClass();
|
|
|
52
53
|
Constructs a SampleClass with an argument.
|
|
53
54
|
|
|
54
55
|
###### Parameters
|
|
56
|
+
|
|
55
57
|
|Param|Description|
|
|
56
58
|
|---|---|
|
|
57
59
|
|`argument1`|Argument1 definition|
|
|
@@ -92,6 +94,7 @@ This is a String property.
|
|
|
92
94
|
Executes commands based on the passed in argument.
|
|
93
95
|
|
|
94
96
|
#### Parameters
|
|
97
|
+
|
|
95
98
|
|Param|Description|
|
|
96
99
|
|---|---|
|
|
97
100
|
|`argument1`|Argument1 to debug|
|
|
@@ -118,6 +121,7 @@ System.debug(result);
|
|
|
118
121
|
Something here
|
|
119
122
|
|
|
120
123
|
#### Parameters
|
|
124
|
+
|
|
121
125
|
|Param|Description|
|
|
122
126
|
|---|---|
|
|
123
127
|
|
package/docs/README.md
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
# Classes
|
|
2
|
-
##
|
|
2
|
+
## Main
|
|
3
3
|
|
|
4
|
-
### [GroupedClass](/
|
|
4
|
+
### [GroupedClass](/Main/GroupedClass.md)
|
|
5
5
|
|
|
6
6
|
Uses a block style apex doc
|
|
7
|
-
## Sample Classes
|
|
8
7
|
|
|
9
|
-
### [SampleClass](/
|
|
8
|
+
### [SampleClass](/Main/SampleClass.md)
|
|
10
9
|
|
|
11
10
|
This is a class description. This class relates to [SampleInterface](/Sample-Interfaces/SampleInterface.md) But this [ClassThatDoesNotExist](ClassThatDoesNotExist) does not exist. You can also link using this syntax [SampleInterface](/Sample-Interfaces/SampleInterface.md)
|
|
12
11
|
## Miscellaneous
|
|
13
12
|
|
|
14
|
-
### [SampleClassWithoutModifier](/
|
|
13
|
+
### [SampleClassWithoutModifier](/Miscellaneous/SampleClassWithoutModifier.md)
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
## Sample Interfaces
|
package/docs/index.html
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<title>Document</title>
|
|
6
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
7
|
+
<meta name="description" content="Description">
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
|
9
|
+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="app"></div>
|
|
13
|
+
<script>
|
|
14
|
+
window.$docsify = {
|
|
15
|
+
name: '',
|
|
16
|
+
repo: ''
|
|
17
|
+
}
|
|
18
|
+
</script>
|
|
19
|
+
<!-- Docsify v4 -->
|
|
20
|
+
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} SampleClass This is a class description. This class relates to {@link SampleInterface} But this {@link ClassThatDoesNotExist} does not exist. You can also link using this syntax <<SampleInterface>>
|
|
3
|
+
* @property {number} AnotherProp This is a Decimal property.
|
|
4
|
+
* @property {string} MyProp This is a String property.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} AnotherInnerClass Inner class belonging to SampleClass.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {Object} InnerClass Inner class belonging to SampleClass.
|
|
11
|
+
*/
|
|
File without changes
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @description This is a class description. This class relates to {@link SampleInterface}
|
|
3
3
|
* But this {@link ClassThatDoesNotExist} does not exist.
|
|
4
4
|
* You can also link using this syntax <<SampleInterface>>
|
|
5
|
-
* @group
|
|
5
|
+
* @group Main
|
|
6
6
|
* @CustomAnnotation A Custom annotation
|
|
7
7
|
* @author Cesar Parra
|
|
8
8
|
* @see SampleInterface
|
|
@@ -26,7 +26,8 @@ class Apexdocs {
|
|
|
26
26
|
const filteredTypes = manifest.filteredByAccessModifierAndAnnotations(settings_1.Settings.getInstance().scope);
|
|
27
27
|
types_repository_1.TypesRepository.getInstance().populate(filteredTypes);
|
|
28
28
|
logger_1.Logger.clear();
|
|
29
|
-
logger_1.Logger.logSingle(`
|
|
29
|
+
logger_1.Logger.logSingle(`Filtered ${manifest.types.length - filteredTypes.length} file(s) based on scope: ${settings_1.Settings.getInstance().scope}`, false, 'green', false);
|
|
30
|
+
logger_1.Logger.logSingle(`Creating documentation for ${filteredTypes.length} file(s)`, false, 'green', false);
|
|
30
31
|
const processor = settings_1.Settings.getInstance().typeTranspiler;
|
|
31
32
|
transpiler_1.default.generate(filteredTypes, processor);
|
|
32
33
|
const generatedFiles = processor.fileBuilder().files();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Apexdocs.js","sourceRoot":"","sources":["../../src/application/Apexdocs.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,wDAA2D;AAC3D,6DAAuF;AACvF,2CAAwC;AACxC,kEAA6D;AAC7D,8CAAkD;AAClD,0CAAuC;AACvC,yDAAkD;AAClD,wDAAoD;AACpD,gEAA4D;AAC5D,uDAA+C;AAG/C;;GAEG;AACH,MAAa,QAAQ;IACnB;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,eAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,iCAAc,CAAC,YAAY,CAAC,IAAI,+BAAiB,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,iCAAc,CAAC,IAAI,sBAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE3F,MAAM,aAAa,GAAW,QAAQ,CAAC,sCAAsC,CAAC,mBAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5G,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACtD,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,eAAM,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"Apexdocs.js","sourceRoot":"","sources":["../../src/application/Apexdocs.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,wDAA2D;AAC3D,6DAAuF;AACvF,2CAAwC;AACxC,kEAA6D;AAC7D,8CAAkD;AAClD,0CAAuC;AACvC,yDAAkD;AAClD,wDAAoD;AACpD,gEAA4D;AAC5D,uDAA+C;AAG/C;;GAEG;AACH,MAAa,QAAQ;IACnB;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,eAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,iCAAc,CAAC,YAAY,CAAC,IAAI,+BAAiB,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,iCAAc,CAAC,IAAI,sBAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE3F,MAAM,aAAa,GAAW,QAAQ,CAAC,sCAAsC,CAAC,mBAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5G,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACtD,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,eAAM,CAAC,SAAS,CACd,YAAY,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,4BACtD,mBAAQ,CAAC,WAAW,EAAE,CAAC,KACzB,EAAE,EACF,KAAK,EACL,OAAO,EACP,KAAK,CACN,CAAC;QACF,eAAM,CAAC,SAAS,CAAC,8BAA8B,aAAa,CAAC,MAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC;QACxD,oBAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QACvD,wBAAU,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE;YACpD,eAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,sBAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;;AA/BH,4BAwCC;AAPQ,8BAAqB,GAAG,CAAC,UAAsB,EAAoB,EAAE;;IAC1E,MAAM,MAAM,GAAG,yBAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,eAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,oBAAoB,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC,CAAC;KACjF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/lib/cli/generate.js
CHANGED
|
@@ -34,13 +34,13 @@ const argv = yargs.options({
|
|
|
34
34
|
type: 'string',
|
|
35
35
|
alias: 'g',
|
|
36
36
|
default: 'jekyll',
|
|
37
|
-
choices: ['jekyll', 'docsify'],
|
|
38
|
-
describe: 'Define the static file generator for which the documents will be created. Currently supports jekyll, and
|
|
37
|
+
choices: ['jekyll', 'docsify', 'plain-markdown', 'ts-def'],
|
|
38
|
+
describe: 'Define the static file generator for which the documents will be created. Currently supports jekyll, docsify, plain markdown, and Typescript type definitions.',
|
|
39
39
|
},
|
|
40
40
|
indexOnly: {
|
|
41
41
|
type: 'boolean',
|
|
42
42
|
default: false,
|
|
43
|
-
describe: 'Defines whether only the index file should be
|
|
43
|
+
describe: 'Defines whether only the index file should be generated.',
|
|
44
44
|
},
|
|
45
45
|
defaultGroupName: {
|
|
46
46
|
type: 'string',
|
package/lib/cli/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAE/B,0CAAyD;AACzD,sDAAmD;AAEnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,+DAA+D;KAC1E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kEAAkE;KAC7E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,kFAAkF;KAC7F;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,QAAQ,EACN,sHAAsH;YACtH,0HAA0H;KAC7H;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAE/B,0CAAyD;AACzD,sDAAmD;AAEnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,+DAA+D;KAC1E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kEAAkE;KAC7E;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,kFAAkF;KAC7F;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,QAAQ,EACN,sHAAsH;YACtH,0HAA0H;KAC7H;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC;QAC1D,QAAQ,EACN,gKAAgK;KACnK;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,0DAA0D;KACrE;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,qEAAqE;KAChF;CACF,CAAC,CAAC,IAAI,CAAC;AAER,mBAAQ,CAAC,KAAK,CAAC;IACb,eAAe,EAAE,IAAI,CAAC,SAAS;IAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,eAAe,EAAE,IAAI,CAAC,eAAmC;IACzD,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;CACxC,CAAC,CAAC;AAEH,mBAAQ,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-file.js","sourceRoot":"","sources":["../../src/model/markdown-file.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"markdown-file.js","sourceRoot":"","sources":["../../src/model/markdown-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,13 +38,17 @@ function buildSignature(name, parameterAware) {
|
|
|
38
38
|
}
|
|
39
39
|
const signatureParameters = parameterAware.parameters.map((param) => `${param.type} ${param.name}`);
|
|
40
40
|
signature += signatureParameters.join(', ');
|
|
41
|
-
return
|
|
41
|
+
return `${signature})`;
|
|
42
42
|
}
|
|
43
43
|
function addParameters(markdownFile, methodModel, startingHeadingLevel) {
|
|
44
|
-
var _a;
|
|
44
|
+
var _a, _b;
|
|
45
|
+
if (!((_a = methodModel.docComment) === null || _a === void 0 ? void 0 : _a.paramAnnotations.length)) {
|
|
46
|
+
// If there are no parameters defined in the docs then we don't want to display this section
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
45
49
|
markdownFile.addTitle('Parameters', startingHeadingLevel + 3);
|
|
46
50
|
markdownFile.initializeTable('Param', 'Description');
|
|
47
|
-
(
|
|
51
|
+
(_b = methodModel.docComment) === null || _b === void 0 ? void 0 : _b.paramAnnotations.forEach((paramAnnotation) => {
|
|
48
52
|
const paramName = paramAnnotation.paramName;
|
|
49
53
|
const paramDescription = paramAnnotation.bodyLines.join(' ');
|
|
50
54
|
markdownFile.addTableRow(`\`${paramName}\``, paramDescription);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-declaration-util.js","sourceRoot":"","sources":["../../../src/model/markdown-generation-util/method-declaration-util.ts"],"names":[],"mappings":";;;AAGA,+EAA+E;AAE/E,SAAgB,aAAa,CAC3B,YAA0B,EAC1B,OAA6C,EAC7C,oBAA4B,EAC5B,SAAS,GAAG,EAAE;IAEd,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;;QAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,aAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACjG,YAAY,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;QACvG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,YAAY,CAAC,YAAY,EAAE,CAAC;YAC5B,YAAY,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,UAAI,aAAa,CAAC,UAAU,0CAAE,WAAW,EAAE;YACzC,YAAY,CAAC,YAAY,EAAE,CAAC;YAC5B,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3D,YAAY,CAAC,YAAY,EAAE,CAAC;SAC7B;QAED,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE;YACnC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;SAClE;QAED,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC3B,UAAU,CAAC,YAAY,EAAE,aAA6B,EAAE,oBAAoB,CAAC,CAAC;SAC/E;QAED,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAElE,4DAA8B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAE5D,UAAI,aAAa,CAAC,UAAU,0CAAE,iBAAiB,EAAE;YAC/C,UAAU,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,iBAAiB,EAAE,CAAC;AACnC,CAAC;AAtCD,sCAsCC;AAUD,SAAS,cAAc,CAAC,IAAY,EAAE,cAA8B;IAClE,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;IAC3B,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAK,cAA+B,CAAC,eAAe,CAAC,MAAM,EAAE;QACvF,SAAS,GAAI,cAA+B,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;KAC1F;IACD,MAAM,mBAAmB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,SAAS,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"method-declaration-util.js","sourceRoot":"","sources":["../../../src/model/markdown-generation-util/method-declaration-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { File } from './file';
|
|
2
|
+
import { WalkerListener } from '../service/walkers/walker';
|
|
3
|
+
import { ClassMirror, ConstructorMirror, EnumMirror, FieldMirror, InterfaceMirror, MethodMirror, PropertyMirror, Type } from '@cparra/apex-reflection';
|
|
4
|
+
export default class TsDefinitionFile extends File implements WalkerListener {
|
|
5
|
+
fileExtension(): string;
|
|
6
|
+
constructor(typeMirror: Type);
|
|
7
|
+
onConstructorDeclaration(className: string, constructors: ConstructorMirror[]): void;
|
|
8
|
+
onFieldsDeclaration(fields: FieldMirror[]): void;
|
|
9
|
+
onInnerClassesDeclaration(classes: ClassMirror[]): void;
|
|
10
|
+
onInnerEnumsDeclaration(enums: EnumMirror[]): void;
|
|
11
|
+
onInnerInterfacesDeclaration(interfaces: InterfaceMirror[]): void;
|
|
12
|
+
onMethodsDeclaration(methods: MethodMirror[]): void;
|
|
13
|
+
onPropertiesDeclaration(properties: PropertyMirror[]): void;
|
|
14
|
+
onTypeDeclaration(typeMirror: Type): void;
|
|
15
|
+
private addPropertiesAndFields;
|
|
16
|
+
private addInnerClasses;
|
|
17
|
+
addBlankLine(): void;
|
|
18
|
+
initializeBlock(): void;
|
|
19
|
+
finalizeBlock(): void;
|
|
20
|
+
declareType(className: string, docDescription: string): void;
|
|
21
|
+
declareProperty(propertyType: string, propertyName: string, docDescription: string): void;
|
|
22
|
+
sanitizeApexPropertyToJavascript(propertyType: string): string;
|
|
23
|
+
isListProperty(propertyType: string): true | undefined;
|
|
24
|
+
extractTypeFromList(propertyType: string): string;
|
|
25
|
+
replaceAll(sourceString: string, strReplace: string, strWith: string): string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const file_1 = require("./file");
|
|
4
|
+
const walker_factory_1 = require("../service/walkers/walker-factory");
|
|
5
|
+
class TsDefinitionFile extends file_1.File {
|
|
6
|
+
fileExtension() {
|
|
7
|
+
return '.d.ts';
|
|
8
|
+
}
|
|
9
|
+
constructor(typeMirror) {
|
|
10
|
+
super(typeMirror.name, '');
|
|
11
|
+
const walker = walker_factory_1.WalkerFactory.get(typeMirror);
|
|
12
|
+
walker.walk(this);
|
|
13
|
+
}
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
15
|
+
onConstructorDeclaration(className, constructors) { }
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
17
|
+
onFieldsDeclaration(fields) { }
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
19
|
+
onInnerClassesDeclaration(classes) { }
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
21
|
+
onInnerEnumsDeclaration(enums) { }
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
23
|
+
onInnerInterfacesDeclaration(interfaces) { }
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
25
|
+
onMethodsDeclaration(methods) { }
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
27
|
+
onPropertiesDeclaration(properties) { }
|
|
28
|
+
onTypeDeclaration(typeMirror) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
this.initializeBlock();
|
|
31
|
+
this.declareType(typeMirror.name, (_b = (_a = typeMirror.docComment) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : '');
|
|
32
|
+
this.addPropertiesAndFields(typeMirror);
|
|
33
|
+
// TODO: Auraenabled method support
|
|
34
|
+
// TODO: Remember that methods with getX and setX lose the get and set
|
|
35
|
+
// TODO: Classes that dont have any auraenabled things should be skipped
|
|
36
|
+
this.finalizeBlock();
|
|
37
|
+
this.addInnerClasses(typeMirror);
|
|
38
|
+
}
|
|
39
|
+
addPropertiesAndFields(typeMirror) {
|
|
40
|
+
const classModel = typeMirror;
|
|
41
|
+
if (classModel.properties.length === 0 && classModel.fields.length === 0) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const propertiesAndFields = [...classModel.properties, ...classModel.fields].filter((e) => e.annotations.findIndex((a) => a.name === 'auraenabled') !== -1);
|
|
45
|
+
propertiesAndFields
|
|
46
|
+
.sort((propA, propB) => {
|
|
47
|
+
if (propA.name < propB.name)
|
|
48
|
+
return -1;
|
|
49
|
+
if (propA.name > propB.name)
|
|
50
|
+
return 1;
|
|
51
|
+
return 0;
|
|
52
|
+
})
|
|
53
|
+
.forEach((propertyModel) => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
this.declareProperty(propertyModel.type, propertyModel.name, (_b = (_a = propertyModel.docComment) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : '');
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
addInnerClasses(typeMirror) {
|
|
59
|
+
const classModel = typeMirror;
|
|
60
|
+
if (classModel.classes.length > 0) {
|
|
61
|
+
classModel.classes
|
|
62
|
+
.sort((classA, classB) => {
|
|
63
|
+
if (classA.name < classB.name)
|
|
64
|
+
return -1;
|
|
65
|
+
if (classA.name > classB.name)
|
|
66
|
+
return 1;
|
|
67
|
+
return 0;
|
|
68
|
+
})
|
|
69
|
+
.forEach((innerClass) => {
|
|
70
|
+
this.onTypeDeclaration(innerClass);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
addBlankLine() {
|
|
75
|
+
this._contents += '\n';
|
|
76
|
+
}
|
|
77
|
+
initializeBlock() {
|
|
78
|
+
this._contents += '/**';
|
|
79
|
+
this.addBlankLine();
|
|
80
|
+
}
|
|
81
|
+
finalizeBlock() {
|
|
82
|
+
this._contents += ' */';
|
|
83
|
+
this.addBlankLine();
|
|
84
|
+
}
|
|
85
|
+
declareType(className, docDescription) {
|
|
86
|
+
this._contents += ` * @typedef {Object} ${className} ${docDescription}`;
|
|
87
|
+
this.addBlankLine();
|
|
88
|
+
}
|
|
89
|
+
declareProperty(propertyType, propertyName, docDescription) {
|
|
90
|
+
let sanitizedType;
|
|
91
|
+
// First we check if we are dealing with a list
|
|
92
|
+
if (this.isListProperty(propertyType)) {
|
|
93
|
+
// If we are then we first extract the type from the list
|
|
94
|
+
sanitizedType = this.extractTypeFromList(propertyType);
|
|
95
|
+
// then sanitize it
|
|
96
|
+
sanitizedType = this.sanitizeApexPropertyToJavascript(sanitizedType);
|
|
97
|
+
// and then we add brackets ([])
|
|
98
|
+
sanitizedType = sanitizedType + '[]';
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
sanitizedType = this.sanitizeApexPropertyToJavascript(propertyType);
|
|
102
|
+
}
|
|
103
|
+
this._contents += ` * @property {${sanitizedType}} ${propertyName} ${docDescription}`;
|
|
104
|
+
this.addBlankLine();
|
|
105
|
+
}
|
|
106
|
+
sanitizeApexPropertyToJavascript(propertyType) {
|
|
107
|
+
const lowerPropertyType = propertyType.toLowerCase();
|
|
108
|
+
if (lowerPropertyType === 'decimal' || lowerPropertyType === 'integer' || lowerPropertyType === 'double') {
|
|
109
|
+
return 'number';
|
|
110
|
+
}
|
|
111
|
+
if (lowerPropertyType === 'boolean' || lowerPropertyType === 'string') {
|
|
112
|
+
// If it is a built-in type then we return the lower-cased version.
|
|
113
|
+
return lowerPropertyType;
|
|
114
|
+
}
|
|
115
|
+
// Otherwise, we respect casing
|
|
116
|
+
return propertyType;
|
|
117
|
+
}
|
|
118
|
+
isListProperty(propertyType) {
|
|
119
|
+
const lowerPropertyType = propertyType.toLowerCase();
|
|
120
|
+
if (lowerPropertyType.includes('<') && lowerPropertyType.includes('list')) {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
extractTypeFromList(propertyType) {
|
|
125
|
+
const propertyWithoutList = this.replaceAll(propertyType, 'list', '');
|
|
126
|
+
return propertyWithoutList.replace('list', '').replace('<', '').replace('>', '');
|
|
127
|
+
}
|
|
128
|
+
// Case insensitive replace
|
|
129
|
+
replaceAll(sourceString, strReplace, strWith) {
|
|
130
|
+
// See http://stackoverflow.com/a/3561711/556609
|
|
131
|
+
const esc = strReplace.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
132
|
+
const reg = new RegExp(esc, 'ig');
|
|
133
|
+
return sourceString.replace(reg, strWith);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.default = TsDefinitionFile;
|
|
137
|
+
//# sourceMappingURL=ts-definition-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-definition-file.js","sourceRoot":"","sources":["../../src/model/ts-definition-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Type } from '@cparra/apex-reflection';
|
|
2
|
+
export default class State {
|
|
3
|
+
private static instance;
|
|
4
|
+
private typeBeingProcessed?;
|
|
5
|
+
private constructor();
|
|
6
|
+
static getInstance(): State;
|
|
7
|
+
setTypeBeingProcessed(typeToSet: Type): void;
|
|
8
|
+
getTypeBeingProcessed(): Type | undefined;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class State {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5
|
+
constructor() { }
|
|
6
|
+
static getInstance() {
|
|
7
|
+
if (!State.instance) {
|
|
8
|
+
State.instance = new State();
|
|
9
|
+
}
|
|
10
|
+
return State.instance;
|
|
11
|
+
}
|
|
12
|
+
setTypeBeingProcessed(typeToSet) {
|
|
13
|
+
this.typeBeingProcessed = typeToSet;
|
|
14
|
+
}
|
|
15
|
+
getTypeBeingProcessed() {
|
|
16
|
+
return this.typeBeingProcessed;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = State;
|
|
20
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/service/state.ts"],"names":[],"mappings":";;AAEA,MAAqB,KAAK;IAIxB,gEAAgE;IAChE,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnB,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;SAC9B;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEM,qBAAqB,CAAC,SAAe;QAC1C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACtC,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF;AArBD,wBAqBC"}
|
package/lib/settings.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ProcessorTypeTranspiler from './transpiler/processor-type-transpiler';
|
|
2
|
-
export declare type GeneratorChoices = 'jekyll' | 'docsify';
|
|
2
|
+
export declare type GeneratorChoices = 'jekyll' | 'docsify' | 'plain-markdown' | 'ts-def';
|
|
3
3
|
export interface SettingsConfig {
|
|
4
4
|
sourceDirectory: string;
|
|
5
5
|
recursive: boolean;
|
|
@@ -19,6 +19,7 @@ export declare class Settings {
|
|
|
19
19
|
get recursive(): boolean;
|
|
20
20
|
get scope(): string[];
|
|
21
21
|
get outputDir(): string;
|
|
22
|
+
private static typeTranspilerCache?;
|
|
22
23
|
get typeTranspiler(): ProcessorTypeTranspiler;
|
|
23
24
|
get indexOnly(): boolean;
|
|
24
25
|
getDefaultGroupName(): string;
|
package/lib/settings.js
CHANGED
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Settings = void 0;
|
|
4
4
|
const jekyll_docsProcessor_1 = require("./transpiler/markdown/jekyll/jekyll-docsProcessor");
|
|
5
5
|
const docsify_docs_processor_1 = require("./transpiler/markdown/docsify/docsify-docs-processor");
|
|
6
|
+
const plain_docsProcessor_1 = require("./transpiler/markdown/plain-markdown/plain-docsProcessor");
|
|
7
|
+
const TsTypesTranspiler_1 = require("./transpiler/ts-types/TsTypesTranspiler");
|
|
6
8
|
class Settings {
|
|
7
9
|
constructor(config) {
|
|
8
10
|
this.config = config;
|
|
@@ -29,11 +31,22 @@ class Settings {
|
|
|
29
31
|
return this.config.outputDir;
|
|
30
32
|
}
|
|
31
33
|
get typeTranspiler() {
|
|
34
|
+
if (Settings.typeTranspilerCache) {
|
|
35
|
+
return Settings.typeTranspilerCache;
|
|
36
|
+
}
|
|
32
37
|
switch (this.config.targetGenerator) {
|
|
33
38
|
case 'jekyll':
|
|
34
|
-
|
|
39
|
+
Settings.typeTranspilerCache = new jekyll_docsProcessor_1.JekyllDocsProcessor();
|
|
40
|
+
return Settings.typeTranspilerCache;
|
|
35
41
|
case 'docsify':
|
|
36
|
-
|
|
42
|
+
Settings.typeTranspilerCache = new docsify_docs_processor_1.default();
|
|
43
|
+
return Settings.typeTranspilerCache;
|
|
44
|
+
case 'plain-markdown':
|
|
45
|
+
Settings.typeTranspilerCache = new plain_docsProcessor_1.PlainMarkdownDocsProcessor();
|
|
46
|
+
return Settings.typeTranspilerCache;
|
|
47
|
+
case 'ts-def':
|
|
48
|
+
Settings.typeTranspilerCache = new TsTypesTranspiler_1.TsTypesTranspiler();
|
|
49
|
+
return Settings.typeTranspilerCache;
|
|
37
50
|
default:
|
|
38
51
|
throw Error('Invalid target generator');
|
|
39
52
|
}
|
package/lib/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AACA,4FAAwF;AACxF,iGAAwF;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AACA,4FAAwF;AACxF,iGAAwF;AACxF,kGAAsG;AACtG,+EAA4E;AAc5E,MAAa,QAAQ;IAGnB,YAA2B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAsB;QACxC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAID,IAAI,cAAc;QAChB,IAAI,QAAQ,CAAC,mBAAmB,EAAE;YAChC,OAAO,QAAQ,CAAC,mBAAmB,CAAC;SACrC;QACD,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YACnC,KAAK,QAAQ;gBACX,QAAQ,CAAC,mBAAmB,GAAG,IAAI,0CAAmB,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC,mBAAmB,CAAC;YACtC,KAAK,SAAS;gBACZ,QAAQ,CAAC,mBAAmB,GAAG,IAAI,gCAAoB,EAAE,CAAC;gBAC1D,OAAO,QAAQ,CAAC,mBAAmB,CAAC;YACtC,KAAK,gBAAgB;gBACnB,QAAQ,CAAC,mBAAmB,GAAG,IAAI,gDAA0B,EAAE,CAAC;gBAChE,OAAO,QAAQ,CAAC,mBAAmB,CAAC;YACtC,KAAK,QAAQ;gBACX,QAAQ,CAAC,mBAAmB,GAAG,IAAI,qCAAiB,EAAE,CAAC;gBACvD,OAAO,QAAQ,CAAC,mBAAmB,CAAC;YACtC;gBACE,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;CACF;AA/DD,4BA+DC"}
|
|
@@ -3,5 +3,6 @@ export default class ClassFileGeneratorHelper {
|
|
|
3
3
|
static getSanitizedGroup(classModel: Type): string;
|
|
4
4
|
static getFileLink(classModel: Type): string;
|
|
5
5
|
static getFileLinkByTypeName(typeName: string): string;
|
|
6
|
+
private static getDirectoryRoot;
|
|
6
7
|
private static getClassGroup;
|
|
7
8
|
}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const types_repository_1 = require("../../model/types-repository");
|
|
4
4
|
const settings_1 = require("../../settings");
|
|
5
|
+
const state_1 = require("../../service/state");
|
|
5
6
|
class ClassFileGeneratorHelper {
|
|
6
7
|
static getSanitizedGroup(classModel) {
|
|
7
8
|
return this.getClassGroup(classModel).replace(/ /g, '-').replace('.', '');
|
|
8
9
|
}
|
|
9
10
|
static getFileLink(classModel) {
|
|
10
|
-
|
|
11
|
+
const directoryRoot = this.getDirectoryRoot(classModel);
|
|
12
|
+
return `[${classModel.name}](${directoryRoot}${classModel.name}.md)`;
|
|
11
13
|
}
|
|
12
14
|
static getFileLinkByTypeName(typeName) {
|
|
13
15
|
const type = types_repository_1.TypesRepository.getInstance().getByName(typeName);
|
|
@@ -17,9 +19,31 @@ class ClassFileGeneratorHelper {
|
|
|
17
19
|
}
|
|
18
20
|
return this.getFileLink(type);
|
|
19
21
|
}
|
|
22
|
+
static getDirectoryRoot(classModel) {
|
|
23
|
+
// root-relative links start from the root by using a leading '/'
|
|
24
|
+
if (settings_1.Settings.getInstance().typeTranspiler.getLinkingStrategy() === 'root-relative') {
|
|
25
|
+
return `/${this.getSanitizedGroup(classModel)}/`;
|
|
26
|
+
}
|
|
27
|
+
// path-relative links traverse the directory structure
|
|
28
|
+
const typeBeingProcessed = state_1.default.getInstance().getTypeBeingProcessed();
|
|
29
|
+
if (typeBeingProcessed) {
|
|
30
|
+
if (this.getClassGroup(typeBeingProcessed) === this.getClassGroup(classModel)) {
|
|
31
|
+
// If the types the same groups then we simply link directly to that file
|
|
32
|
+
return './';
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// If the types have different groups then we have to go up a directory
|
|
36
|
+
return `../${this.getSanitizedGroup(classModel)}/`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// If nothing is being processed then we assume we are at the root and links should include the groups
|
|
41
|
+
return `./${this.getSanitizedGroup(classModel)}/`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
20
44
|
static getClassGroup(classModel) {
|
|
21
45
|
var _a, _b;
|
|
22
|
-
const groupAnnotation = (_a = classModel.docComment) === null || _a === void 0 ? void 0 : _a.annotations.find((annotation) => annotation.name === 'group');
|
|
46
|
+
const groupAnnotation = (_a = classModel.docComment) === null || _a === void 0 ? void 0 : _a.annotations.find((annotation) => annotation.name.toLowerCase() === 'group');
|
|
23
47
|
return (_b = groupAnnotation === null || groupAnnotation === void 0 ? void 0 : groupAnnotation.body) !== null && _b !== void 0 ? _b : settings_1.Settings.getInstance().getDefaultGroupName();
|
|
24
48
|
}
|
|
25
49
|
}
|