Comparing version
@@ -181,4 +181,8 @@ "use strict"; | ||
case "FixedType": { | ||
if (type_.name === "List") { | ||
return generateType(type_); | ||
if (type_.args.length > 0 && | ||
type_.args[0].kind === "FixedType" && | ||
type_.args[0].args.length > 0) { | ||
return `${type_.name} (${type_.args | ||
.map(generateTopLevelType) | ||
.join(" ")})`; | ||
} | ||
@@ -434,5 +438,5 @@ const args = type_.args.filter((type_) => type_.kind === "GenericType" || type_.kind === "FixedType"); | ||
case "FunctionArg": | ||
return generateType(arg.type); | ||
return generateTopLevelType(arg.type); | ||
case "AnonFunctionArg": | ||
return generateType(arg.type); | ||
return generateTopLevelType(arg.type); | ||
} | ||
@@ -510,7 +514,16 @@ }) | ||
function generateDerw(module) { | ||
return module.body | ||
.map(generateBlock) | ||
.filter((line) => line.length > 0) | ||
.join("\n\n"); | ||
const importBlocks = module.body.filter((block) => block.kind === "Import"); | ||
const nonImportBlocks = module.body.filter((block) => block.kind !== "Import"); | ||
return [ | ||
...importBlocks | ||
.map(generateBlock) | ||
.filter((line) => line.length > 0) | ||
.join("\n"), | ||
importBlocks.length > 0 ? "\n\n" : "", | ||
...nonImportBlocks | ||
.map(generateBlock) | ||
.filter((line) => line.length > 0) | ||
.join("\n\n"), | ||
].join(""); | ||
} | ||
exports.generateDerw = generateDerw; |
@@ -184,4 +184,8 @@ "use strict"; | ||
case "FixedType": { | ||
if (type_.name === "List") { | ||
return generateType(type_); | ||
if (type_.args.length > 0 && | ||
type_.args[0].kind === "FixedType" && | ||
type_.args[0].args.length > 0) { | ||
return `${type_.name} (${type_.args | ||
.map(generateTopLevelType) | ||
.join(" ")})`; | ||
} | ||
@@ -440,5 +444,5 @@ const args = type_.args.filter((type_) => type_.kind === "GenericType" || type_.kind === "FixedType"); | ||
case "FunctionArg": | ||
return generateType(arg.type); | ||
return generateTopLevelType(arg.type); | ||
case "AnonFunctionArg": | ||
return generateType(arg.type); | ||
return generateTopLevelType(arg.type); | ||
} | ||
@@ -445,0 +449,0 @@ }) |
{ | ||
"name": "derw", | ||
"version": "0.0.3-19", | ||
"version": "0.0.3-20", | ||
"description": "An Elm-inspired language that transpiles to TypeScript", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is too big to display
792966
0.16%22768
0.13%