From afffdd85598c74aabca3777274979f4d87d17cab Mon Sep 17 00:00:00 2001 From: Umur Ozkul Date: Thu, 9 Jun 2022 15:27:51 +0200 Subject: [PATCH] typescript work in progress --- packages/squiggle-lang/src/js/index.ts | 2 ++ packages/squiggle-lang/src/js/rescript_interop.ts | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/squiggle-lang/src/js/index.ts b/packages/squiggle-lang/src/js/index.ts index 555d141b..d963b134 100644 --- a/packages/squiggle-lang/src/js/index.ts +++ b/packages/squiggle-lang/src/js/index.ts @@ -187,5 +187,7 @@ function createTsExport( return tag("lambdaDeclaration", x.value); case "EvTypeIdentifier": return tag("typeIdentifier", x.value); + case "EvModule": + return tag("module", x.value); } } diff --git a/packages/squiggle-lang/src/js/rescript_interop.ts b/packages/squiggle-lang/src/js/rescript_interop.ts index 61b011c3..4c862b96 100644 --- a/packages/squiggle-lang/src/js/rescript_interop.ts +++ b/packages/squiggle-lang/src/js/rescript_interop.ts @@ -73,7 +73,11 @@ export type rescriptExport = | { TAG: 13; // EvTypeIdentifier _0: string; - }; + } + | { + TAG: 14; // EvModule + _0: { [key: string]: rescriptExport }; + }; type rescriptDist = | { TAG: 0; _0: rescriptPointSetDist } @@ -125,7 +129,8 @@ export type squiggleExpression = | tagged<"timeDuration", number> | tagged<"lambdaDeclaration", lambdaDeclaration> | tagged<"record", { [key: string]: squiggleExpression }> - | tagged<"typeIdentifier", string>; + | tagged<"typeIdentifier", string> + | tagged<"module", { [key: string]: squiggleExpression }>; export { lambdaValue }; @@ -177,6 +182,11 @@ export function convertRawToTypescript( }); case 13: // EvSymbol return tag("typeIdentifier", result._0); + case 14: // EvModule + return tag( + "module", + _.mapValues(result._0, (x) => convertRawToTypescript(x, environment)) + ); } }