Skip to content

Commit 35b2e3d

Browse files
committed
feat: support export assignment of typeLiteral
[converter] Fix #77
1 parent f4e50e2 commit 35b2e3d

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

src/Glutinum.Converter/Reader/Node.fs

+10
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ let readNode (reader: ITypeScriptReader) (node: Ts.Node) : GlueType =
3535
// Should be handled in the future
3636
GlueType.Discard
3737

38+
| Ts.SyntaxKind.TypeLiteral ->
39+
let typeLiteralNode = node :?> Ts.TypeLiteralNode
40+
41+
let members =
42+
typeLiteralNode.members
43+
|> Seq.toList
44+
|> List.map reader.ReadDeclaration
45+
46+
({ Members = members }: GlueTypeLiteral) |> GlueType.TypeLiteral
47+
3848
| unsupported ->
3949
let warning =
4050
Utils.generateReaderError
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
declare const supportsColor: {
2+
stdout: ColorInfo;
3+
stderr: ColorInfo;
4+
};
5+
6+
type ColorInfo = string;
7+
8+
export default supportsColor;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
module rec Glutinum
2+
3+
open Fable.Core
4+
open Fable.Core.JsInterop
5+
open System
6+
7+
[<Erase>]
8+
type Exports =
9+
[<ImportAll("module")>]
10+
static member inline supportsColor: Exports.supportsColor = nativeOnly
11+
12+
13+
type ColorInfo =
14+
string
15+
16+
module Exports =
17+
18+
[<Global>]
19+
[<AllowNullLiteral>]
20+
type supportsColor
21+
[<ParamObject; Emit("$0")>]
22+
(
23+
stdout: ColorInfo,
24+
stderr: ColorInfo
25+
) =
26+
27+
member val stdout : ColorInfo = nativeOnly with get, set
28+
member val stderr : ColorInfo = nativeOnly with get, set
29+
30+
(***)
31+
#r "nuget: Fable.Core"
32+
(***)

0 commit comments

Comments
 (0)