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.
- package/dist/Extensions/StringBuilder.js +2 -5
- package/dist/Extensions/TextNode.js +24 -53
- package/dist/FSharp.Oracle.Schema/Schema.js +113 -218
- package/dist/Generate.js +33 -63
- package/dist/Helpers.js +1 -2
- package/dist/Plugin.js +17 -31
- package/dist/Render/Documentation.js +1 -2
- package/dist/Render/Entries.js +29 -34
- package/dist/Render/Pages.js +9 -18
- package/dist/Render/Primitives.js +9 -32
- package/dist/Themes.js +3 -5
- package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs +57 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js +105 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/Fable.Promise.fableproj +20 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs +766 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs.js +232 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs +31 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js +20 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs +1592 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs.js +1417 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs +106 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs.js +63 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs +380 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs.js +289 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Thoth.Json.Core.fableproj +37 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs +76 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs.js +37 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs +113 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs.js +173 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs +1153 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js +622 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs +91 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js +103 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs +893 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs.js +836 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs +435 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs.js +389 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Thoth.Json.Core.Auto.fableproj +43 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs +88 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js +102 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs +40 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs.js +59 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Thoth.Json.JavaScript.fableproj +31 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Array.js +1347 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Async.js +134 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/AsyncBuilder.js +183 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BigInt.js +306 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BitConverter.js +138 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Boolean.js +22 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CHANGELOG.md +191 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Char.js +202 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Choice.js +184 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CollectionUtil.js +182 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/ConditionalWeakTable.js +21 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Date.js +755 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOffset.js +261 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOnly.js +124 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Decimal.js +236 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Double.js +47 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Encoding.js +185 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Event.js +93 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Collections.js +45 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.CompilerServices.js +27 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.js +156 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Global.js +29 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Guid.js +161 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Int32.js +135 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/List.js +1323 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Long.js +47 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MailboxProcessor.js +94 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Map.js +1396 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MapUtil.js +130 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableMap.js +339 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableSet.js +233 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Native.js +14 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Numeric.js +75 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Observable.js +113 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Option.js +104 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/README.md +3 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Random.js +172 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Range.js +45 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Reflection.js +460 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js +141 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Result.js +165 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq.js +1409 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js +111 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Set.js +1788 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/String.js +649 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Collections.Generic.js +333 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js +168 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.js +283 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeOnly.js +122 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeSpan.js +180 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Timer.js +67 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Types.js +198 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Unicode.13.0.0.js +4 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Uri.js +165 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Util.js +792 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/big.d.ts +338 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/lib/big.js +825 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/package.json +24 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/quotation.js +618 -0
- package/package.json +3 -3
- package/oracle-bin/FSharp.Compiler.Service.dll +0 -0
- package/oracle-bin/FSharp.Core.dll +0 -0
- package/oracle-bin/FSharp.DependencyManager.Nuget.dll +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.dll +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.pdb +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.xml +0 -219
- package/oracle-bin/Fable.Core.dll +0 -0
- package/oracle-bin/Oracle +0 -0
- package/oracle-bin/Oracle.deps.json +0 -280
- package/oracle-bin/Oracle.dll +0 -0
- package/oracle-bin/Oracle.pdb +0 -0
- package/oracle-bin/Oracle.runtimeconfig.json +0 -13
- package/oracle-bin/Oracle.xml +0 -111
- package/oracle-bin/Thoth.Json.Core.Auto.dll +0 -0
- package/oracle-bin/Thoth.Json.Core.dll +0 -0
- package/oracle-bin/Thoth.Json.System.Text.Json.dll +0 -0
- package/oracle-bin/cs/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/cs/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/cs/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/de/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/de/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/de/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/es/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/es/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/es/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/it/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/it/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/it/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll +0 -0
package/dist/Helpers.js
CHANGED
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 {
|
|
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
|
|
24
|
-
const args = toList(delay(() => append(singleton(
|
|
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
|
-
|
|
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,
|
|
67
|
-
const
|
|
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()) : ((
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
},
|
|
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
|
-
|
|
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
|
}
|
package/dist/Render/Entries.js
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
package/dist/Render/Pages.js
CHANGED
|
@@ -26,8 +26,7 @@ export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
|
|
|
26
26
|
if (matchValue == null) {
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
case 1: {
|
|
30
|
-
patternInput = [" obsolete", ""];
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
case 2: {
|
|
34
|
-
const msg = obsoleteInfo.fields[0];
|
|
35
|
-
const escaped = replace(msg, "\"", """);
|
|
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], "\"", """), ..."\"")] : ["", ""]);
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
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>
|