starlight-fsharp-oracle 0.1.0 → 0.1.1

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 (158) hide show
  1. package/dist/Extensions/StringBuilder.js +2 -5
  2. package/dist/Extensions/TextNode.js +24 -53
  3. package/dist/FSharp.Oracle.Schema/Schema.js +113 -218
  4. package/dist/Generate.js +33 -63
  5. package/dist/Helpers.js +1 -2
  6. package/dist/Plugin.js +17 -31
  7. package/dist/Render/Documentation.js +1 -2
  8. package/dist/Render/Entries.js +29 -34
  9. package/dist/Render/Pages.js +9 -18
  10. package/dist/Render/Primitives.js +9 -32
  11. package/dist/Themes.js +3 -5
  12. package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs +57 -0
  13. package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js +105 -0
  14. package/dist/fable_modules/Fable.Promise.3.2.0/Fable.Promise.fableproj +20 -0
  15. package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs +766 -0
  16. package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs.js +232 -0
  17. package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs +31 -0
  18. package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js +20 -0
  19. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs +1592 -0
  20. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs.js +1417 -0
  21. package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs +106 -0
  22. package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs.js +63 -0
  23. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs +380 -0
  24. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs.js +289 -0
  25. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Thoth.Json.Core.fableproj +37 -0
  26. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs +76 -0
  27. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs.js +37 -0
  28. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs +113 -0
  29. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs.js +173 -0
  30. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs +1153 -0
  31. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js +622 -0
  32. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs +91 -0
  33. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js +103 -0
  34. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs +893 -0
  35. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs.js +836 -0
  36. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs +435 -0
  37. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs.js +389 -0
  38. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Thoth.Json.Core.Auto.fableproj +43 -0
  39. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs +88 -0
  40. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js +102 -0
  41. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs +40 -0
  42. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs.js +59 -0
  43. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Thoth.Json.JavaScript.fableproj +31 -0
  44. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Array.js +1347 -0
  45. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Async.js +134 -0
  46. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/AsyncBuilder.js +183 -0
  47. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BigInt.js +306 -0
  48. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BitConverter.js +138 -0
  49. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Boolean.js +22 -0
  50. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CHANGELOG.md +191 -0
  51. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Char.js +202 -0
  52. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Choice.js +184 -0
  53. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CollectionUtil.js +182 -0
  54. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/ConditionalWeakTable.js +21 -0
  55. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Date.js +755 -0
  56. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOffset.js +261 -0
  57. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOnly.js +124 -0
  58. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Decimal.js +236 -0
  59. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Double.js +47 -0
  60. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Encoding.js +185 -0
  61. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Event.js +93 -0
  62. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Collections.js +45 -0
  63. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.CompilerServices.js +27 -0
  64. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.js +156 -0
  65. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Global.js +29 -0
  66. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Guid.js +161 -0
  67. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Int32.js +135 -0
  68. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/List.js +1323 -0
  69. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Long.js +47 -0
  70. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MailboxProcessor.js +94 -0
  71. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Map.js +1396 -0
  72. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MapUtil.js +130 -0
  73. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableMap.js +339 -0
  74. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableSet.js +233 -0
  75. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Native.js +14 -0
  76. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Numeric.js +75 -0
  77. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Observable.js +113 -0
  78. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Option.js +104 -0
  79. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/README.md +3 -0
  80. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Random.js +172 -0
  81. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Range.js +45 -0
  82. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Reflection.js +460 -0
  83. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js +141 -0
  84. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Result.js +165 -0
  85. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq.js +1409 -0
  86. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js +111 -0
  87. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Set.js +1788 -0
  88. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/String.js +649 -0
  89. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Collections.Generic.js +333 -0
  90. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js +168 -0
  91. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.js +283 -0
  92. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeOnly.js +122 -0
  93. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeSpan.js +180 -0
  94. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Timer.js +67 -0
  95. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Types.js +198 -0
  96. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Unicode.13.0.0.js +4 -0
  97. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Uri.js +165 -0
  98. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Util.js +792 -0
  99. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/big.d.ts +338 -0
  100. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/lib/big.js +825 -0
  101. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/package.json +24 -0
  102. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/quotation.js +618 -0
  103. package/package.json +3 -3
  104. package/oracle-bin/FSharp.Compiler.Service.dll +0 -0
  105. package/oracle-bin/FSharp.Core.dll +0 -0
  106. package/oracle-bin/FSharp.DependencyManager.Nuget.dll +0 -0
  107. package/oracle-bin/FSharp.Oracle.Schema.dll +0 -0
  108. package/oracle-bin/FSharp.Oracle.Schema.pdb +0 -0
  109. package/oracle-bin/FSharp.Oracle.Schema.xml +0 -219
  110. package/oracle-bin/Fable.Core.dll +0 -0
  111. package/oracle-bin/Oracle +0 -0
  112. package/oracle-bin/Oracle.deps.json +0 -280
  113. package/oracle-bin/Oracle.dll +0 -0
  114. package/oracle-bin/Oracle.pdb +0 -0
  115. package/oracle-bin/Oracle.runtimeconfig.json +0 -13
  116. package/oracle-bin/Oracle.xml +0 -111
  117. package/oracle-bin/Thoth.Json.Core.Auto.dll +0 -0
  118. package/oracle-bin/Thoth.Json.Core.dll +0 -0
  119. package/oracle-bin/Thoth.Json.System.Text.Json.dll +0 -0
  120. package/oracle-bin/cs/FSharp.Compiler.Service.resources.dll +0 -0
  121. package/oracle-bin/cs/FSharp.Core.resources.dll +0 -0
  122. package/oracle-bin/cs/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  123. package/oracle-bin/de/FSharp.Compiler.Service.resources.dll +0 -0
  124. package/oracle-bin/de/FSharp.Core.resources.dll +0 -0
  125. package/oracle-bin/de/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  126. package/oracle-bin/es/FSharp.Compiler.Service.resources.dll +0 -0
  127. package/oracle-bin/es/FSharp.Core.resources.dll +0 -0
  128. package/oracle-bin/es/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  129. package/oracle-bin/fr/FSharp.Compiler.Service.resources.dll +0 -0
  130. package/oracle-bin/fr/FSharp.Core.resources.dll +0 -0
  131. package/oracle-bin/fr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  132. package/oracle-bin/it/FSharp.Compiler.Service.resources.dll +0 -0
  133. package/oracle-bin/it/FSharp.Core.resources.dll +0 -0
  134. package/oracle-bin/it/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  135. package/oracle-bin/ja/FSharp.Compiler.Service.resources.dll +0 -0
  136. package/oracle-bin/ja/FSharp.Core.resources.dll +0 -0
  137. package/oracle-bin/ja/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  138. package/oracle-bin/ko/FSharp.Compiler.Service.resources.dll +0 -0
  139. package/oracle-bin/ko/FSharp.Core.resources.dll +0 -0
  140. package/oracle-bin/ko/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  141. package/oracle-bin/pl/FSharp.Compiler.Service.resources.dll +0 -0
  142. package/oracle-bin/pl/FSharp.Core.resources.dll +0 -0
  143. package/oracle-bin/pl/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  144. package/oracle-bin/pt-BR/FSharp.Compiler.Service.resources.dll +0 -0
  145. package/oracle-bin/pt-BR/FSharp.Core.resources.dll +0 -0
  146. package/oracle-bin/pt-BR/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  147. package/oracle-bin/ru/FSharp.Compiler.Service.resources.dll +0 -0
  148. package/oracle-bin/ru/FSharp.Core.resources.dll +0 -0
  149. package/oracle-bin/ru/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  150. package/oracle-bin/tr/FSharp.Compiler.Service.resources.dll +0 -0
  151. package/oracle-bin/tr/FSharp.Core.resources.dll +0 -0
  152. package/oracle-bin/tr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  153. package/oracle-bin/zh-Hans/FSharp.Compiler.Service.resources.dll +0 -0
  154. package/oracle-bin/zh-Hans/FSharp.Core.resources.dll +0 -0
  155. package/oracle-bin/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  156. package/oracle-bin/zh-Hant/FSharp.Compiler.Service.resources.dll +0 -0
  157. package/oracle-bin/zh-Hant/FSharp.Core.resources.dll +0 -0
  158. package/oracle-bin/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll +0 -0
package/dist/Helpers.js CHANGED
@@ -61,8 +61,7 @@ export function collectErrors(results) {
61
61
  return undefined;
62
62
  }
63
63
  else {
64
- const msg = _arg.fields[0];
65
- return msg;
64
+ return _arg.fields[0];
66
65
  }
67
66
  }, results);
68
67
  }
package/dist/Plugin.js CHANGED
@@ -6,22 +6,22 @@ import * as child_process from "child_process";
6
6
  import { map, defaultArg, some } from "./fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
7
7
  import { stringHash, Exception } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
8
8
  import { join, concat, interpolate } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
9
+ import { unsafeFromString } from "./fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js";
10
+ import { generateDecoder } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js";
9
11
  import { Extra_empty } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js";
10
12
  import { Root_$reflection } from "./FSharp.Oracle.Schema/Schema.js";
11
- import { generateDecoder } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js";
12
- import { unsafeFromString } from "./fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js";
13
13
  import { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from "./fable_modules/Fable.Promise.3.2.0/Promise.fs.js";
14
14
  import { promise } from "./fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js";
15
15
  import { createRenderer } from "astro-expressive-code";
16
16
  import { generateCss } from "./Themes.js";
17
17
  import { length, isEmpty, contains, filter, map as map_1, collect } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
18
18
  import { entityPages, rootIndexPage, namespacePages as namespacePages_1, modulePages as modulePages_1, sidebarTree, sidebarLabelInitScript } from "./Generate.js";
19
- import { collectErrors, FileOperationResult$1, writeSync, mkdirSync } from "./Helpers.js";
19
+ import { FileOperationResult$1, collectErrors, writeSync, mkdirSync } from "./Helpers.js";
20
20
 
21
21
  function runExtractor(logger, outputBase, dllPaths) {
22
22
  const maxBuffer = ((50 * 1024) * 1024) | 0;
23
- const oracleProject = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "packages", "FSharp.Oracle");
24
- const args = toList(delay(() => append(singleton("run"), delay(() => append(singleton("--project"), delay(() => append(singleton(oracleProject), delay(() => append(singleton("--"), delay(() => append(singleton("--output-base"), delay(() => append(singleton(outputBase), delay(() => dllPaths))))))))))))));
23
+ const oracleDll = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "oracle-bin", "Oracle.dll");
24
+ const args = toList(delay(() => append(singleton(oracleDll), delay(() => append(singleton("--output-base"), delay(() => append(singleton(outputBase), delay(() => dllPaths))))))));
25
25
  const result = child_process.spawnSync("dotnet", Array.from(args), some({
26
26
  encoding: "utf-8",
27
27
  maxBuffer: maxBuffer,
@@ -35,13 +35,7 @@ ${interpolate("%A%P()", [result.stderr])}`);
35
35
  }
36
36
  else {
37
37
  const json = result.stdout;
38
- let decoder_1;
39
- const extra_1 = Extra_empty;
40
- const losslessOption_1 = true;
41
- const ty = Root_$reflection();
42
- const decoder = generateDecoder(undefined, extra_1.DecoderOverrides, false, losslessOption_1, ty);
43
- decoder_1 = decoder;
44
- return unsafeFromString(decoder_1, json);
38
+ return unsafeFromString(generateDecoder(undefined, Extra_empty.DecoderOverrides, false, true, Root_$reflection()), json);
45
39
  }
46
40
  }
47
41
 
@@ -63,9 +57,8 @@ function starlightFSharpDoc(pluginOptions) {
63
57
  clo(arg);
64
58
  });
65
59
  return createRenderer({}).then((_arg) => {
66
- let matchValue, matchValue_1, msg_1, msg;
67
- const ecRenderer = _arg;
68
- const themesCss = generateCss(ecRenderer);
60
+ let matchValue, matchValue_1, msg;
61
+ const themesCss = generateCss(_arg);
69
62
  const outputBase = defaultArg(pluginOptions.output, "api");
70
63
  const root = runExtractor(logger, outputBase, toList(pluginOptions.assemblies));
71
64
  const modules = collect((_arg_1) => _arg_1.Modules, root.Assemblies);
@@ -82,25 +75,19 @@ function starlightFSharpDoc(pluginOptions) {
82
75
  sidebar: toArray(delay(() => append(existingSidebar, delay(() => singleton(sidebarTree(outputBase, sidebarLabel, modules)))))),
83
76
  });
84
77
  const outputDir = path.join(astroConfig.root.pathname, "src", "pages", outputBase);
85
- return ((matchValue = mkdirSync(outputDir), (matchValue.tag === 0) ? ((matchValue_1 = writeSync(path.join(outputDir, ".gitignore"), "# Autogenerated by starlight-fsharp-oracle\n**/*\n"), (matchValue_1.tag === 0) ? (Promise.resolve()) : ((msg_1 = matchValue_1.fields[0], (logger.warn(concat("Failed to write .gitignore: ", ...msg_1)), Promise.resolve()))))) : ((msg = matchValue.fields[0], (logger.error(msg), ((() => {
78
+ return ((matchValue = mkdirSync(outputDir), (matchValue.tag === 0) ? ((matchValue_1 = writeSync(path.join(outputDir, ".gitignore"), "# Autogenerated by starlight-fsharp-oracle\n**/*\n"), (matchValue_1.tag === 0) ? (Promise.resolve()) : ((logger.warn(concat("Failed to write .gitignore: ", ...matchValue_1.fields[0])), Promise.resolve())))) : ((msg = matchValue.fields[0], (logger.error(msg), ((() => {
86
79
  throw new Exception(msg);
87
80
  })(), Promise.resolve())))))).then(() => PromiseBuilder__Delay_62FBFDE1(promise, () => {
88
81
  const modulePages = modulePages_1(outputBase, modules);
89
82
  const namespacePages = namespacePages_1(outputBase, modules);
90
83
  const moduleSlugs = map_1((tuple) => tuple[0], modulePages);
91
- const dedupedNamespacePages = filter((tupledArg) => {
92
- const slug = tupledArg[0];
93
- return !contains(slug, moduleSlugs, {
94
- Equals: (x, y) => (x === y),
95
- GetHashCode: (x) => (stringHash(x) | 0),
96
- });
97
- }, namespacePages);
98
- const pages = toList(delay(() => append(singleton(rootIndexPage(outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(outputBase, modules)))))))));
99
- const writeResults = map_1((tupledArg_1) => {
100
- const slug_1 = tupledArg_1[0];
101
- const content = tupledArg_1[1];
102
- const filePath = path.join(outputDir, slug_1 + ".mdx");
103
- const matchValue_2 = writeSync(filePath, content);
84
+ const dedupedNamespacePages = filter((tupledArg) => !contains(tupledArg[0], moduleSlugs, {
85
+ Equals: (x, y) => (x === y),
86
+ GetHashCode: (x) => (stringHash(x) | 0),
87
+ }), namespacePages);
88
+ const errors = collectErrors(map_1((tupledArg_1) => {
89
+ const filePath = path.join(outputDir, tupledArg_1[0] + ".mdx");
90
+ const matchValue_2 = writeSync(filePath, tupledArg_1[1]);
104
91
  if (matchValue_2.tag === 0) {
105
92
  logger.info(concat(" wrote ", ...filePath));
106
93
  return new FileOperationResult$1(0, [undefined]);
@@ -110,8 +97,7 @@ function starlightFSharpDoc(pluginOptions) {
110
97
  logger.error(msg_2);
111
98
  return new FileOperationResult$1(1, [msg_2]);
112
99
  }
113
- }, pages);
114
- const errors = collectErrors(writeResults);
100
+ }, toList(delay(() => append(singleton(rootIndexPage(outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(outputBase, modules)))))))))));
115
101
  if (!isEmpty(errors)) {
116
102
  const errorMsg = (`Failed to write ${length(errors)} file(s):
117
103
  `) + join("\n", errors);
@@ -13,8 +13,7 @@ export function renderSummary(sb, xmlDoc) {
13
13
  if (matchValue == null) {
14
14
  }
15
15
  else {
16
- const summary = matchValue;
17
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(summary));
16
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(matchValue));
18
17
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
19
18
  }
20
19
  }
@@ -1,50 +1,46 @@
1
1
 
2
+ import { tocH3, h2, escapeMdxText, renderDocEntry } from "./Primitives.js";
3
+ import { FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3, FSharp_Oracle_Schema_TextNode__TextNode_get_Html } from "../Extensions/TextNode.js";
4
+ import { MemberKind, TextNode, ObsoleteInfo } from "../FSharp.Oracle.Schema/Schema.js";
5
+ import { renderXmlDocBody, renderDocumentationBlock } from "./Documentation.js";
2
6
  import { collect, map, ofArray, isEmpty, filter } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
3
7
  import { System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
4
8
  import { equals, disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
5
- import { FSharp_Oracle_Schema_TextNode__TextNode_get_Html, FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3 } from "../Extensions/TextNode.js";
6
- import { MemberKind, ObsoleteInfo, TextNode } from "../FSharp.Oracle.Schema/Schema.js";
7
- import { tocH3, h2, renderDocEntry, escapeMdxText } from "./Primitives.js";
8
9
  import { value as value_1 } from "../fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
9
- import { renderXmlDocBody, renderDocumentationBlock } from "./Documentation.js";
10
10
  import { join } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
11
11
  import { map as map_1, singleton, append, delay, toList } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
12
12
 
13
13
  export function renderUnionCaseEntry(sb, case$) {
14
- const renderFields = () => {
15
- const documentedFields = filter((f) => (f.XmlDoc.Summary != null), case$.Fields);
16
- if (!isEmpty(documentedFields)) {
17
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Fields</strong>");
18
- const enumerator = getEnumerator(documentedFields);
19
- try {
20
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
21
- const f_1 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
22
- const fieldDeclaration = FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3(ofArray([new TextNode(23, ["div", "fs-parameter__signature"]), new TextNode(20, []), new TextNode(0, [f_1.Name]), new TextNode(9, []), new TextNode(12, []), new TextNode(9, []), f_1.Type, new TextNode(20, []), new TextNode(22, ["div"]), new TextNode(20, [])]));
23
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, fieldDeclaration);
24
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
25
- System_Text_StringBuilder__StringBuilder_NewLine(sb);
26
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(value_1(f_1.XmlDoc.Summary)));
27
- System_Text_StringBuilder__StringBuilder_NewLine(sb);
28
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
14
+ renderDocEntry(sb, case$.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(case$.Declaration), new ObsoleteInfo(0, []), () => {
15
+ renderDocumentationBlock(sb, case$.XmlDoc, () => {
16
+ const documentedFields = filter((f) => (f.XmlDoc.Summary != null), case$.Fields);
17
+ if (!isEmpty(documentedFields)) {
18
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Fields</strong>");
19
+ const enumerator = getEnumerator(documentedFields);
20
+ try {
21
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
22
+ const f_1 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
23
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3(ofArray([new TextNode(23, ["div", "fs-parameter__signature"]), new TextNode(20, []), new TextNode(0, [f_1.Name]), new TextNode(9, []), new TextNode(12, []), new TextNode(9, []), f_1.Type, new TextNode(20, []), new TextNode(22, ["div"]), new TextNode(20, [])])));
24
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
25
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
26
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(value_1(f_1.XmlDoc.Summary)));
27
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
28
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
29
+ }
30
+ }
31
+ finally {
32
+ disposeSafe(enumerator);
29
33
  }
30
34
  }
31
- finally {
32
- disposeSafe(enumerator);
33
- }
34
- }
35
- };
36
- const renderDocumentation = () => {
37
- renderDocumentationBlock(sb, case$.XmlDoc, renderFields);
38
- };
39
- renderDocEntry(sb, case$.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(case$.Declaration), new ObsoleteInfo(0, []), renderDocumentation);
35
+ });
36
+ });
40
37
  }
41
38
 
42
39
  export function renderRecordField(sb, field) {
43
- const renderDocumentation = () => {
40
+ renderDocEntry(sb, field.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(field.Declaration), new ObsoleteInfo(0, []), () => {
44
41
  renderDocumentationBlock(sb, field.XmlDoc, () => {
45
42
  });
46
- };
47
- renderDocEntry(sb, field.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(field.Declaration), new ObsoleteInfo(0, []), renderDocumentation);
43
+ });
48
44
  }
49
45
 
50
46
  export function renderMemberEntry(sb, m) {
@@ -139,10 +135,9 @@ export function renderFunctionEntry(sb, f) {
139
135
  }
140
136
 
141
137
  export function renderValueEntry(sb, v) {
142
- const renderDocumentation = () => {
138
+ renderDocEntry(sb, v.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(v.Declaration), v.ObsoleteInfo, () => {
143
139
  renderDocumentationBlock(sb, v.XmlDoc, () => {
144
140
  });
145
- };
146
- renderDocEntry(sb, v.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(v.Declaration), v.ObsoleteInfo, renderDocumentation);
141
+ });
147
142
  }
148
143
 
@@ -26,8 +26,7 @@ export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
26
26
  if (matchValue == null) {
27
27
  }
28
28
  else {
29
- const doc = matchValue;
30
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
29
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(matchValue), ..."</dd>"));
31
30
  }
32
31
  }
33
32
  }
@@ -55,9 +54,8 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
55
54
  renderXmlDocSummaryAndRemarks(sb, toc, Entity__get_XmlDoc(entity));
56
55
  switch (entity.tag) {
57
56
  case 1: {
58
- const e = entity.fields[0];
59
57
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
60
- const enumerator = getEnumerator(e.Cases);
58
+ const enumerator = getEnumerator(entity.fields[0].Cases);
61
59
  try {
62
60
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
63
61
  const c = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
@@ -95,13 +93,11 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
95
93
  break;
96
94
  }
97
95
  case 3: {
98
- const e_1 = entity.fields[0];
99
- renderMemberSections(sb, toc, e_1.Members);
96
+ renderMemberSections(sb, toc, entity.fields[0].Members);
100
97
  break;
101
98
  }
102
99
  case 4: {
103
- const e_2 = entity.fields[0];
104
- renderMemberSections(sb, toc, e_2.Members);
100
+ renderMemberSections(sb, toc, entity.fields[0].Members);
105
101
  break;
106
102
  }
107
103
  case 7: {
@@ -140,11 +136,9 @@ export function renderNamespacePage(htmlLinkGen, ns, subNamespaces, entities, mo
140
136
  const enumerator = getEnumerator(subNamespaces);
141
137
  try {
142
138
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
139
+ let lastDot;
143
140
  const subNs = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
144
- let shortName;
145
- const lastDot = subNs.lastIndexOf(".") | 0;
146
- shortName = ((lastDot < 0) ? subNs : subNs.slice(lastDot + 1, subNs.length));
147
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(shortName, subNs), ..."</dt>"));
141
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen((lastDot = (subNs.lastIndexOf(".") | 0), (lastDot < 0) ? subNs : subNs.slice(lastDot + 1, subNs.length)), subNs), ..."</dt>"));
148
142
  }
149
143
  }
150
144
  finally {
@@ -165,8 +159,7 @@ export function renderNamespacePage(htmlLinkGen, ns, subNamespaces, entities, mo
165
159
  if (matchValue == null) {
166
160
  }
167
161
  else {
168
- const summary = matchValue;
169
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
162
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(matchValue), ..."</dd>"));
170
163
  }
171
164
  }
172
165
  }
@@ -197,8 +190,7 @@ export function renderModulePage(htmlLinkGen, m, subModules) {
197
190
  if (matchValue == null) {
198
191
  }
199
192
  else {
200
- const summary = matchValue;
201
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
193
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(matchValue), ..."</dd>"));
202
194
  }
203
195
  }
204
196
  }
@@ -260,8 +252,7 @@ export function renderRootIndexPage(htmlLinkGen, assemblies, globalModules) {
260
252
  if (matchValue == null) {
261
253
  }
262
254
  else {
263
- const doc = matchValue;
264
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
255
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(matchValue), ..."</dd>"));
265
256
  }
266
257
  }
267
258
  }
@@ -24,24 +24,8 @@ export function tocH3(toc, slug, text) {
24
24
  }
25
25
 
26
26
  export function renderDocEntry(sb, name, signatureHtml, obsoleteInfo, renderDocumentation) {
27
- let patternInput;
28
- switch (obsoleteInfo.tag) {
29
- case 1: {
30
- patternInput = [" obsolete", ""];
31
- break;
32
- }
33
- case 2: {
34
- const msg = obsoleteInfo.fields[0];
35
- const escaped = replace(msg, "\"", "&quot;");
36
- patternInput = [" obsolete", concat(" obsoleteMessage=\"", escaped, ..."\"")];
37
- break;
38
- }
39
- default:
40
- patternInput = ["", ""];
41
- }
42
- const obsoleteMessageAttr = patternInput[1];
43
- const obsoleteAttr = patternInput[0];
44
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<DocEntry name="${name}"${obsoleteAttr}${obsoleteMessageAttr}>`);
27
+ const patternInput = (obsoleteInfo.tag === 1) ? [" obsolete", ""] : ((obsoleteInfo.tag === 2) ? [" obsolete", concat(" obsoleteMessage=\"", replace(obsoleteInfo.fields[0], "\"", "&quot;"), ..."\"")] : ["", ""]);
28
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<DocEntry name="${name}"${patternInput[0]}${patternInput[1]}>`);
45
29
  System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\" slot=\"signature\">");
46
30
  System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, signatureHtml);
47
31
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
@@ -59,8 +43,7 @@ export function renderObsoleteBanner(sb, obsoleteInfo) {
59
43
  break;
60
44
  }
61
45
  case 2: {
62
- const msg = obsoleteInfo.fields[0];
63
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<Aside type=\"caution\" title=\"Deprecated\">", escapeMdxText(msg), ..."</Aside>"));
46
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<Aside type=\"caution\" title=\"Deprecated\">", escapeMdxText(obsoleteInfo.fields[0]), ..."</Aside>"));
64
47
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
65
48
  break;
66
49
  }
@@ -73,10 +56,8 @@ export function obsoleteInlineHtml(obsoleteInfo) {
73
56
  switch (obsoleteInfo.tag) {
74
57
  case 1:
75
58
  return " <span class=\"fsharp-doc-obsolete-inline\">Deprecated</span>";
76
- case 2: {
77
- const msg = obsoleteInfo.fields[0];
78
- return concat(" <span class=\"fsharp-doc-obsolete-inline\" title=\"", msg, ..."\">Deprecated</span>");
79
- }
59
+ case 2:
60
+ return concat(" <span class=\"fsharp-doc-obsolete-inline\" title=\"", obsoleteInfo.fields[0], ..."\">Deprecated</span>");
80
61
  default:
81
62
  return "";
82
63
  }
@@ -85,23 +66,19 @@ export function obsoleteInlineHtml(obsoleteInfo) {
85
66
  export function renderExamples(sb, examples) {
86
67
  if (!isEmpty(examples)) {
87
68
  if (isEmpty(tail(examples))) {
88
- const single = head(examples);
89
69
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Example</strong>");
90
70
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
91
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(single));
71
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(head(examples)));
92
72
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
93
73
  }
94
74
  else {
95
- const multiple = examples;
96
- const enumerator = getEnumerator(indexed(multiple));
75
+ const enumerator = getEnumerator(indexed(examples));
97
76
  try {
98
77
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
99
78
  const forLoopVar = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
100
- const i = forLoopVar[0] | 0;
101
- const example = forLoopVar[1];
102
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<strong>Example ${i + 1}</strong>`);
79
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<strong>Example ${forLoopVar[0] + 1}</strong>`);
103
80
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
104
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(example));
81
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(forLoopVar[1]));
105
82
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
106
83
  }
107
84
  }
package/dist/Themes.js CHANGED
@@ -26,15 +26,14 @@ function colorFor(theme, targetScopes) {
26
26
  const fg = theme.fg;
27
27
  return defaultArg(tryPick((rule) => {
28
28
  const ruleScopes = scopesOf(rule);
29
- const matches = exists((target) => ruleScopes.some((rs) => {
29
+ if (!exists((target) => ruleScopes.some((rs) => {
30
30
  if (target === rs) {
31
31
  return true;
32
32
  }
33
33
  else {
34
34
  return target.startsWith(rs + ".");
35
35
  }
36
- }), targetScopes);
37
- if (!matches) {
36
+ }), targetScopes)) {
38
37
  return undefined;
39
38
  }
40
39
  else {
@@ -60,8 +59,7 @@ export function generateCss(ecRenderer) {
60
59
  const sb = StringBuilder_$ctor();
61
60
  for (let idx = 0; idx <= (themes.length - 1); idx++) {
62
61
  const theme = item(idx, themes);
63
- const themeType = theme.type;
64
- const selector = (themeType === "dark") ? ":root[data-theme=\'dark\']" : ":root";
62
+ const selector = (theme.type === "dark") ? ":root[data-theme=\'dark\']" : ":root";
65
63
  const kw = colorFor(theme, ofArray(["keyword", "storage.type", "keyword.operator"]));
66
64
  const fn_ = colorFor(theme, ofArray(["variable", "entity.name.function"]));
67
65
  const type_ = colorFor(theme, ofArray(["entity", "entity.name"]));
@@ -0,0 +1,57 @@
1
+ [<RequireQualifiedAccess>]
2
+ module AsyncIterable
3
+
4
+ open Fable.Core
5
+ open Fable.Core.JsInterop
6
+
7
+ [<Emit("""{
8
+ [Symbol.asyncIterator]() {
9
+ return {
10
+ next: $0,
11
+ return: $1
12
+ }
13
+ }
14
+ }""")>]
15
+ let private createAsyncIterator (onNext: unit -> JS.Promise<obj>) (onCancel: unit -> obj): JS.AsyncIterable<'T> = jsNative
16
+
17
+ /// Creates AsyncIterable. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of#specifications
18
+ let create (onNext: unit -> JS.Promise<'T option>): JS.AsyncIterable<'T> =
19
+ createAsyncIterator
20
+ (fun () ->
21
+ onNext() |> Promise.map (function
22
+ | Some value -> createObj ["value" ==> value; "done" ==> false]
23
+ | None -> createObj ["done" ==> true]
24
+ ))
25
+ (fun () -> createObj [ "done" ==> true ])
26
+
27
+ /// Creates AsyncIterable with a cleaning function for cancellation (JS caller invokes `break` or `return` during iteration)
28
+ let createCancellable (onCancel: unit -> unit) (onNext: unit -> JS.Promise<'T option>): JS.AsyncIterable<'T> =
29
+ createAsyncIterator
30
+ (fun () ->
31
+ onNext() |> Promise.map (function
32
+ | Some value -> createObj ["value" ==> value; "done" ==> false]
33
+ | None -> createObj ["done" ==> true]
34
+ ))
35
+ (fun () ->
36
+ onCancel()
37
+ createObj [ "done" ==> true ])
38
+
39
+ type CancellationToken() =
40
+ member this.Cancel(): unit =
41
+ raise !!this
42
+
43
+ /// Iterates AsyncIterable. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of
44
+ let iter (action: CancellationToken -> 'T -> unit) (iterable: JS.AsyncIterable<'T>): JS.Promise<unit> =
45
+ let token = CancellationToken()
46
+ emitJsExpr () """(async () => {
47
+ for await (const value of iterable) {
48
+ try {
49
+ action(token, value)
50
+ } catch (err) {
51
+ if (err instanceof token.constructor) {
52
+ break;
53
+ }
54
+ throw(err);
55
+ }
56
+ }
57
+ })()"""
@@ -0,0 +1,105 @@
1
+
2
+ import { value as value_1 } from "../fable-library-js.5.0.0-rc.7/Option.js";
3
+ import { class_type } from "../fable-library-js.5.0.0-rc.7/Reflection.js";
4
+
5
+ /**
6
+ * Creates AsyncIterable. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of#specifications
7
+ */
8
+ export function create(onNext) {
9
+ return {
10
+ [Symbol.asyncIterator]() {
11
+ return {
12
+ next: (() => {
13
+ const pr = onNext();
14
+ return pr.then((_arg) => {
15
+ if (_arg == null) {
16
+ return {
17
+ done: true,
18
+ };
19
+ }
20
+ else {
21
+ return {
22
+ value: value_1(_arg),
23
+ done: false,
24
+ };
25
+ }
26
+ });
27
+ }),
28
+ return: (() => ({
29
+ done: true,
30
+ }))
31
+ }
32
+ }
33
+ };
34
+ }
35
+
36
+ /**
37
+ * Creates AsyncIterable with a cleaning function for cancellation (JS caller invokes `break` or `return` during iteration)
38
+ */
39
+ export function createCancellable(onCancel, onNext) {
40
+ return {
41
+ [Symbol.asyncIterator]() {
42
+ return {
43
+ next: (() => {
44
+ const pr = onNext();
45
+ return pr.then((_arg) => {
46
+ if (_arg == null) {
47
+ return {
48
+ done: true,
49
+ };
50
+ }
51
+ else {
52
+ return {
53
+ value: value_1(_arg),
54
+ done: false,
55
+ };
56
+ }
57
+ });
58
+ }),
59
+ return: (() => {
60
+ onCancel();
61
+ return {
62
+ done: true,
63
+ };
64
+ })
65
+ }
66
+ }
67
+ };
68
+ }
69
+
70
+ export class CancellationToken {
71
+ constructor() {
72
+ }
73
+ }
74
+
75
+ export function CancellationToken_$reflection() {
76
+ return class_type("AsyncIterable.CancellationToken", undefined, CancellationToken);
77
+ }
78
+
79
+ export function CancellationToken_$ctor() {
80
+ return new CancellationToken();
81
+ }
82
+
83
+ export function CancellationToken__Cancel(this$) {
84
+ throw this$;
85
+ }
86
+
87
+ /**
88
+ * Iterates AsyncIterable. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of
89
+ */
90
+ export function iter(action, iterable) {
91
+ const token = CancellationToken_$ctor();
92
+ return (async () => {
93
+ for await (const value of iterable) {
94
+ try {
95
+ action(token, value)
96
+ } catch (err) {
97
+ if (err instanceof token.constructor) {
98
+ break;
99
+ }
100
+ throw(err);
101
+ }
102
+ }
103
+ })();
104
+ }
105
+
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project Sdk="Microsoft.NET.Sdk">
3
+ <PropertyGroup>
4
+ <Version>3.2.0</Version>
5
+ <PackageVersion>3.2.0</PackageVersion>
6
+ <TargetFramework>netstandard2.0</TargetFramework>
7
+ </PropertyGroup>
8
+ <ItemGroup>
9
+ <Compile Include="Promise.fs" />
10
+ <Compile Include="PromiseImpl.fs" />
11
+ <Compile Include="AsyncIterable.fs" />
12
+ </ItemGroup>
13
+ <ItemGroup>
14
+ <Content Include="*.fsproj; *.fs" PackagePath="fable\" />
15
+ </ItemGroup>
16
+ <ItemGroup>
17
+ <PackageReference Include="Fable.Core" Version="3.7.1" />
18
+ <PackageReference Update="FSharp.Core" Version="4.7.2" />
19
+ </ItemGroup>
20
+ </Project>