starlight-fsharp-oracle 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Extensions/TextNode.js +1 -1
- package/dist/Generate.js +53 -21
- package/dist/Plugin.js +22 -16
- package/dist/Render/Documentation.js +6 -6
- package/dist/Render/Entries.js +2 -2
- package/dist/Render/Pages.js +77 -48
- package/dist/Render/Primitives.js +51 -8
- package/dist/Render.js +1 -1
- package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs +0 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/Fable.Promise.fableproj +0 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs +0 -0
- package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Thoth.Json.Core.fableproj +0 -0
- package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs +0 -0
- package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Thoth.Json.Core.Auto.fableproj +0 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs +0 -0
- package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Thoth.Json.JavaScript.fableproj +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Array.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Async.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/AsyncBuilder.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BigInt.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BitConverter.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Boolean.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CHANGELOG.md +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Char.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Choice.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CollectionUtil.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/ConditionalWeakTable.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Date.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOffset.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOnly.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Decimal.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Double.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Encoding.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Event.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Collections.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.CompilerServices.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Global.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Guid.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Int32.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/List.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Long.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MailboxProcessor.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Map.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MapUtil.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableMap.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableSet.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Native.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Numeric.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Observable.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Option.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/README.md +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Random.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Range.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Reflection.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Result.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Set.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/String.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Collections.Generic.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeOnly.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeSpan.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Timer.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Types.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Unicode.13.0.0.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Uri.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Util.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/big.d.ts +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/lib/big.js +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/package.json +0 -0
- package/dist/fable_modules/fable-library-js.5.0.0-rc.7/quotation.js +0 -0
- package/package.json +9 -8
- package/packages/FSharp.Oracle/Extractor/Assembly.fs +6 -1
- package/packages/FSharp.Oracle/Extractor/EntityExtractor.fs +35 -4
- package/packages/FSharp.Oracle/Program.fs +7 -6
- package/packages/FSharp.Oracle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +0 -3
- package/packages/FSharp.Oracle/obj/Debug/net10.0/FSharp.Oracle.AssemblyInfo.fs +0 -17
- package/packages/FSharp.Oracle/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +0 -3
- package/packages/FSharp.Oracle/obj/Release/net10.0/FSharp.Oracle.AssemblyInfo.fs +0 -17
- package/packages/FSharp.Oracle.Schema/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +0 -3
- package/packages/FSharp.Oracle.Schema/obj/Debug/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs +0 -17
- package/packages/FSharp.Oracle.Schema/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +0 -3
- package/packages/FSharp.Oracle.Schema/obj/Release/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs +0 -17
package/dist/Generate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { join, split, concat, substring, replace } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
3
|
-
import { cons, append, toArray, exists, isEmpty, map, filter, ofArray, collect, sort } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
|
|
3
|
+
import { cons, append, toArray, contains, tryFind, exists, isEmpty, map, filter, ofArray, collect, sort } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
|
|
4
4
|
import { List_distinct } from "./fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js";
|
|
5
5
|
import { scan, tail } from "./fable_modules/fable-library-js.5.0.0-rc.7/Array.js";
|
|
6
6
|
import { comparePrimitives, stringHash } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
|
|
@@ -62,7 +62,7 @@ import { Aside } from '@astrojs/starlight/components';
|
|
|
62
62
|
${page.TemplateBody}`;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
export function namespacePages(outputBase, modules) {
|
|
65
|
+
export function namespacePages(basePath, outputBase, modules) {
|
|
66
66
|
const realModules = filter((m) => !m.IsSynthetic, modules);
|
|
67
67
|
const allNamespaces = namespacesOf(modules);
|
|
68
68
|
const syntheticModules = filter((m_2) => m_2.IsSynthetic, modules);
|
|
@@ -80,23 +80,50 @@ export function namespacePages(outputBase, modules) {
|
|
|
80
80
|
}
|
|
81
81
|
}, allNamespaces);
|
|
82
82
|
const entitiesInNs = collect((m_5) => m_5.Entities, filter((m_4) => (m_4.Namespace === ns_1), syntheticModules));
|
|
83
|
-
return [slug, toMdxPage(renderNamespacePage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(ns_1)(subNamespaces)(entitiesInNs)(modulesInNs))];
|
|
83
|
+
return [slug, toMdxPage(renderNamespacePage((name) => ((fullName) => (`<a href="${basePath}/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(ns_1)(subNamespaces)(entitiesInNs)(modulesInNs))];
|
|
84
84
|
}, allNamespaces);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
export function modulePages(outputBase, modules) {
|
|
87
|
+
export function modulePages(basePath, outputBase, modules) {
|
|
88
88
|
const realModules = filter((m) => !m.IsSynthetic, modules);
|
|
89
89
|
return map((m_1) => {
|
|
90
90
|
const subModules = filter((other) => (other.Namespace === m_1.FullName), realModules);
|
|
91
|
-
return [toSlug(m_1.FullName), toMdxPage(renderModulePage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(m_1)(subModules))];
|
|
91
|
+
return [toSlug(m_1.FullName), toMdxPage(renderModulePage((name) => ((fullName) => (`<a href="${basePath}/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(m_1)(subModules))];
|
|
92
92
|
}, realModules);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
export function entityPages(outputBase, modules) {
|
|
96
|
-
|
|
95
|
+
export function entityPages(basePath, outputBase, modules) {
|
|
96
|
+
const realModules = filter((m) => !m.IsSynthetic, modules);
|
|
97
|
+
return toList(delay(() => collect_1((m_2) => map_1((e) => {
|
|
98
|
+
let slug;
|
|
99
|
+
return [toSlug(Entity__get_FullName(e)), toMdxPage(renderEntityPage((name) => ((fullName) => (`<a href="${basePath}/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(e)(m_2)((slug = toSlug(Entity__get_FullName(e)), tryFind((m_1) => {
|
|
100
|
+
if (m_1.FullName !== m_2.FullName) {
|
|
101
|
+
return toSlug(m_1.FullName) === slug;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}, realModules))))];
|
|
107
|
+
}, m_2.Entities), modules)));
|
|
97
108
|
}
|
|
98
109
|
|
|
99
|
-
|
|
110
|
+
/**
|
|
111
|
+
* Slugs of modules whose page is merged into a same-slug entity page.
|
|
112
|
+
* Their standalone module page must be dropped so it does not clobber the merged one.
|
|
113
|
+
*/
|
|
114
|
+
export function mergedModuleSlugs(modules) {
|
|
115
|
+
const realModules = filter((m) => !m.IsSynthetic, modules);
|
|
116
|
+
const entitySlugs = map((e) => toSlug(Entity__get_FullName(e)), collect((m_1) => m_1.Entities, modules));
|
|
117
|
+
return List_distinct(filter((slug) => contains(slug, entitySlugs, {
|
|
118
|
+
Equals: (x, y) => (x === y),
|
|
119
|
+
GetHashCode: (x) => (stringHash(x) | 0),
|
|
120
|
+
}), map((m_2) => toSlug(m_2.FullName), realModules)), {
|
|
121
|
+
Equals: (x_1, y_1) => (x_1 === y_1),
|
|
122
|
+
GetHashCode: (x_1) => (stringHash(x_1) | 0),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function rootIndexPage(basePath, outputBase, assemblies, modules) {
|
|
100
127
|
const globalModules = filter((m) => {
|
|
101
128
|
if (!m.IsSynthetic) {
|
|
102
129
|
return m.Namespace === "";
|
|
@@ -105,7 +132,7 @@ export function rootIndexPage(outputBase, assemblies, modules) {
|
|
|
105
132
|
return false;
|
|
106
133
|
}
|
|
107
134
|
}, modules);
|
|
108
|
-
return ["index", toMdxPage(renderRootIndexPage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(assemblies)(globalModules))];
|
|
135
|
+
return ["index", toMdxPage(renderRootIndexPage((name) => ((fullName) => (`<a href="${basePath}/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(assemblies)(globalModules))];
|
|
109
136
|
}
|
|
110
137
|
|
|
111
138
|
function sidebarLink(outputBase, label, fullName, letter, kind) {
|
|
@@ -162,17 +189,22 @@ export function sidebarTree(outputBase, label, modules) {
|
|
|
162
189
|
const realModules = filter((m) => !m.IsSynthetic, modules);
|
|
163
190
|
const syntheticModules = filter((m_1) => m_1.IsSynthetic, modules);
|
|
164
191
|
const allNamespaces = namespacesOf(modules);
|
|
165
|
-
const
|
|
192
|
+
const realModuleSlugs = map((m_2) => toSlug(m_2.FullName), realModules);
|
|
193
|
+
const entitySidebarItems = (entities) => map((entity) => entitySidebarItem(outputBase, entity), filter((e) => !contains(toSlug(Entity__get_FullName(e)), realModuleSlugs, {
|
|
194
|
+
Equals: (x, y) => (x === y),
|
|
195
|
+
GetHashCode: (x) => (stringHash(x) | 0),
|
|
196
|
+
}), entities));
|
|
197
|
+
const moduleHref = (m_3) => concat("/", outputBase, "/", ...toSlug(m_3.FullName));
|
|
166
198
|
const anchorLink = (label_1, href) => ({
|
|
167
199
|
label: label_1,
|
|
168
200
|
link: href,
|
|
169
201
|
});
|
|
170
|
-
const moduleSidebarItem = (
|
|
171
|
-
const subModules = filter((other) => (other.Namespace ===
|
|
172
|
-
return sidebarGroup(
|
|
202
|
+
const moduleSidebarItem = (m_4) => {
|
|
203
|
+
const subModules = filter((other) => (other.Namespace === m_4.FullName), realModules);
|
|
204
|
+
return sidebarGroup(m_4.Name, "M", "module", append(cons({
|
|
173
205
|
label: "Overview",
|
|
174
|
-
link: moduleHref(
|
|
175
|
-
}, map((
|
|
206
|
+
link: moduleHref(m_4),
|
|
207
|
+
}, map((entity_1) => entitySidebarItem(outputBase, entity_1), m_4.Entities)), append(map((f) => anchorLink(f.Name, concat(moduleHref(m_4), "#", ...f.Name)), m_4.Functions), append(map((v) => anchorLink(v.Name, concat(moduleHref(m_4), "#", ...v.Name)), m_4.Values), map(moduleSidebarItem, subModules)))));
|
|
176
208
|
};
|
|
177
209
|
const buildNsGroup = (ns) => {
|
|
178
210
|
let shortName;
|
|
@@ -180,28 +212,28 @@ export function sidebarTree(outputBase, label, modules) {
|
|
|
180
212
|
shortName = ((lastDot < 0) ? ns : ns.slice(lastDot + 1, ns.length));
|
|
181
213
|
const directChildNs = filter((other_1) => {
|
|
182
214
|
if (other_1.startsWith(ns + ".") && !(other_1.slice(ns.length + 1, other_1.length).indexOf(".") >= 0)) {
|
|
183
|
-
return !exists((
|
|
215
|
+
return !exists((m_5) => (m_5.FullName === other_1), realModules);
|
|
184
216
|
}
|
|
185
217
|
else {
|
|
186
218
|
return false;
|
|
187
219
|
}
|
|
188
220
|
}, allNamespaces);
|
|
189
|
-
const modulesInNs = filter((
|
|
190
|
-
const syntheticInNs = filter((
|
|
221
|
+
const modulesInNs = filter((m_6) => (m_6.Namespace === ns), realModules);
|
|
222
|
+
const syntheticInNs = filter((m_7) => (m_7.Namespace === ns), syntheticModules);
|
|
191
223
|
return sidebarGroup(shortName, "N", "namespace", toList(delay(() => append_1(map(moduleSidebarItem, modulesInNs), delay(() => append_1(collect_1((sm) => {
|
|
192
224
|
let lastDot_1;
|
|
193
|
-
return (sm.Name === "global") ?
|
|
225
|
+
return (sm.Name === "global") ? entitySidebarItems(sm.Entities) : singleton(sidebarGroup((lastDot_1 = (sm.FullName.lastIndexOf(".") | 0), (lastDot_1 < 0) ? sm.FullName : sm.FullName.slice(lastDot_1 + 1, sm.FullName.length)), "N", "namespace", entitySidebarItems(sm.Entities)));
|
|
194
226
|
}, syntheticInNs), delay(() => map(buildNsGroup, directChildNs))))))));
|
|
195
227
|
};
|
|
196
228
|
const topLevelNs = filter((ns_1) => {
|
|
197
229
|
if (!exists((other_2) => ns_1.startsWith(other_2 + "."), allNamespaces)) {
|
|
198
|
-
return !exists((
|
|
230
|
+
return !exists((m_8) => (m_8.FullName === ns_1), realModules);
|
|
199
231
|
}
|
|
200
232
|
else {
|
|
201
233
|
return false;
|
|
202
234
|
}
|
|
203
235
|
}, allNamespaces);
|
|
204
|
-
const globalModules = filter((
|
|
236
|
+
const globalModules = filter((m_9) => (m_9.Namespace === ""), realModules);
|
|
205
237
|
const overviewLink_1 = {
|
|
206
238
|
label: "Overview",
|
|
207
239
|
link: concat("/", ...outputBase),
|
package/dist/Plugin.js
CHANGED
|
@@ -3,9 +3,9 @@ import * as path from "path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { toArray, singleton, append, delay, toList } from "./fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
|
|
5
5
|
import * as child_process from "child_process";
|
|
6
|
-
import { map, defaultArg, some } from "./fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
|
|
6
|
+
import { map, ofNullable, 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
|
-
import { join, concat, interpolate } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
8
|
+
import { join, concat, trimEnd, interpolate } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
9
9
|
import { unsafeFromString } from "./fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js";
|
|
10
10
|
import { generateDecoder } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js";
|
|
11
11
|
import { Extra_empty } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js";
|
|
@@ -14,14 +14,14 @@ import { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from "./
|
|
|
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
|
-
import { length, isEmpty,
|
|
18
|
-
import { entityPages, rootIndexPage,
|
|
17
|
+
import { length, isEmpty, map as map_1, contains, filter, collect } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
|
|
18
|
+
import { entityPages, rootIndexPage, modulePages as modulePages_1, mergedModuleSlugs, namespacePages as namespacePages_1, sidebarTree, sidebarLabelInitScript } from "./Generate.js";
|
|
19
19
|
import { FileOperationResult$1, collectErrors, writeSync, mkdirSync } from "./Helpers.js";
|
|
20
20
|
|
|
21
|
-
function runExtractor(logger, outputBase, dllPaths) {
|
|
21
|
+
function runExtractor(logger, basePath, outputBase, dllPaths) {
|
|
22
22
|
const maxBuffer = ((50 * 1024) * 1024) | 0;
|
|
23
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))))))));
|
|
24
|
+
const args = toList(delay(() => append(singleton(oracleDll), delay(() => append(singleton("--output-base"), delay(() => append(singleton(outputBase), delay(() => append(singleton("--base"), delay(() => append(singleton(basePath), delay(() => dllPaths))))))))))));
|
|
25
25
|
const result = child_process.spawnSync("dotnet", Array.from(args), some({
|
|
26
26
|
encoding: "utf-8",
|
|
27
27
|
maxBuffer: maxBuffer,
|
|
@@ -58,9 +58,11 @@ function starlightFSharpDoc(pluginOptions) {
|
|
|
58
58
|
});
|
|
59
59
|
return createRenderer({}).then((_arg) => {
|
|
60
60
|
let matchValue, matchValue_1, msg;
|
|
61
|
-
const
|
|
61
|
+
const layerOrder = "@layer starlight.base, starlight.reset, starlight.core, starlight.content, starlight.components, starlight.utils;\n";
|
|
62
|
+
const themesCss = layerOrder + generateCss(_arg);
|
|
62
63
|
const outputBase = defaultArg(pluginOptions.output, "api");
|
|
63
|
-
const
|
|
64
|
+
const basePath = trimEnd(defaultArg(ofNullable(astroConfig.base), ""), "/");
|
|
65
|
+
const root = runExtractor(logger, basePath, outputBase, toList(pluginOptions.assemblies));
|
|
64
66
|
const modules = collect((_arg_1) => _arg_1.Modules, root.Assemblies);
|
|
65
67
|
const sidebarLabel = defaultArg(map((s) => s.label, pluginOptions.sidebar), "API Reference");
|
|
66
68
|
const existingSidebar = defaultArg(hookOptions.config.sidebar, []);
|
|
@@ -78,16 +80,20 @@ function starlightFSharpDoc(pluginOptions) {
|
|
|
78
80
|
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), ((() => {
|
|
79
81
|
throw new Exception(msg);
|
|
80
82
|
})(), Promise.resolve())))))).then(() => PromiseBuilder__Delay_62FBFDE1(promise, () => {
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
const dedupedNamespacePages = filter((tupledArg) => !contains(tupledArg[0], moduleSlugs, {
|
|
83
|
+
const namespacePages = namespacePages_1(basePath, outputBase, modules);
|
|
84
|
+
const mergedSlugs = mergedModuleSlugs(modules);
|
|
85
|
+
const modulePages = filter((tupledArg) => !contains(tupledArg[0], mergedSlugs, {
|
|
85
86
|
Equals: (x, y) => (x === y),
|
|
86
87
|
GetHashCode: (x) => (stringHash(x) | 0),
|
|
88
|
+
}), modulePages_1(basePath, outputBase, modules));
|
|
89
|
+
const moduleSlugs = map_1((tuple) => tuple[0], modulePages);
|
|
90
|
+
const dedupedNamespacePages = filter((tupledArg_1) => !contains(tupledArg_1[0], moduleSlugs, {
|
|
91
|
+
Equals: (x_1, y_1) => (x_1 === y_1),
|
|
92
|
+
GetHashCode: (x_1) => (stringHash(x_1) | 0),
|
|
87
93
|
}), namespacePages);
|
|
88
|
-
const errors = collectErrors(map_1((
|
|
89
|
-
const filePath = path.join(outputDir,
|
|
90
|
-
const matchValue_2 = writeSync(filePath,
|
|
94
|
+
const errors = collectErrors(map_1((tupledArg_2) => {
|
|
95
|
+
const filePath = path.join(outputDir, tupledArg_2[0] + ".mdx");
|
|
96
|
+
const matchValue_2 = writeSync(filePath, tupledArg_2[1]);
|
|
91
97
|
if (matchValue_2.tag === 0) {
|
|
92
98
|
logger.info(concat(" wrote ", ...filePath));
|
|
93
99
|
return new FileOperationResult$1(0, [undefined]);
|
|
@@ -97,7 +103,7 @@ function starlightFSharpDoc(pluginOptions) {
|
|
|
97
103
|
logger.error(msg_2);
|
|
98
104
|
return new FileOperationResult$1(1, [msg_2]);
|
|
99
105
|
}
|
|
100
|
-
}, toList(delay(() => append(singleton(rootIndexPage(outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(outputBase, modules)))))))))));
|
|
106
|
+
}, toList(delay(() => append(singleton(rootIndexPage(basePath, outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(basePath, outputBase, modules)))))))))));
|
|
101
107
|
if (!isEmpty(errors)) {
|
|
102
108
|
const errorMsg = (`Failed to write ${length(errors)} file(s):
|
|
103
109
|
`) + join("\n", errors);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
|
|
3
|
-
import { h2, renderExamples,
|
|
3
|
+
import { h2, renderExamples, escapeMdxMarkdown } from "./Primitives.js";
|
|
4
4
|
import { iterate } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
|
|
5
5
|
import { toArray } from "../fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
|
|
6
6
|
import { ofArray, tryFind, collect, isEmpty } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
|
|
@@ -13,7 +13,7 @@ export function renderSummary(sb, xmlDoc) {
|
|
|
13
13
|
if (matchValue == null) {
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
16
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(matchValue));
|
|
17
17
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -31,11 +31,11 @@ export function renderDocumentationBlock(sb, xmlDoc, renderExtra) {
|
|
|
31
31
|
export function renderXmlDocSummaryAndRemarks(sb, toc, xmlDoc) {
|
|
32
32
|
iterate((summary) => {
|
|
33
33
|
h2(sb, toc, "description", "Description");
|
|
34
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
34
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(summary));
|
|
35
35
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
36
36
|
}, toArray(xmlDoc.Summary));
|
|
37
37
|
iterate((remarks) => {
|
|
38
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
38
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(remarks));
|
|
39
39
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
40
40
|
}, toArray(xmlDoc.Remarks));
|
|
41
41
|
}
|
|
@@ -56,7 +56,7 @@ function renderParamsAndReturns(sb, parameters, xmlDoc) {
|
|
|
56
56
|
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, []), parameter.Declaration, new TextNode(20, []), new TextNode(22, ["div"]), new TextNode(20, [])])));
|
|
57
57
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
|
|
58
58
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
59
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
59
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(paramDoc_1.Doc));
|
|
60
60
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
61
61
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
62
62
|
}
|
|
@@ -73,7 +73,7 @@ function renderParamsAndReturns(sb, parameters, xmlDoc) {
|
|
|
73
73
|
const returnDoc = matchValue;
|
|
74
74
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Returns</strong>");
|
|
75
75
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
76
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
76
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(returnDoc));
|
|
77
77
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
78
78
|
}
|
|
79
79
|
}
|
package/dist/Render/Entries.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { tocH3, h2,
|
|
2
|
+
import { tocH3, h2, escapeMdxMarkdown, renderDocEntry } from "./Primitives.js";
|
|
3
3
|
import { FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3, FSharp_Oracle_Schema_TextNode__TextNode_get_Html } from "../Extensions/TextNode.js";
|
|
4
4
|
import { MemberKind, TextNode, ObsoleteInfo } from "../FSharp.Oracle.Schema/Schema.js";
|
|
5
5
|
import { renderXmlDocBody, renderDocumentationBlock } from "./Documentation.js";
|
|
@@ -23,7 +23,7 @@ export function renderUnionCaseEntry(sb, case$) {
|
|
|
23
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
24
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
|
|
25
25
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
26
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
26
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(value_1(f_1.XmlDoc.Summary)));
|
|
27
27
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
28
28
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
29
29
|
}
|
package/dist/Render/Pages.js
CHANGED
|
@@ -1,18 +1,55 @@
|
|
|
1
1
|
|
|
2
2
|
import { isEmpty } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
|
|
3
|
-
import {
|
|
3
|
+
import { inlineSignatureHtml, renderObsoleteBanner, escapeMdxInline, obsoleteInlineHtml, tocH3, h2 } from "./Primitives.js";
|
|
4
4
|
import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
|
|
5
5
|
import { disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
|
|
6
|
+
import { renderMemberSections, renderRecordField, renderUnionCaseEntry, renderValueEntry, renderFunctionEntry } from "./Entries.js";
|
|
6
7
|
import { concat } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
7
8
|
import { StringBuilder_$ctor } from "../fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js";
|
|
8
9
|
import { Entity__get_FullName, Entity__get_Name, Entity__get_XmlDoc, Entity__get_Declaration, Entity__get_ObsoleteInfo } from "../FSharp.Oracle.Schema/Schema.js";
|
|
9
10
|
import { FSharp_Oracle_Schema_TextNode__TextNode_get_Html } from "../Extensions/TextNode.js";
|
|
10
11
|
import { renderXmlDocSummaryAndRemarks } from "./Documentation.js";
|
|
11
|
-
import { renderValueEntry, renderFunctionEntry, renderMemberSections, renderRecordField, renderUnionCaseEntry } from "./Entries.js";
|
|
12
12
|
import { toString } from "../fable_modules/fable-library-js.5.0.0-rc.7/Types.js";
|
|
13
13
|
import { toList } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
|
|
14
14
|
import { RenderedPage } from "./Types.js";
|
|
15
15
|
|
|
16
|
+
function renderFunctionsAndValues(sb, toc, functions, values) {
|
|
17
|
+
if (!isEmpty(functions)) {
|
|
18
|
+
h2(sb, toc, "functions", "Functions");
|
|
19
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
20
|
+
const enumerator = getEnumerator(functions);
|
|
21
|
+
try {
|
|
22
|
+
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
23
|
+
const f = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
24
|
+
tocH3(toc, f.Name, f.Name);
|
|
25
|
+
renderFunctionEntry(sb, f);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
disposeSafe(enumerator);
|
|
30
|
+
}
|
|
31
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
32
|
+
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
33
|
+
}
|
|
34
|
+
if (!isEmpty(values)) {
|
|
35
|
+
h2(sb, toc, "values", "Values");
|
|
36
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
37
|
+
const enumerator_1 = getEnumerator(values);
|
|
38
|
+
try {
|
|
39
|
+
while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
|
|
40
|
+
const v = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
41
|
+
tocH3(toc, v.Name, v.Name);
|
|
42
|
+
renderValueEntry(sb, v);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
disposeSafe(enumerator_1);
|
|
47
|
+
}
|
|
48
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
49
|
+
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
16
53
|
export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
|
|
17
54
|
if (!isEmpty(modules)) {
|
|
18
55
|
h2(sb, toc, "declared-modules", "Declared Modules");
|
|
@@ -38,16 +75,15 @@ export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
|
|
|
38
75
|
}
|
|
39
76
|
}
|
|
40
77
|
|
|
41
|
-
export function renderEntityPage(htmlLinkGen, entity, parentModule) {
|
|
78
|
+
export function renderEntityPage(htmlLinkGen, entity, parentModule, companionModule) {
|
|
42
79
|
const sb = StringBuilder_$ctor();
|
|
43
80
|
const toc = [];
|
|
44
81
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<p><strong>Namespace:</strong> ", ...htmlLinkGen(parentModule.Namespace, parentModule.Namespace)) + concat(" <strong>Parent:</strong> ", htmlLinkGen(parentModule.FullName, parentModule.FullName), ..."</p>"));
|
|
45
82
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
46
83
|
renderObsoleteBanner(sb, Entity__get_ObsoleteInfo(entity));
|
|
47
84
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"not-content\">");
|
|
48
|
-
|
|
49
|
-
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(Entity__get_Declaration(entity)));
|
|
50
|
-
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
85
|
+
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\">");
|
|
86
|
+
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, inlineSignatureHtml(FSharp_Oracle_Schema_TextNode__TextNode_get_Html(Entity__get_Declaration(entity))));
|
|
51
87
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
52
88
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
53
89
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
@@ -92,6 +128,26 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
|
|
|
92
128
|
renderMemberSections(sb, toc, r.Members);
|
|
93
129
|
break;
|
|
94
130
|
}
|
|
131
|
+
case 5: {
|
|
132
|
+
const e_1 = entity.fields[0];
|
|
133
|
+
if (!isEmpty(e_1.Fields)) {
|
|
134
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
135
|
+
const enumerator_2 = getEnumerator(e_1.Fields);
|
|
136
|
+
try {
|
|
137
|
+
while (enumerator_2["System.Collections.IEnumerator.MoveNext"]()) {
|
|
138
|
+
const field_1 = enumerator_2["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
139
|
+
tocH3(toc, field_1.Name, field_1.Name);
|
|
140
|
+
renderRecordField(sb, field_1);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
disposeSafe(enumerator_2);
|
|
145
|
+
}
|
|
146
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
147
|
+
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
95
151
|
case 3: {
|
|
96
152
|
renderMemberSections(sb, toc, entity.fields[0].Members);
|
|
97
153
|
break;
|
|
@@ -101,20 +157,20 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
|
|
|
101
157
|
break;
|
|
102
158
|
}
|
|
103
159
|
case 7: {
|
|
104
|
-
const
|
|
105
|
-
if (!isEmpty(
|
|
160
|
+
const e_4 = entity.fields[0];
|
|
161
|
+
if (!isEmpty(e_4.Fields)) {
|
|
106
162
|
h2(sb, toc, "fields", "Fields");
|
|
107
163
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
108
|
-
const
|
|
164
|
+
const enumerator_3 = getEnumerator(e_4.Fields);
|
|
109
165
|
try {
|
|
110
|
-
while (
|
|
111
|
-
const
|
|
112
|
-
tocH3(toc,
|
|
113
|
-
renderRecordField(sb,
|
|
166
|
+
while (enumerator_3["System.Collections.IEnumerator.MoveNext"]()) {
|
|
167
|
+
const field_2 = enumerator_3["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
168
|
+
tocH3(toc, field_2.Name, field_2.Name);
|
|
169
|
+
renderRecordField(sb, field_2);
|
|
114
170
|
}
|
|
115
171
|
}
|
|
116
172
|
finally {
|
|
117
|
-
disposeSafe(
|
|
173
|
+
disposeSafe(enumerator_3);
|
|
118
174
|
}
|
|
119
175
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
120
176
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
@@ -124,6 +180,12 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
|
|
|
124
180
|
default:
|
|
125
181
|
undefined;
|
|
126
182
|
}
|
|
183
|
+
if (companionModule == null) {
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
const cm = companionModule;
|
|
187
|
+
renderFunctionsAndValues(sb, toc, cm.Functions, cm.Values);
|
|
188
|
+
}
|
|
127
189
|
return new RenderedPage(Entity__get_Name(entity), toString(sb), toList(toc));
|
|
128
190
|
}
|
|
129
191
|
|
|
@@ -200,40 +262,7 @@ export function renderModulePage(htmlLinkGen, m, subModules) {
|
|
|
200
262
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
|
|
201
263
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
202
264
|
}
|
|
203
|
-
|
|
204
|
-
h2(sb, toc, "functions", "Functions");
|
|
205
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
206
|
-
const enumerator_1 = getEnumerator(m.Functions);
|
|
207
|
-
try {
|
|
208
|
-
while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
|
|
209
|
-
const f = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
210
|
-
tocH3(toc, f.Name, f.Name);
|
|
211
|
-
renderFunctionEntry(sb, f);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
finally {
|
|
215
|
-
disposeSafe(enumerator_1);
|
|
216
|
-
}
|
|
217
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
218
|
-
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
219
|
-
}
|
|
220
|
-
if (!isEmpty(m.Values)) {
|
|
221
|
-
h2(sb, toc, "values", "Values");
|
|
222
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
|
|
223
|
-
const enumerator_2 = getEnumerator(m.Values);
|
|
224
|
-
try {
|
|
225
|
-
while (enumerator_2["System.Collections.IEnumerator.MoveNext"]()) {
|
|
226
|
-
const v = enumerator_2["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
227
|
-
tocH3(toc, v.Name, v.Name);
|
|
228
|
-
renderValueEntry(sb, v);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
finally {
|
|
232
|
-
disposeSafe(enumerator_2);
|
|
233
|
-
}
|
|
234
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
235
|
-
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
236
|
-
}
|
|
265
|
+
renderFunctionsAndValues(sb, toc, m.Functions, m.Values);
|
|
237
266
|
return new RenderedPage(m.FullName, toString(sb), toList(toc));
|
|
238
267
|
}
|
|
239
268
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
import { concat, replace } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
2
|
+
import { concat, substring, replace } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
|
|
3
|
+
import { StringBuilder__Append_244C7CD6, StringBuilder__Append_Z721C83C5, StringBuilder_$ctor_Z524259A4 } from "../fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js";
|
|
4
|
+
import { toString } from "../fable_modules/fable-library-js.5.0.0-rc.7/Types.js";
|
|
3
5
|
import { replace as replace_1 } from "../fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js";
|
|
4
6
|
import { TocEntry } from "./Types.js";
|
|
5
7
|
import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
|
|
@@ -15,12 +17,53 @@ export function escapeMdxText(text) {
|
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
/**
|
|
18
|
-
* Escape
|
|
19
|
-
*
|
|
20
|
-
*
|
|
20
|
+
* Escape MDX-hostile characters in Markdown text while leaving code spans
|
|
21
|
+
* (`` `inline` `` and ``` ```fenced``` ```) untouched. MDX never parses `{`
|
|
22
|
+
* or `<` as JSX inside code, and HTML entities render verbatim there, so
|
|
23
|
+
* escaping code content would turn `` `Var<'T>` `` into a literal
|
|
24
|
+
* `Var<'T>`. Only the prose between code spans needs escaping.
|
|
25
|
+
*/
|
|
26
|
+
export function escapeMdxMarkdown(text) {
|
|
27
|
+
const sb = StringBuilder_$ctor_Z524259A4(text.length);
|
|
28
|
+
const n = text.length | 0;
|
|
29
|
+
let i = 0;
|
|
30
|
+
while (i < n) {
|
|
31
|
+
let matchValue;
|
|
32
|
+
if (((((i + 2) < n) && (text[i] === "`")) && (text[i + 1] === "`")) && (text[i + 2] === "`")) {
|
|
33
|
+
const close = text.indexOf("```", i + 3) | 0;
|
|
34
|
+
const endIdx = ((close < 0) ? n : (close + 3)) | 0;
|
|
35
|
+
StringBuilder__Append_Z721C83C5(sb, substring(text, i, endIdx - i));
|
|
36
|
+
i = (endIdx | 0);
|
|
37
|
+
}
|
|
38
|
+
else if (text[i] === "`") {
|
|
39
|
+
const close_1 = text.indexOf("`", i + 1) | 0;
|
|
40
|
+
const endIdx_1 = ((close_1 < 0) ? n : (close_1 + 1)) | 0;
|
|
41
|
+
StringBuilder__Append_Z721C83C5(sb, substring(text, i, endIdx_1 - i));
|
|
42
|
+
i = (endIdx_1 | 0);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
(matchValue = text[i], (matchValue === "&") ? StringBuilder__Append_Z721C83C5(sb, "&") : ((matchValue === "<") ? StringBuilder__Append_Z721C83C5(sb, "<") : ((matchValue === ">") ? StringBuilder__Append_Z721C83C5(sb, ">") : ((matchValue === "{") ? StringBuilder__Append_Z721C83C5(sb, "{") : ((matchValue === "}") ? StringBuilder__Append_Z721C83C5(sb, "}") : StringBuilder__Append_244C7CD6(sb, matchValue))))));
|
|
46
|
+
i = ((i + 1) | 0);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return toString(sb);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Collapse whitespace runs before escaping, so a blank line can't be read as
|
|
54
|
+
* a paragraph break that closes an inline element like `<dd>` early.
|
|
55
|
+
* Markdown code spans are preserved (see `escapeMdxMarkdown`).
|
|
21
56
|
*/
|
|
22
57
|
export function escapeMdxInline(text) {
|
|
23
|
-
return
|
|
58
|
+
return escapeMdxMarkdown(replace_1(text, "\\s+", " ").trim());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* MDX reflows multi-line raw HTML as a markdown paragraph, collapsing layout.
|
|
63
|
+
* Convert newlines to <br/> so the signature block renders verbatim.
|
|
64
|
+
*/
|
|
65
|
+
export function inlineSignatureHtml(html) {
|
|
66
|
+
return replace(html, "\n", "<br/>");
|
|
24
67
|
}
|
|
25
68
|
|
|
26
69
|
export function h2(sb, toc, slug, text) {
|
|
@@ -37,7 +80,7 @@ export function renderDocEntry(sb, name, signatureHtml, obsoleteInfo, renderDocu
|
|
|
37
80
|
const patternInput = (obsoleteInfo.tag === 1) ? [" obsolete", ""] : ((obsoleteInfo.tag === 2) ? [" obsolete", concat(" obsoleteMessage=\"", replace(obsoleteInfo.fields[0], "\"", """), ..."\"")] : ["", ""]);
|
|
38
81
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<DocEntry name="${name}"${patternInput[0]}${patternInput[1]}>`);
|
|
39
82
|
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\" slot=\"signature\">");
|
|
40
|
-
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, signatureHtml);
|
|
83
|
+
System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, inlineSignatureHtml(signatureHtml));
|
|
41
84
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
|
|
42
85
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
43
86
|
renderDocumentation();
|
|
@@ -78,7 +121,7 @@ export function renderExamples(sb, examples) {
|
|
|
78
121
|
if (isEmpty(tail(examples))) {
|
|
79
122
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Example</strong>");
|
|
80
123
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
81
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
124
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(head(examples)));
|
|
82
125
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
83
126
|
}
|
|
84
127
|
else {
|
|
@@ -88,7 +131,7 @@ export function renderExamples(sb, examples) {
|
|
|
88
131
|
const forLoopVar = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
89
132
|
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<strong>Example ${forLoopVar[0] + 1}</strong>`);
|
|
90
133
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
91
|
-
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb,
|
|
134
|
+
System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxMarkdown(forLoopVar[1]));
|
|
92
135
|
System_Text_StringBuilder__StringBuilder_NewLine(sb);
|
|
93
136
|
}
|
|
94
137
|
}
|
package/dist/Render.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { renderRootIndexPage as renderRootIndexPage_1, renderModulePage as renderModulePage_1, renderNamespacePage as renderNamespacePage_1, renderEntityPage as renderEntityPage_1 } from "./Render/Pages.js";
|
|
3
3
|
import { uncurry2 } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
|
|
4
4
|
|
|
5
|
-
export const renderEntityPage = (htmlLinkGen) => ((entity) => ((parentModule) => renderEntityPage_1(uncurry2(htmlLinkGen), entity, parentModule)));
|
|
5
|
+
export const renderEntityPage = (htmlLinkGen) => ((entity) => ((parentModule) => ((companionModule) => renderEntityPage_1(uncurry2(htmlLinkGen), entity, parentModule, companionModule))));
|
|
6
6
|
|
|
7
7
|
export const renderNamespacePage = (htmlLinkGen) => ((ns) => ((subNamespaces) => ((entities) => ((modules) => renderNamespacePage_1(uncurry2(htmlLinkGen), ns, subNamespaces, entities, modules)))));
|
|
8
8
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "starlight-fsharp-oracle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/Plugin.js",
|
|
@@ -21,17 +21,18 @@
|
|
|
21
21
|
"Directory.Build.props",
|
|
22
22
|
"Directory.Packages.props"
|
|
23
23
|
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"postinstall": "dotnet publish packages/FSharp.Oracle/FSharp.Oracle.fsproj -c Release --nologo -o oracle-bin",
|
|
26
|
+
"prepack": "dotnet fable packages/Starlight.FSharp.Oracle/ --outDir dist --noCache && rm dist/fable_modules/.gitignore"
|
|
27
|
+
},
|
|
24
28
|
"peerDependencies": {
|
|
25
29
|
"@astrojs/starlight": ">= 0.38.0",
|
|
26
30
|
"astro-expressive-code": ">= 0.38.0"
|
|
27
31
|
},
|
|
28
32
|
"devDependencies": {
|
|
29
33
|
"@hideoo/tsconfig": "^2.0.3",
|
|
30
|
-
"@types/node": "^
|
|
31
|
-
"astro-expressive-code": "^0.
|
|
32
|
-
"typescript": "^
|
|
33
|
-
},
|
|
34
|
-
"scripts": {
|
|
35
|
-
"postinstall": "dotnet publish packages/FSharp.Oracle/FSharp.Oracle.fsproj -c Release --nologo -o oracle-bin"
|
|
34
|
+
"@types/node": "^26.1.1",
|
|
35
|
+
"astro-expressive-code": "^0.44.1",
|
|
36
|
+
"typescript": "^7.0.2"
|
|
36
37
|
}
|
|
37
|
-
}
|
|
38
|
+
}
|
|
@@ -18,6 +18,7 @@ open FSharp.Oracle.ModuleExtractor
|
|
|
18
18
|
let extractAssembly
|
|
19
19
|
(checker: FSharpChecker)
|
|
20
20
|
(allDllPaths: string array)
|
|
21
|
+
(basePath: string)
|
|
21
22
|
(outputBase: string)
|
|
22
23
|
(dllPath: string)
|
|
23
24
|
: Assembly
|
|
@@ -27,7 +28,11 @@ let extractAssembly
|
|
|
27
28
|
// Strip F# generic arity suffix (e.g. Tree`1 -> tree)
|
|
28
29
|
System.Text.RegularExpressions.Regex.Replace(sanitized, @"`\d+$", "")
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
// Astro's site `base` (e.g. "/my-repo") must prefix in-content links; a bare
|
|
32
|
+
// "/" or empty base normalizes to no prefix.
|
|
33
|
+
let normalizedBase = basePath.TrimEnd('/')
|
|
34
|
+
|
|
35
|
+
let toUrl (fullName: string) = $"{normalizedBase}/{outputBase}/{toSlug fullName}"
|
|
31
36
|
|
|
32
37
|
let baseOptions, _ =
|
|
33
38
|
checker.GetProjectOptionsFromScript(
|
|
@@ -502,19 +502,50 @@ module internal EntityExtractor =
|
|
|
502
502
|
}
|
|
503
503
|
|
|
504
504
|
elif entity.IsEnum then
|
|
505
|
-
|
|
505
|
+
// Enums carry a synthetic `value__` instance field (the underlying
|
|
506
|
+
// storage). Keep only the named literal members (the actual cases).
|
|
507
|
+
let enumValueNodes (f: FSharpField) =
|
|
508
|
+
match f.LiteralValue with
|
|
509
|
+
| Some value ->
|
|
510
|
+
[
|
|
511
|
+
TextNode.Space
|
|
512
|
+
TextNode.Equal
|
|
513
|
+
TextNode.Space
|
|
514
|
+
TextNode.Text(string value)
|
|
515
|
+
]
|
|
516
|
+
| None -> []
|
|
517
|
+
|
|
518
|
+
let fields =
|
|
519
|
+
entity.FSharpFields
|
|
520
|
+
|> Seq.filter (fun f -> f.Name <> "value__")
|
|
521
|
+
|> Seq.map (fun f ->
|
|
522
|
+
let baseField = extractField toUrl docs f
|
|
523
|
+
|
|
524
|
+
// Render each case as `Name = value` rather than the useless
|
|
525
|
+
// `Name : underlyingType` the generic field extractor produces.
|
|
526
|
+
// The case name is styled as a property (blue), like record fields.
|
|
527
|
+
{ baseField with
|
|
528
|
+
Declaration =
|
|
529
|
+
TextNode.Node(
|
|
530
|
+
TextNode.AnchoredProperty(f.Name, $"#{f.Name}") :: enumValueNodes f
|
|
531
|
+
)
|
|
532
|
+
}
|
|
533
|
+
)
|
|
534
|
+
|> Seq.toList
|
|
506
535
|
|
|
507
536
|
let caseNodes =
|
|
508
|
-
fields
|
|
509
|
-
|>
|
|
537
|
+
Seq.zip (entity.FSharpFields |> Seq.filter (fun f -> f.Name <> "value__")) fields
|
|
538
|
+
|> Seq.collect (fun (fcsField, f) ->
|
|
510
539
|
[
|
|
511
540
|
TextNode.NewLine
|
|
512
541
|
TextNode.Spaces 4
|
|
513
542
|
TextNode.Keyword "|"
|
|
514
543
|
TextNode.Space
|
|
515
|
-
TextNode.
|
|
544
|
+
TextNode.AnchoredProperty(f.Name, $"#{f.Name}")
|
|
545
|
+
yield! enumValueNodes fcsField
|
|
516
546
|
]
|
|
517
547
|
)
|
|
548
|
+
|> Seq.toList
|
|
518
549
|
|
|
519
550
|
let declaration =
|
|
520
551
|
TextNode.Node
|
|
@@ -9,13 +9,14 @@ open Thoth.Json.Core.Auto
|
|
|
9
9
|
|
|
10
10
|
[<EntryPoint>]
|
|
11
11
|
let main argv =
|
|
12
|
-
let rec parseArgs outputBase dlls =
|
|
12
|
+
let rec parseArgs outputBase basePath dlls =
|
|
13
13
|
function
|
|
14
|
-
| "--output-base" :: value :: rest -> parseArgs value dlls rest
|
|
15
|
-
|
|
|
16
|
-
|
|
|
14
|
+
| "--output-base" :: value :: rest -> parseArgs value basePath dlls rest
|
|
15
|
+
| "--base" :: value :: rest -> parseArgs outputBase value dlls rest
|
|
16
|
+
| path :: rest -> parseArgs outputBase basePath (path :: dlls) rest
|
|
17
|
+
| [] -> outputBase, basePath, List.rev dlls |> List.toArray
|
|
17
18
|
|
|
18
|
-
let outputBase, dllPaths = parseArgs "api" [] (argv |> Array.toList)
|
|
19
|
+
let outputBase, basePath, dllPaths = parseArgs "api" "" [] (argv |> Array.toList)
|
|
19
20
|
|
|
20
21
|
match dllPaths with
|
|
21
22
|
| [||] ->
|
|
@@ -48,7 +49,7 @@ let main argv =
|
|
|
48
49
|
|
|
49
50
|
let assemblies =
|
|
50
51
|
dllPaths
|
|
51
|
-
|> Array.map (extractAssembly checker allDllPaths outputBase)
|
|
52
|
+
|> Array.map (extractAssembly checker allDllPaths basePath outputBase)
|
|
52
53
|
|> Array.toList
|
|
53
54
|
|
|
54
55
|
let root =
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// <auto-generated>
|
|
2
|
-
// Generated by the FSharp WriteCodeFragment class.
|
|
3
|
-
// </auto-generated>
|
|
4
|
-
namespace FSharp
|
|
5
|
-
|
|
6
|
-
open System
|
|
7
|
-
open System.Reflection
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[<assembly: System.Reflection.AssemblyCompanyAttribute("Maxime Mangel")>]
|
|
11
|
-
[<assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")>]
|
|
12
|
-
[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
|
|
13
|
-
[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f31138d32fcf52eeae38e3ddc3a7f7d85a4b2282")>]
|
|
14
|
-
[<assembly: System.Reflection.AssemblyProductAttribute("Oracle")>]
|
|
15
|
-
[<assembly: System.Reflection.AssemblyTitleAttribute("Oracle")>]
|
|
16
|
-
[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
|
|
17
|
-
do()
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// <auto-generated>
|
|
2
|
-
// Generated by the FSharp WriteCodeFragment class.
|
|
3
|
-
// </auto-generated>
|
|
4
|
-
namespace FSharp
|
|
5
|
-
|
|
6
|
-
open System
|
|
7
|
-
open System.Reflection
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[<assembly: System.Reflection.AssemblyCompanyAttribute("Maxime Mangel")>]
|
|
11
|
-
[<assembly: System.Reflection.AssemblyConfigurationAttribute("Release")>]
|
|
12
|
-
[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
|
|
13
|
-
[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1b716c695b7f73a88a6ebd13af6637880f9c0325")>]
|
|
14
|
-
[<assembly: System.Reflection.AssemblyProductAttribute("Oracle")>]
|
|
15
|
-
[<assembly: System.Reflection.AssemblyTitleAttribute("Oracle")>]
|
|
16
|
-
[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
|
|
17
|
-
do()
|
package/packages/FSharp.Oracle.Schema/obj/Debug/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// <auto-generated>
|
|
2
|
-
// Generated by the FSharp WriteCodeFragment class.
|
|
3
|
-
// </auto-generated>
|
|
4
|
-
namespace FSharp
|
|
5
|
-
|
|
6
|
-
open System
|
|
7
|
-
open System.Reflection
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[<assembly: System.Reflection.AssemblyCompanyAttribute("Maxime Mangel")>]
|
|
11
|
-
[<assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")>]
|
|
12
|
-
[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
|
|
13
|
-
[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f31138d32fcf52eeae38e3ddc3a7f7d85a4b2282")>]
|
|
14
|
-
[<assembly: System.Reflection.AssemblyProductAttribute("FSharp.Oracle.Schema")>]
|
|
15
|
-
[<assembly: System.Reflection.AssemblyTitleAttribute("FSharp.Oracle.Schema")>]
|
|
16
|
-
[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
|
|
17
|
-
do()
|
package/packages/FSharp.Oracle.Schema/obj/Release/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// <auto-generated>
|
|
2
|
-
// Generated by the FSharp WriteCodeFragment class.
|
|
3
|
-
// </auto-generated>
|
|
4
|
-
namespace FSharp
|
|
5
|
-
|
|
6
|
-
open System
|
|
7
|
-
open System.Reflection
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[<assembly: System.Reflection.AssemblyCompanyAttribute("Maxime Mangel")>]
|
|
11
|
-
[<assembly: System.Reflection.AssemblyConfigurationAttribute("Release")>]
|
|
12
|
-
[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
|
|
13
|
-
[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+004b2222784b8ccac32bf46e91832b4f92d55505")>]
|
|
14
|
-
[<assembly: System.Reflection.AssemblyProductAttribute("FSharp.Oracle.Schema")>]
|
|
15
|
-
[<assembly: System.Reflection.AssemblyTitleAttribute("FSharp.Oracle.Schema")>]
|
|
16
|
-
[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
|
|
17
|
-
do()
|