@d-fischer/documen.ts 0.16.9 → 0.17.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.
Files changed (300) hide show
  1. package/index.html +36 -35
  2. package/lib/common/CustomError.js +1 -4
  3. package/lib/common/CustomError.js.map +1 -1
  4. package/lib/common/Paths.js +1 -2
  5. package/lib/common/components/Badge.js +7 -10
  6. package/lib/common/components/Badge.js.map +1 -1
  7. package/lib/common/components/BetaNotice.js +5 -10
  8. package/lib/common/components/BetaNotice.js.map +1 -1
  9. package/lib/common/components/Button.js +8 -12
  10. package/lib/common/components/Button.js.map +1 -1
  11. package/lib/common/components/CodeBlock.js +45 -61
  12. package/lib/common/components/CodeBlock.js.map +1 -1
  13. package/lib/common/components/CodeLink.js +12 -15
  14. package/lib/common/components/CodeLink.js.map +1 -1
  15. package/lib/common/components/DeprecationNotice.js +5 -10
  16. package/lib/common/components/DeprecationNotice.js.map +1 -1
  17. package/lib/common/components/FunctionParamDesc.js +7 -19
  18. package/lib/common/components/FunctionParamDesc.js.map +1 -1
  19. package/lib/common/components/FunctionParamDescEntry.js +26 -38
  20. package/lib/common/components/FunctionParamDescEntry.js.map +1 -1
  21. package/lib/common/components/FunctionReturnType.js +8 -17
  22. package/lib/common/components/FunctionReturnType.js.map +1 -1
  23. package/lib/common/components/FunctionSignature.js +7 -22
  24. package/lib/common/components/FunctionSignature.js.map +1 -1
  25. package/lib/common/components/InterfaceDetail.js +11 -18
  26. package/lib/common/components/InterfaceDetail.js.map +1 -1
  27. package/lib/common/components/InterfaceRepresentation.js +21 -40
  28. package/lib/common/components/InterfaceRepresentation.js.map +1 -1
  29. package/lib/common/components/MainMenu.js +20 -36
  30. package/lib/common/components/MainMenu.js.map +1 -1
  31. package/lib/common/components/NavMenu.js +6 -9
  32. package/lib/common/components/NavMenu.js.map +1 -1
  33. package/lib/common/components/NavMenuGroup.js +5 -10
  34. package/lib/common/components/NavMenuGroup.js.map +1 -1
  35. package/lib/common/components/NavMenuItem.js +8 -11
  36. package/lib/common/components/NavMenuItem.js.map +1 -1
  37. package/lib/common/components/PageArticle.js +7 -10
  38. package/lib/common/components/PageArticle.js.map +1 -1
  39. package/lib/common/components/SymbolHeader.js +6 -20
  40. package/lib/common/components/SymbolHeader.js.map +1 -1
  41. package/lib/common/components/TypeAliasHint.js +7 -22
  42. package/lib/common/components/TypeAliasHint.js.map +1 -1
  43. package/lib/common/components/TypeLink.js +12 -16
  44. package/lib/common/components/TypeLink.js.map +1 -1
  45. package/lib/common/components/VersionMenu.js +21 -28
  46. package/lib/common/components/VersionMenu.js.map +1 -1
  47. package/lib/common/components/cards/CardToolbar.js +11 -17
  48. package/lib/common/components/cards/CardToolbar.js.map +1 -1
  49. package/lib/common/components/cards/EventCard.js +21 -46
  50. package/lib/common/components/cards/EventCard.js.map +1 -1
  51. package/lib/common/components/cards/FunctionCardHeader.js +13 -25
  52. package/lib/common/components/cards/FunctionCardHeader.js.map +1 -1
  53. package/lib/common/components/cards/MethodCard.js +13 -23
  54. package/lib/common/components/cards/MethodCard.js.map +1 -1
  55. package/lib/common/components/cards/PropertyCard.js +15 -31
  56. package/lib/common/components/cards/PropertyCard.js.map +1 -1
  57. package/lib/common/components/codeBuilders/ReferenceTypeView.js +12 -25
  58. package/lib/common/components/codeBuilders/ReferenceTypeView.js.map +1 -1
  59. package/lib/common/components/codeBuilders/Type.js +30 -75
  60. package/lib/common/components/codeBuilders/Type.js.map +1 -1
  61. package/lib/common/components/overviewTable/OverviewTable.js +6 -21
  62. package/lib/common/components/overviewTable/OverviewTable.js.map +1 -1
  63. package/lib/common/components/overviewTable/OverviewTableEntry.js +13 -22
  64. package/lib/common/components/overviewTable/OverviewTableEntry.js.map +1 -1
  65. package/lib/common/config/Config.js +1 -2
  66. package/lib/common/config/Util.js +4 -8
  67. package/lib/common/config/Util.js.map +1 -1
  68. package/lib/common/config/index.js +5 -9
  69. package/lib/common/config/index.js.map +1 -1
  70. package/lib/common/containers/App.js +10 -18
  71. package/lib/common/containers/App.js.map +1 -1
  72. package/lib/common/containers/AppLayout.js +5 -10
  73. package/lib/common/containers/AppLayout.js.map +1 -1
  74. package/lib/common/containers/Card.js +6 -9
  75. package/lib/common/containers/Card.js.map +1 -1
  76. package/lib/common/containers/PageContent.js +5 -8
  77. package/lib/common/containers/PageContent.js.map +1 -1
  78. package/lib/common/containers/PageHeader.js +5 -8
  79. package/lib/common/containers/PageHeader.js.map +1 -1
  80. package/lib/common/containers/PageSwitch.js +10 -19
  81. package/lib/common/containers/PageSwitch.js.map +1 -1
  82. package/lib/common/containers/ReferencePackageContainer.js +37 -54
  83. package/lib/common/containers/ReferencePackageContainer.js.map +1 -1
  84. package/lib/common/htmlRenderer/HtmlRenderer.js +23 -37
  85. package/lib/common/htmlRenderer/HtmlRenderer.js.map +1 -1
  86. package/lib/common/htmlRenderer/RouterMode.js +1 -2
  87. package/lib/common/htmlRenderer/StaticRouterWithSuffix.js +20 -24
  88. package/lib/common/htmlRenderer/StaticRouterWithSuffix.js.map +1 -1
  89. package/lib/common/pages/ClassPage.js +39 -67
  90. package/lib/common/pages/ClassPage.js.map +1 -1
  91. package/lib/common/pages/DocPage.js +27 -39
  92. package/lib/common/pages/DocPage.js.map +1 -1
  93. package/lib/common/pages/EnumPage.js +20 -40
  94. package/lib/common/pages/EnumPage.js.map +1 -1
  95. package/lib/common/pages/FunctionPage.js +20 -39
  96. package/lib/common/pages/FunctionPage.js.map +1 -1
  97. package/lib/common/pages/InterfacePage.js +20 -32
  98. package/lib/common/pages/InterfacePage.js.map +1 -1
  99. package/lib/common/pages/TypeAliasPage.js +19 -34
  100. package/lib/common/pages/TypeAliasPage.js.map +1 -1
  101. package/lib/common/reference/index.js +1 -3
  102. package/lib/common/reference/index.js.map +1 -1
  103. package/lib/common/theme.js +1 -3
  104. package/lib/common/theme.js.map +1 -1
  105. package/lib/common/tools/ArrayTools.js +7 -18
  106. package/lib/common/tools/ArrayTools.js.map +1 -1
  107. package/lib/common/tools/CodeTools.js +12 -23
  108. package/lib/common/tools/CodeTools.js.map +1 -1
  109. package/lib/common/tools/ConfigTools.js +15 -20
  110. package/lib/common/tools/ConfigTools.js.map +1 -1
  111. package/lib/common/tools/FileTools.js +9 -16
  112. package/lib/common/tools/FileTools.js.map +1 -1
  113. package/lib/common/tools/FunctionTools.js +3 -7
  114. package/lib/common/tools/FunctionTools.js.map +1 -1
  115. package/lib/common/tools/NodeTools.js +22 -33
  116. package/lib/common/tools/NodeTools.js.map +1 -1
  117. package/lib/common/tools/Point.js +1 -2
  118. package/lib/common/tools/ReferenceTools.js +30 -43
  119. package/lib/common/tools/ReferenceTools.js.map +1 -1
  120. package/lib/common/tools/StringTools.js +3 -9
  121. package/lib/common/tools/StringTools.js.map +1 -1
  122. package/lib/common/tools/TypeTools.js +1 -2
  123. package/lib/common/tools/markdown/MarkdownParser.js +21 -28
  124. package/lib/common/tools/markdown/MarkdownParser.js.map +1 -1
  125. package/lib/common/tools/markdown/plugins/customDirectives.js +15 -17
  126. package/lib/common/tools/markdown/plugins/customDirectives.js.map +1 -1
  127. package/lib/common/tools/markdown/plugins/gfmTables.js +7 -12
  128. package/lib/common/tools/markdown/plugins/gfmTables.js.map +1 -1
  129. package/lib/common/tools/markdown/plugins/symbolLinks.js +9 -13
  130. package/lib/common/tools/markdown/plugins/symbolLinks.js.map +1 -1
  131. package/lib/generator/analyzer/AnalyzeContext.js +5 -6
  132. package/lib/generator/analyzer/AnalyzeContext.js.map +1 -1
  133. package/lib/generator/analyzer/DocComment.js +17 -23
  134. package/lib/generator/analyzer/DocComment.js.map +1 -1
  135. package/lib/generator/analyzer/DocCommentTag.js +4 -5
  136. package/lib/generator/analyzer/DocCommentTag.js.map +1 -1
  137. package/lib/generator/analyzer/Project.js +71 -84
  138. package/lib/generator/analyzer/Project.js.map +1 -1
  139. package/lib/generator/analyzer/createReflection.js +87 -101
  140. package/lib/generator/analyzer/createReflection.js.map +1 -1
  141. package/lib/generator/analyzer/createType.js +51 -62
  142. package/lib/generator/analyzer/createType.js.map +1 -1
  143. package/lib/generator/analyzer/reflections/AccessorReflection.js +36 -39
  144. package/lib/generator/analyzer/reflections/AccessorReflection.js.map +1 -1
  145. package/lib/generator/analyzer/reflections/ClassReflection.js +58 -51
  146. package/lib/generator/analyzer/reflections/ClassReflection.js.map +1 -1
  147. package/lib/generator/analyzer/reflections/ConstructorReflection.js +28 -36
  148. package/lib/generator/analyzer/reflections/ConstructorReflection.js.map +1 -1
  149. package/lib/generator/analyzer/reflections/EnumMemberReflection.js +15 -18
  150. package/lib/generator/analyzer/reflections/EnumMemberReflection.js.map +1 -1
  151. package/lib/generator/analyzer/reflections/EnumReflection.js +21 -23
  152. package/lib/generator/analyzer/reflections/EnumReflection.js.map +1 -1
  153. package/lib/generator/analyzer/reflections/FunctionReflection.js +14 -16
  154. package/lib/generator/analyzer/reflections/FunctionReflection.js.map +1 -1
  155. package/lib/generator/analyzer/reflections/Heritage.js +6 -11
  156. package/lib/generator/analyzer/reflections/Heritage.js.map +1 -1
  157. package/lib/generator/analyzer/reflections/InterfaceReflection.js +41 -41
  158. package/lib/generator/analyzer/reflections/InterfaceReflection.js.map +1 -1
  159. package/lib/generator/analyzer/reflections/MethodReflection.js +40 -45
  160. package/lib/generator/analyzer/reflections/MethodReflection.js.map +1 -1
  161. package/lib/generator/analyzer/reflections/ParameterReflection.js +68 -69
  162. package/lib/generator/analyzer/reflections/ParameterReflection.js.map +1 -1
  163. package/lib/generator/analyzer/reflections/PropertyReflection.js +43 -40
  164. package/lib/generator/analyzer/reflections/PropertyReflection.js.map +1 -1
  165. package/lib/generator/analyzer/reflections/ReferenceReflection.js +8 -7
  166. package/lib/generator/analyzer/reflections/ReferenceReflection.js.map +1 -1
  167. package/lib/generator/analyzer/reflections/Reflection.js +35 -38
  168. package/lib/generator/analyzer/reflections/Reflection.js.map +1 -1
  169. package/lib/generator/analyzer/reflections/SignatureReflection.js +42 -46
  170. package/lib/generator/analyzer/reflections/SignatureReflection.js.map +1 -1
  171. package/lib/generator/analyzer/reflections/SymbolBasedReflection.js +6 -13
  172. package/lib/generator/analyzer/reflections/SymbolBasedReflection.js.map +1 -1
  173. package/lib/generator/analyzer/reflections/TypeAliasReflection.js +24 -26
  174. package/lib/generator/analyzer/reflections/TypeAliasReflection.js.map +1 -1
  175. package/lib/generator/analyzer/reflections/TypeLiteralReflection.js +22 -21
  176. package/lib/generator/analyzer/reflections/TypeLiteralReflection.js.map +1 -1
  177. package/lib/generator/analyzer/reflections/TypeParameterReflection.js +38 -39
  178. package/lib/generator/analyzer/reflections/TypeParameterReflection.js.map +1 -1
  179. package/lib/generator/analyzer/types/ArrayType.js +15 -23
  180. package/lib/generator/analyzer/types/ArrayType.js.map +1 -1
  181. package/lib/generator/analyzer/types/FunctionType.js +31 -38
  182. package/lib/generator/analyzer/types/FunctionType.js.map +1 -1
  183. package/lib/generator/analyzer/types/IntersectionType.js +12 -20
  184. package/lib/generator/analyzer/types/IntersectionType.js.map +1 -1
  185. package/lib/generator/analyzer/types/IntrinsicType.js +33 -41
  186. package/lib/generator/analyzer/types/IntrinsicType.js.map +1 -1
  187. package/lib/generator/analyzer/types/LiteralType.js +60 -68
  188. package/lib/generator/analyzer/types/LiteralType.js.map +1 -1
  189. package/lib/generator/analyzer/types/NamedTupleElementType.js +11 -15
  190. package/lib/generator/analyzer/types/NamedTupleElementType.js.map +1 -1
  191. package/lib/generator/analyzer/types/ObjectLiteralType.js +21 -30
  192. package/lib/generator/analyzer/types/ObjectLiteralType.js.map +1 -1
  193. package/lib/generator/analyzer/types/OptionalType.js +11 -17
  194. package/lib/generator/analyzer/types/OptionalType.js.map +1 -1
  195. package/lib/generator/analyzer/types/ReferenceType.js +118 -133
  196. package/lib/generator/analyzer/types/ReferenceType.js.map +1 -1
  197. package/lib/generator/analyzer/types/ReflectionType.js +4 -7
  198. package/lib/generator/analyzer/types/ReflectionType.js.map +1 -1
  199. package/lib/generator/analyzer/types/TupleType.js +27 -31
  200. package/lib/generator/analyzer/types/TupleType.js.map +1 -1
  201. package/lib/generator/analyzer/types/Type.js +1 -5
  202. package/lib/generator/analyzer/types/Type.js.map +1 -1
  203. package/lib/generator/analyzer/types/TypeOperatorType.js +38 -40
  204. package/lib/generator/analyzer/types/TypeOperatorType.js.map +1 -1
  205. package/lib/generator/analyzer/types/UnionType.js +22 -30
  206. package/lib/generator/analyzer/types/UnionType.js.map +1 -1
  207. package/lib/generator/analyzer/types/UnknownType.js +5 -6
  208. package/lib/generator/analyzer/types/UnknownType.js.map +1 -1
  209. package/lib/generator/analyzer/util/expressions.js +8 -13
  210. package/lib/generator/analyzer/util/expressions.js.map +1 -1
  211. package/lib/generator/analyzer/util/functions.js +15 -19
  212. package/lib/generator/analyzer/util/functions.js.map +1 -1
  213. package/lib/generator/analyzer/util/inheritance.js +26 -32
  214. package/lib/generator/analyzer/util/inheritance.js.map +1 -1
  215. package/lib/generator/analyzer/util/promises.js +2 -9
  216. package/lib/generator/analyzer/util/promises.js.map +1 -1
  217. package/lib/generator/analyzer/util/sourceMaps.js +12 -20
  218. package/lib/generator/analyzer/util/sourceMaps.js.map +1 -1
  219. package/lib/generator/analyzer/util/symbols.js +3 -9
  220. package/lib/generator/analyzer/util/symbols.js.map +1 -1
  221. package/lib/generator/analyzer/util/types.js +6 -10
  222. package/lib/generator/analyzer/util/types.js.map +1 -1
  223. package/lib/generator/cli.js +5 -8
  224. package/lib/generator/cli.js.map +1 -1
  225. package/lib/generator/commands/default.js +260 -259
  226. package/lib/generator/commands/default.js.map +1 -1
  227. package/lib/generator/index.js +1 -1
  228. package/lib/generator/modes/Generator.js +20 -31
  229. package/lib/generator/modes/Generator.js.map +1 -1
  230. package/lib/generator/modes/HtmlGenerator.js +214 -228
  231. package/lib/generator/modes/HtmlGenerator.js.map +1 -1
  232. package/lib/generator/modes/MonorepoGenerator.js +143 -159
  233. package/lib/generator/modes/MonorepoGenerator.js.map +1 -1
  234. package/lib/generator/modes/OutputGenerator.js +2 -7
  235. package/lib/generator/modes/OutputGenerator.js.map +1 -1
  236. package/lib/progressiveEnhancement/fsMap.js +2 -5
  237. package/lib/progressiveEnhancement/fsMap.js.map +1 -1
  238. package/package.json +16 -16
  239. package/src/common/components/CodeBlock.tsx +2 -2
  240. package/src/common/components/CodeLink.tsx +2 -2
  241. package/src/common/components/DeprecationNotice.tsx +2 -2
  242. package/src/common/components/FunctionParamDesc.tsx +3 -3
  243. package/src/common/components/FunctionParamDescEntry.tsx +6 -6
  244. package/src/common/components/FunctionReturnType.tsx +3 -3
  245. package/src/common/components/FunctionSignature.tsx +2 -2
  246. package/src/common/components/InterfaceDetail.tsx +15 -7
  247. package/src/common/components/InterfaceRepresentation.tsx +9 -9
  248. package/src/common/components/MainMenu.tsx +4 -4
  249. package/src/common/components/NavMenuItem.tsx +1 -1
  250. package/src/common/components/PageArticle.tsx +2 -2
  251. package/src/common/components/SymbolHeader.tsx +7 -9
  252. package/src/common/components/TypeAliasHint.tsx +3 -5
  253. package/src/common/components/TypeLink.tsx +6 -7
  254. package/src/common/components/VersionMenu.tsx +3 -3
  255. package/src/common/components/cards/CardToolbar.tsx +10 -6
  256. package/src/common/components/cards/EventCard.tsx +19 -23
  257. package/src/common/components/cards/FunctionCardHeader.tsx +8 -8
  258. package/src/common/components/cards/MethodCard.tsx +8 -8
  259. package/src/common/components/cards/PropertyCard.tsx +11 -11
  260. package/src/common/components/codeBuilders/ReferenceTypeView.tsx +4 -4
  261. package/src/common/components/codeBuilders/Type.tsx +4 -4
  262. package/src/common/components/overviewTable/OverviewTable.tsx +2 -2
  263. package/src/common/components/overviewTable/OverviewTableEntry.tsx +7 -7
  264. package/src/common/config/Config.ts +1 -1
  265. package/src/common/config/Util.ts +11 -3
  266. package/src/common/config/index.tsx +2 -2
  267. package/src/common/containers/App.tsx +12 -9
  268. package/src/common/containers/AppLayout.tsx +2 -2
  269. package/src/common/containers/PageHeader.tsx +2 -2
  270. package/src/common/containers/PageSwitch.tsx +7 -7
  271. package/src/common/containers/ReferencePackageContainer.tsx +13 -13
  272. package/src/common/htmlRenderer/HtmlRenderer.tsx +8 -9
  273. package/src/common/htmlRenderer/StaticRouterWithSuffix.tsx +18 -21
  274. package/src/common/pages/ClassPage.tsx +17 -17
  275. package/src/common/pages/DocPage.tsx +10 -10
  276. package/src/common/pages/EnumPage.tsx +14 -14
  277. package/src/common/pages/FunctionPage.tsx +15 -15
  278. package/src/common/pages/InterfacePage.tsx +13 -13
  279. package/src/common/pages/TypeAliasPage.tsx +12 -12
  280. package/src/common/reference/index.ts +0 -1
  281. package/src/common/tools/ArrayTools.ts +27 -11
  282. package/src/common/tools/CodeTools.tsx +1 -1
  283. package/src/common/tools/ConfigTools.ts +1 -1
  284. package/src/common/tools/FunctionTools.ts +2 -3
  285. package/src/common/tools/NodeTools.ts +3 -2
  286. package/src/common/tools/ReferenceTools.ts +10 -11
  287. package/src/common/tools/StringTools.ts +1 -1
  288. package/src/common/tools/markdown/MarkdownParser.tsx +13 -15
  289. package/src/common/tools/markdown/plugins/customDirectives.ts +1 -1
  290. package/src/common/tools/markdown/plugins/symbolLinks.ts +3 -3
  291. package/src/dev/index.tsx +9 -9
  292. package/src/dev/registerServiceWorker.ts +8 -16
  293. package/src/progressiveEnhancement/fsMap.ts +0 -1
  294. package/src/progressiveEnhancement/index.tsx +9 -11
  295. package/tsconfig-dev.json +1 -6
  296. package/tsconfig-enhance.json +1 -5
  297. package/tsconfig-html.json +1 -5
  298. package/tsconfig.json +7 -21
  299. package/types/globals.d.ts +0 -1
  300. package/types/react-router-hash-link.d.ts +0 -8
@@ -1,15 +1,12 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- const clime_1 = require("clime");
6
- const path_1 = tslib_1.__importDefault(require("path"));
2
+ import { CLI, Shim } from 'clime';
3
+ import path from 'path';
7
4
  // for dev with ts-node
8
5
  if (process.execArgv.some(s => s.includes('ts-node/register'))) {
9
- clime_1.CLI.commandModuleExtension = '.ts';
6
+ CLI.commandModuleExtension = '.ts';
10
7
  }
11
- const cli = new clime_1.CLI('documen.ts', path_1.default.join(__dirname, 'commands'));
12
- const shim = new clime_1.Shim(cli);
8
+ const cli = new CLI('documen.ts', path.join(__dirname, 'commands'));
9
+ const shim = new Shim(cli);
13
10
  // eslint-disable-next-line no-console
14
11
  shim.execute(process.argv).catch(err => console.error(err));
15
12
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/generator/cli.ts"],"names":[],"mappings":";;;;AAEA,iCAAkC;AAClC,wDAAwB;AAExB,uBAAuB;AACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE;IAC/D,WAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC;CACnC;AAED,MAAM,GAAG,GAAG,IAAI,WAAG,CAAC,YAAY,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,MAAM,IAAI,GAAG,IAAI,YAAI,CAAC,GAAG,CAAC,CAAC;AAE3B,sCAAsC;AACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/generator/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,uBAAuB;AACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;IAChE,GAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3B,sCAAsC;AACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC"}
@@ -1,307 +1,308 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CLICommandOptions = void 0;
4
- const tslib_1 = require("tslib");
1
+ import { __decorate, __metadata } from "tslib";
5
2
  /* eslint-disable no-console,max-classes-per-file */
6
- const clime_1 = require("clime");
7
- const fs_1 = tslib_1.__importStar(require("fs"));
8
- const path_1 = tslib_1.__importDefault(require("path"));
9
- const tmp_promise_1 = tslib_1.__importDefault(require("tmp-promise"));
10
- const Util_1 = require("../../common/config/Util");
11
- const FileTools_1 = require("../../common/tools/FileTools");
12
- const StringTools_1 = require("../../common/tools/StringTools");
13
- const HtmlGenerator_1 = tslib_1.__importDefault(require("../modes/HtmlGenerator"));
14
- const MonorepoGenerator_1 = tslib_1.__importDefault(require("../modes/MonorepoGenerator"));
15
- // eslint-disable-next-line @typescript-eslint/naming-convention
16
- class CLICommandOptions extends clime_1.Options {
3
+ import { Command, command, ExpectedError, metadata, option, Options } from 'clime';
4
+ import fs, { promises as fsp } from 'fs';
5
+ import path from 'path';
6
+ import tmp from 'tmp-promise';
7
+ import { getConfigValue } from '../../common/config/Util.js';
8
+ import { fileExists } from '../../common/tools/FileTools.js';
9
+ import { removeSlash } from '../../common/tools/StringTools.js';
10
+ import HtmlGenerator from '../modes/HtmlGenerator.js';
11
+ import MonorepoGenerator from '../modes/MonorepoGenerator.js';
12
+ export class CLICommandOptions extends Options {
13
+ dev;
14
+ prettier;
15
+ baseDir;
16
+ configDir;
17
+ outDir;
18
+ routerMode;
19
+ baseUrl;
20
+ mono;
21
+ repoUser;
22
+ repoName;
23
+ repoBranch;
24
+ indexFile;
25
+ indexTitle;
17
26
  }
18
- tslib_1.__decorate([
19
- (0, clime_1.option)({ description: 'development mode; disable some optimizations in favor of speed' }),
20
- tslib_1.__metadata("design:type", Boolean)
27
+ __decorate([
28
+ option({ description: 'development mode; disable some optimizations in favor of speed' }),
29
+ __metadata("design:type", Boolean)
21
30
  ], CLICommandOptions.prototype, "dev", void 0);
22
- tslib_1.__decorate([
23
- (0, clime_1.option)({ description: 'use prettier on all HTML files; defaults to value of dev flag' }),
24
- tslib_1.__metadata("design:type", Boolean)
31
+ __decorate([
32
+ option({ description: 'use prettier on all HTML files; defaults to value of dev flag' }),
33
+ __metadata("design:type", Boolean)
25
34
  ], CLICommandOptions.prototype, "prettier", void 0);
26
- tslib_1.__decorate([
27
- (0, clime_1.option)({ description: 'base directory' }),
28
- tslib_1.__metadata("design:type", String)
35
+ __decorate([
36
+ option({ description: 'base directory' }),
37
+ __metadata("design:type", String)
29
38
  ], CLICommandOptions.prototype, "baseDir", void 0);
30
- tslib_1.__decorate([
31
- (0, clime_1.option)({
39
+ __decorate([
40
+ option({
32
41
  flag: 'd',
33
42
  description: 'configuration directory',
34
- validator: (value) => fs_1.default.existsSync(path_1.default.resolve(process.cwd(), value))
43
+ validator: (value) => fs.existsSync(path.resolve(process.cwd(), value))
35
44
  }),
36
- tslib_1.__metadata("design:type", String)
45
+ __metadata("design:type", String)
37
46
  ], CLICommandOptions.prototype, "configDir", void 0);
38
- tslib_1.__decorate([
39
- (0, clime_1.option)({ flag: 'o', description: 'output directory' }),
40
- tslib_1.__metadata("design:type", String)
47
+ __decorate([
48
+ option({ flag: 'o', description: 'output directory' }),
49
+ __metadata("design:type", String)
41
50
  ], CLICommandOptions.prototype, "outDir", void 0);
42
- tslib_1.__decorate([
43
- (0, clime_1.option)({
51
+ __decorate([
52
+ option({
44
53
  flag: 'r',
45
54
  description: 'render mode',
46
55
  default: 'htmlSuffix',
47
56
  validator: value => ['htmlSuffix', 'subDirectories', 'htaccess'].includes(value)
48
57
  }),
49
- tslib_1.__metadata("design:type", String)
58
+ __metadata("design:type", String)
50
59
  ], CLICommandOptions.prototype, "routerMode", void 0);
51
- tslib_1.__decorate([
52
- (0, clime_1.option)({ flag: 'b', description: 'base URL', default: '' }),
53
- tslib_1.__metadata("design:type", String)
60
+ __decorate([
61
+ option({ flag: 'b', description: 'base URL', default: '' }),
62
+ __metadata("design:type", String)
54
63
  ], CLICommandOptions.prototype, "baseUrl", void 0);
55
- tslib_1.__decorate([
56
- (0, clime_1.option)({ description: 'set monorepo package root', default: '' }),
57
- tslib_1.__metadata("design:type", String)
64
+ __decorate([
65
+ option({ description: 'set monorepo package root', default: '' }),
66
+ __metadata("design:type", String)
58
67
  ], CLICommandOptions.prototype, "mono", void 0);
59
- tslib_1.__decorate([
60
- (0, clime_1.option)({ description: 'repo user name', default: '' }),
61
- tslib_1.__metadata("design:type", String)
68
+ __decorate([
69
+ option({ description: 'repo user name', default: '' }),
70
+ __metadata("design:type", String)
62
71
  ], CLICommandOptions.prototype, "repoUser", void 0);
63
- tslib_1.__decorate([
64
- (0, clime_1.option)({ description: 'repo name', default: '' }),
65
- tslib_1.__metadata("design:type", String)
72
+ __decorate([
73
+ option({ description: 'repo name', default: '' }),
74
+ __metadata("design:type", String)
66
75
  ], CLICommandOptions.prototype, "repoName", void 0);
67
- tslib_1.__decorate([
68
- (0, clime_1.option)({ description: 'git branch' }),
69
- tslib_1.__metadata("design:type", String)
76
+ __decorate([
77
+ option({ description: 'git branch' }),
78
+ __metadata("design:type", String)
70
79
  ], CLICommandOptions.prototype, "repoBranch", void 0);
71
- tslib_1.__decorate([
72
- (0, clime_1.option)({ description: 'index file' }),
73
- tslib_1.__metadata("design:type", String)
80
+ __decorate([
81
+ option({ description: 'index file' }),
82
+ __metadata("design:type", String)
74
83
  ], CLICommandOptions.prototype, "indexFile", void 0);
75
- tslib_1.__decorate([
76
- (0, clime_1.option)({ description: 'index title' }),
77
- tslib_1.__metadata("design:type", String)
84
+ __decorate([
85
+ option({ description: 'index title' }),
86
+ __metadata("design:type", String)
78
87
  ], CLICommandOptions.prototype, "indexTitle", void 0);
79
- exports.CLICommandOptions = CLICommandOptions;
80
- let CLICommand =
81
- // eslint-disable-next-line @typescript-eslint/naming-convention
82
- class CLICommand extends clime_1.Command {
83
- execute(options) {
84
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
85
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
86
- process.env.NODE_ENV = 'production';
87
- const baseDir = options.baseDir || process.cwd();
88
- let configDir = null;
89
- if (options.configDir) {
90
- // check already made in validator
91
- configDir = path_1.default.resolve(baseDir, options.configDir);
88
+ let CLICommand = class CLICommand extends Command {
89
+ async execute(options) {
90
+ process.env.NODE_ENV = 'production';
91
+ const baseDir = options.baseDir || process.cwd();
92
+ let configDir = null;
93
+ if (options.configDir) {
94
+ // check already made in validator
95
+ configDir = path.resolve(baseDir, options.configDir);
96
+ }
97
+ else {
98
+ const defaultConfigDir = path.resolve(baseDir, 'docs');
99
+ if (await fileExists(defaultConfigDir)) {
100
+ configDir = defaultConfigDir;
92
101
  }
93
- else {
94
- const defaultConfigDir = path_1.default.resolve(baseDir, 'docs');
95
- if (yield (0, FileTools_1.fileExists)(defaultConfigDir)) {
96
- configDir = defaultConfigDir;
97
- }
102
+ }
103
+ let importedConfig = null;
104
+ let indexFile = null;
105
+ if (configDir) {
106
+ const configFile = path.join(configDir, 'config.json');
107
+ if (!(await fileExists(configFile))) {
108
+ throw new ExpectedError('configuration directory was found but there is no config.json file in it');
98
109
  }
99
- let importedConfig = null;
100
- let indexFile = null;
101
- if (configDir) {
102
- const configFile = path_1.default.join(configDir, 'config.json');
103
- if (!(yield (0, FileTools_1.fileExists)(configFile))) {
104
- throw new clime_1.ExpectedError('configuration directory was found but there is no config.json file in it');
105
- }
106
- try {
107
- const fileContents = yield fs_1.promises.readFile(configFile, 'utf-8');
108
- importedConfig = JSON.parse(fileContents);
109
- }
110
- catch (e) {
111
- throw new clime_1.ExpectedError(`error reading ${configFile} as JSON: ${e.message}`);
112
- }
113
- indexFile = options.indexFile || (0, Util_1.getConfigValue)(importedConfig, 'indexFile');
114
- if (indexFile) {
115
- indexFile = path_1.default.join(configDir, indexFile);
116
- if (!(yield (0, FileTools_1.fileExists)(indexFile))) {
117
- throw new clime_1.ExpectedError('given index file does not exist in configuration directory');
118
- }
119
- }
110
+ try {
111
+ const fileContents = await fsp.readFile(configFile, 'utf-8');
112
+ importedConfig = JSON.parse(fileContents);
120
113
  }
121
- if (!indexFile) {
122
- indexFile = path_1.default.join(baseDir, 'README.md');
123
- if (!(yield (0, FileTools_1.fileExists)(indexFile))) {
124
- throw new clime_1.ExpectedError('there was neither a given index file nor a README.md in the root of the project');
125
- }
114
+ catch (e) {
115
+ throw new ExpectedError(`error reading ${configFile} as JSON: ${e.message}`);
126
116
  }
127
- const monorepoRoot = (_a = (options.mono || (0, Util_1.getConfigValue)(importedConfig, 'monorepoRoot'))) !== null && _a !== void 0 ? _a : undefined;
128
- const ignoredPackages = (_b = (0, Util_1.getConfigValue)(importedConfig, 'ignoredPackages')) !== null && _b !== void 0 ? _b : undefined;
129
- const packageDirNames = monorepoRoot ? yield fs_1.promises.readdir(path_1.default.join(baseDir, monorepoRoot)) : null;
130
- let needsManifest = false;
131
- let versionAware = false;
132
- const rootOutputDir = options.outDir || (0, Util_1.getConfigValue)(importedConfig, 'outputDir', true);
133
- const mainBranchName = (_c = (0, Util_1.getConfigValue)(importedConfig, 'mainBranchName')) !== null && _c !== void 0 ? _c : 'master';
134
- const versionBranchPrefix = (_d = (0, Util_1.getConfigValue)(importedConfig, 'versionBranchPrefix')) !== null && _d !== void 0 ? _d : undefined;
135
- const versionFolder = (_e = (0, Util_1.getConfigValue)(importedConfig, 'versionFolder')) !== null && _e !== void 0 ? _e : undefined;
136
- const defaultVersion = (_f = (0, Util_1.getConfigValue)(importedConfig, 'defaultVersion')) !== null && _f !== void 0 ? _f : mainBranchName;
137
- let outputDir = rootOutputDir;
138
- let version = undefined;
139
- const rootUrl = (0, StringTools_1.removeSlash)(options.baseUrl || (0, Util_1.getConfigValue)(importedConfig, 'baseUrl', true) || '/');
140
- let baseUrl = rootUrl;
141
- if (versionBranchPrefix && versionFolder) {
142
- if (!options.repoBranch) {
143
- console.error('This project is version aware; please supply the branch name using the CLI option `--repo-branch`.');
144
- process.exit(1);
145
- }
146
- if (options.repoBranch.startsWith(versionBranchPrefix)) {
147
- version = options.repoBranch.substr(versionBranchPrefix.length);
117
+ indexFile = options.indexFile || getConfigValue(importedConfig, 'indexFile');
118
+ if (indexFile) {
119
+ indexFile = path.join(configDir, indexFile);
120
+ if (!(await fileExists(indexFile))) {
121
+ throw new ExpectedError('given index file does not exist in configuration directory');
148
122
  }
149
- else if (options.repoBranch === mainBranchName) {
150
- version = mainBranchName;
151
- }
152
- else {
153
- console.error(`This project is version aware and can only build docs for the branch "${mainBranchName}" and branches starting with "${versionBranchPrefix}."`);
154
- process.exit(1);
155
- }
156
- if (version !== defaultVersion) {
157
- outputDir = path_1.default.join(rootOutputDir, versionFolder, version);
158
- baseUrl = path_1.default.posix.join(baseUrl, versionFolder, version);
159
- }
160
- needsManifest = true;
161
- versionAware = true;
162
123
  }
163
- else if (versionBranchPrefix || versionFolder) {
164
- console.error('Please either specify both the "versionBranchPrefix" and "versionFolder" options, or neither. Specifying only one of them is not supported.');
124
+ }
125
+ if (!indexFile) {
126
+ indexFile = path.join(baseDir, 'README.md');
127
+ if (!(await fileExists(indexFile))) {
128
+ throw new ExpectedError('there was neither a given index file nor a README.md in the root of the project');
129
+ }
130
+ }
131
+ const monorepoRoot = (options.mono || getConfigValue(importedConfig, 'monorepoRoot')) ?? undefined;
132
+ const ignoredPackages = getConfigValue(importedConfig, 'ignoredPackages') ?? undefined;
133
+ const packageDirNames = monorepoRoot ? await fsp.readdir(path.join(baseDir, monorepoRoot)) : null;
134
+ let needsManifest = false;
135
+ let versionAware = false;
136
+ const rootOutputDir = options.outDir || getConfigValue(importedConfig, 'outputDir', true);
137
+ const mainBranchName = getConfigValue(importedConfig, 'mainBranchName') ?? 'master';
138
+ const versionBranchPrefix = getConfigValue(importedConfig, 'versionBranchPrefix') ?? undefined;
139
+ const versionFolder = getConfigValue(importedConfig, 'versionFolder') ?? undefined;
140
+ const defaultVersion = getConfigValue(importedConfig, 'defaultVersion') ?? mainBranchName;
141
+ let outputDir = rootOutputDir;
142
+ let version = undefined;
143
+ const rootUrl = removeSlash(options.baseUrl || getConfigValue(importedConfig, 'baseUrl', true) || '/');
144
+ let baseUrl = rootUrl;
145
+ if (versionBranchPrefix && versionFolder) {
146
+ if (!options.repoBranch) {
147
+ console.error('This project is version aware; please supply the branch name using the CLI option `--repo-branch`.');
165
148
  process.exit(1);
166
149
  }
167
- const categories = (_g = (0, Util_1.getConfigValue)(importedConfig, 'categories')) === null || _g === void 0 ? void 0 : _g.filter(cat => {
168
- if (cat.indexFile) {
169
- return true;
170
- }
171
- console.warn(`Expected indexFile property for category ${cat.name}`);
172
- return false;
173
- });
174
- const generatorConfig = {
175
- dev: (_h = options.dev) !== null && _h !== void 0 ? _h : false,
176
- prettier: (_l = (_k = (_j = (0, Util_1.getConfigValue)(importedConfig, 'prettier')) !== null && _j !== void 0 ? _j : options.prettier) !== null && _k !== void 0 ? _k : options.dev) !== null && _l !== void 0 ? _l : false,
177
- configDir,
178
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
179
- routerMode: options.routerMode || (0, Util_1.getConfigValue)(importedConfig, 'routerMode') || 'htmlSuffix',
180
- outputDir,
181
- baseUrl,
182
- baseDir,
183
- packageScope: (_o = (_m = (0, Util_1.getConfigValue)(importedConfig, 'packageScope')) === null || _m === void 0 ? void 0 : _m.replace(/^@/, '')) !== null && _o !== void 0 ? _o : undefined,
184
- monorepoRoot,
185
- packageDirNames,
186
- mainPackage: (_p = (0, Util_1.getConfigValue)(importedConfig, 'mainPackage')) !== null && _p !== void 0 ? _p : undefined,
187
- mainBranchName,
188
- versionBranchPrefix,
189
- versionFolder,
190
- version,
191
- defaultVersion,
192
- ignoredPackages,
193
- title: (0, Util_1.getConfigValue)(importedConfig, 'title'),
194
- repoUser: options.repoUser || (0, Util_1.getConfigValue)(importedConfig, 'repoUser'),
195
- repoName: options.repoName || (0, Util_1.getConfigValue)(importedConfig, 'repoName'),
196
- repoBaseFolder: (0, Util_1.getConfigValue)(importedConfig, 'repoBaseFolder'),
197
- repoBranch: options.repoBranch || mainBranchName,
198
- indexTitle: (_q = (options.indexTitle || (0, Util_1.getConfigValue)(importedConfig, 'indexTitle'))) !== null && _q !== void 0 ? _q : 'Welcome',
199
- indexFile,
200
- categories: categories !== null && categories !== void 0 ? categories : undefined,
201
- referenceConfig: (_r = (0, Util_1.getConfigValue)(importedConfig, 'referenceConfig')) !== null && _r !== void 0 ? _r : undefined,
202
- shouldEnhance: true
203
- };
204
- const generator = this._getGeneratorForConfig(generatorConfig);
205
- if (versionAware) {
206
- console.log(`Cleaning up generated files for ${version === mainBranchName ? `branch ${mainBranchName}` : `version ${version}`}`);
207
- if (version === defaultVersion) {
208
- const [versionsRoot] = versionFolder.split('/');
209
- const rootFolderContents = yield fs_1.promises.readdir(rootOutputDir);
210
- const ignoredFiles = [
211
- versionsRoot,
212
- 'manifest.json',
213
- ...((_s = (0, Util_1.getConfigValue)(importedConfig, 'persistentFiles')) !== null && _s !== void 0 ? _s : [])
214
- ];
215
- yield Promise.all(rootFolderContents
216
- .filter(f => !f.startsWith('.') && !ignoredFiles.includes(f))
217
- .map((f) => tslib_1.__awaiter(this, void 0, void 0, function* () {
218
- const filePath = path_1.default.join(rootOutputDir, f);
219
- if ((yield fs_1.promises.lstat(filePath)).isDirectory()) {
220
- yield fs_1.promises.rm(filePath, { recursive: true });
221
- }
222
- else {
223
- yield fs_1.promises.unlink(filePath);
224
- }
225
- })));
226
- }
227
- else {
228
- yield fs_1.promises.rm(outputDir, { force: true, recursive: true });
229
- yield fs_1.promises.mkdir(outputDir, { recursive: true });
230
- }
150
+ if (options.repoBranch.startsWith(versionBranchPrefix)) {
151
+ version = options.repoBranch.substr(versionBranchPrefix.length);
152
+ }
153
+ else if (options.repoBranch === mainBranchName) {
154
+ version = mainBranchName;
231
155
  }
232
156
  else {
233
- console.log('Cleaning up generated files');
234
- yield fs_1.promises.rm(outputDir, { force: true, recursive: true });
235
- yield fs_1.promises.mkdir(outputDir, { recursive: true });
157
+ console.error(`This project is version aware and can only build docs for the branch "${mainBranchName}" and branches starting with "${versionBranchPrefix}."`);
158
+ process.exit(1);
236
159
  }
237
- const reference = yield generator.createReferenceStructure();
238
- if (process.env.DOCTS_WRITE_JSON) {
239
- const jsonPath = path_1.default.join(baseDir, outputDir, 'data.json');
240
- const json = JSON.stringify(reference, null, 2);
241
- console.log(`Writing raw data to ${jsonPath}`);
242
- yield fs_1.promises.writeFile(jsonPath, json);
243
- if (process.env.DOCTS_WRITE_JSON === 'only') {
244
- return;
245
- }
160
+ if (version !== defaultVersion) {
161
+ outputDir = path.join(rootOutputDir, versionFolder, version);
162
+ baseUrl = path.posix.join(baseUrl, versionFolder, version);
246
163
  }
247
- const tmpResult = yield tmp_promise_1.default.dir({ unsafeCleanup: true });
248
- const paths = {
249
- projectBase: baseDir,
250
- tmpDir: tmpResult.path,
251
- rootUrl
252
- };
253
- try {
254
- yield generator.generate(reference, paths);
164
+ needsManifest = true;
165
+ versionAware = true;
166
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
167
+ }
168
+ else if (versionBranchPrefix || versionFolder) {
169
+ console.error('Please either specify both the "versionBranchPrefix" and "versionFolder" options, or neither. Specifying only one of them is not supported.');
170
+ process.exit(1);
171
+ }
172
+ const categories = getConfigValue(importedConfig, 'categories')?.filter(cat => {
173
+ if (cat.indexFile) {
174
+ return true;
255
175
  }
256
- catch (e) {
257
- process.stderr.write('\nerror building the documentation:\n');
258
- console.error(e);
259
- process.exit(1);
176
+ console.warn(`Expected indexFile property for category ${cat.name}`);
177
+ return false;
178
+ });
179
+ const generatorConfig = {
180
+ dev: options.dev ?? false,
181
+ prettier: getConfigValue(importedConfig, 'prettier') ?? options.prettier ?? options.dev ?? false,
182
+ configDir,
183
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
184
+ routerMode: options.routerMode || getConfigValue(importedConfig, 'routerMode') || 'htmlSuffix',
185
+ outputDir,
186
+ baseUrl,
187
+ baseDir,
188
+ packageScope: getConfigValue(importedConfig, 'packageScope')?.replace(/^@/, '') ?? undefined,
189
+ monorepoRoot,
190
+ packageDirNames,
191
+ mainPackage: getConfigValue(importedConfig, 'mainPackage') ?? undefined,
192
+ mainBranchName,
193
+ versionBranchPrefix,
194
+ versionFolder,
195
+ version,
196
+ defaultVersion,
197
+ ignoredPackages,
198
+ title: getConfigValue(importedConfig, 'title'),
199
+ repoUser: options.repoUser || getConfigValue(importedConfig, 'repoUser'),
200
+ repoName: options.repoName || getConfigValue(importedConfig, 'repoName'),
201
+ repoBaseFolder: getConfigValue(importedConfig, 'repoBaseFolder'),
202
+ repoBranch: options.repoBranch || mainBranchName,
203
+ indexTitle: (options.indexTitle || getConfigValue(importedConfig, 'indexTitle')) ?? 'Welcome',
204
+ indexFile,
205
+ categories: categories ?? undefined,
206
+ referenceConfig: getConfigValue(importedConfig, 'referenceConfig') ?? undefined,
207
+ shouldEnhance: true
208
+ };
209
+ const generator = this._getGeneratorForConfig(generatorConfig);
210
+ if (versionAware) {
211
+ console.log(`Cleaning up generated files for ${version === mainBranchName ? `branch ${mainBranchName}` : `version ${version}`}`);
212
+ if (version === defaultVersion) {
213
+ const [versionsRoot] = versionFolder.split('/');
214
+ const rootFolderContents = await fsp.readdir(rootOutputDir);
215
+ const ignoredFiles = [
216
+ versionsRoot,
217
+ 'manifest.json',
218
+ ...(getConfigValue(importedConfig, 'persistentFiles') ?? [])
219
+ ];
220
+ await Promise.all(rootFolderContents
221
+ .filter(f => !f.startsWith('.') && !ignoredFiles.includes(f))
222
+ .map(async (f) => {
223
+ const filePath = path.join(rootOutputDir, f);
224
+ if ((await fsp.lstat(filePath)).isDirectory()) {
225
+ await fsp.rm(filePath, { recursive: true });
226
+ }
227
+ else {
228
+ await fsp.unlink(filePath);
229
+ }
230
+ }));
260
231
  }
261
- finally {
262
- yield tmpResult.cleanup();
232
+ else {
233
+ await fsp.rm(outputDir, { force: true, recursive: true });
234
+ await fsp.mkdir(outputDir, { recursive: true });
263
235
  }
264
- if (needsManifest) {
265
- const manifestPath = path_1.default.join(baseDir, rootOutputDir, 'manifest.json');
266
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
267
- let manifest = {};
268
- try {
269
- const manifestJson = yield fs_1.promises.readFile(manifestPath, 'utf-8');
270
- console.log(`Read existing manifest from ${manifestPath}`);
271
- manifest = JSON.parse(manifestJson);
272
- }
273
- catch (_u) {
274
- console.log(`Manifest not found, creating new one at ${manifestPath}`);
275
- }
276
- const versionsSet = new Set((_t = manifest.versions) !== null && _t !== void 0 ? _t : []);
277
- if (version) {
278
- versionsSet.add(version);
279
- }
280
- // eslint-disable-next-line @typescript-eslint/require-array-sort-compare
281
- manifest.versions = [...versionsSet].sort();
282
- manifest.defaultVersion = defaultVersion;
283
- manifest.rootUrl = rootUrl;
284
- console.log(`Writing manifest to ${manifestPath}`);
285
- yield fs_1.promises.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
236
+ }
237
+ else {
238
+ console.log('Cleaning up generated files');
239
+ await fsp.rm(outputDir, { force: true, recursive: true });
240
+ await fsp.mkdir(outputDir, { recursive: true });
241
+ }
242
+ const reference = await generator.createReferenceStructure();
243
+ if (process.env.DOCTS_WRITE_JSON) {
244
+ const jsonPath = path.join(baseDir, outputDir, 'data.json');
245
+ const json = JSON.stringify(reference, null, 2);
246
+ console.log(`Writing raw data to ${jsonPath}`);
247
+ await fsp.writeFile(jsonPath, json);
248
+ if (process.env.DOCTS_WRITE_JSON === 'only') {
249
+ return;
286
250
  }
287
- });
251
+ }
252
+ const tmpResult = await tmp.dir({ unsafeCleanup: true });
253
+ const paths = {
254
+ projectBase: baseDir,
255
+ tmpDir: tmpResult.path,
256
+ rootUrl
257
+ };
258
+ try {
259
+ await generator.generate(reference, paths);
260
+ }
261
+ catch (e) {
262
+ process.stderr.write('\nerror building the documentation:\n');
263
+ console.error(e);
264
+ process.exit(1);
265
+ }
266
+ finally {
267
+ await tmpResult.cleanup();
268
+ }
269
+ if (needsManifest) {
270
+ const manifestPath = path.join(baseDir, rootOutputDir, 'manifest.json');
271
+ let manifest = {};
272
+ try {
273
+ const manifestJson = await fsp.readFile(manifestPath, 'utf-8');
274
+ console.log(`Read existing manifest from ${manifestPath}`);
275
+ manifest = JSON.parse(manifestJson);
276
+ }
277
+ catch {
278
+ console.log(`Manifest not found, creating new one at ${manifestPath}`);
279
+ }
280
+ const versionsSet = new Set(manifest.versions ?? []);
281
+ if (version) {
282
+ versionsSet.add(version);
283
+ }
284
+ manifest.versions = [...versionsSet].sort();
285
+ manifest.defaultVersion = defaultVersion;
286
+ manifest.rootUrl = rootUrl;
287
+ console.log(`Writing manifest to ${manifestPath}`);
288
+ await fsp.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
289
+ }
288
290
  }
289
291
  _getGeneratorForConfig(config) {
290
292
  if (config.monorepoRoot) {
291
- return new MonorepoGenerator_1.default(config);
293
+ return new MonorepoGenerator(config);
292
294
  }
293
- return new HtmlGenerator_1.default(config);
295
+ return new HtmlGenerator(config);
294
296
  }
295
297
  };
296
- tslib_1.__decorate([
297
- clime_1.metadata,
298
- tslib_1.__metadata("design:type", Function),
299
- tslib_1.__metadata("design:paramtypes", [CLICommandOptions]),
300
- tslib_1.__metadata("design:returntype", Promise)
298
+ __decorate([
299
+ metadata,
300
+ __metadata("design:type", Function),
301
+ __metadata("design:paramtypes", [CLICommandOptions]),
302
+ __metadata("design:returntype", Promise)
301
303
  ], CLICommand.prototype, "execute", null);
302
- CLICommand = tslib_1.__decorate([
303
- (0, clime_1.command)()
304
- // eslint-disable-next-line @typescript-eslint/naming-convention
304
+ CLICommand = __decorate([
305
+ command()
305
306
  ], CLICommand);
306
- exports.default = CLICommand;
307
+ export default CLICommand;
307
308
  //# sourceMappingURL=default.js.map