Comparing version 0.10.2 to 0.11.0
@@ -25,2 +25,4 @@ "use strict"; | ||
generate(name, node) { | ||
if (!this.canGenerate(node)) | ||
return undefined; | ||
const generator = this.isStringEnum(node) ? this.strings : this.ordinals; | ||
@@ -27,0 +29,0 @@ return generator.generate(name, node); |
@@ -11,2 +11,3 @@ "use strict"; | ||
const TaggedUnionGenerator_1 = require("./TaggedUnionGenerator"); | ||
const UtilityGenerator_1 = require("./UtilityGenerator"); | ||
class KlassGenerator { | ||
@@ -17,2 +18,3 @@ constructor(martok) { | ||
this.tagged = new TaggedUnionGenerator_1.TaggedUnionGenerator(this.martok); | ||
this.utility = new UtilityGenerator_1.UtilityGenerator(this.martok); | ||
this.checker = this.martok.program.getTypeChecker(); | ||
@@ -48,9 +50,12 @@ } | ||
return asTagged; | ||
if (this.enums.canGenerate(node)) { | ||
return this.enums.generate(name, node); | ||
} | ||
const asEnum = this.enums.generate(name, node); | ||
if (asEnum) | ||
return asEnum; | ||
if ((0, typescript_1.isTypeAliasDeclaration)(node)) { | ||
if (this.enums.canGenerate(node.type)) { | ||
return this.enums.generate(name, node.type); | ||
} | ||
const typeAsEnum = this.enums.generate(name, node.type); | ||
if (typeAsEnum) | ||
return typeAsEnum; | ||
const asUtility = this.utility.generate(name, node.type); | ||
if (asUtility) | ||
return asUtility; | ||
const alias = this.generateTypeAlias(node); | ||
@@ -57,0 +62,0 @@ if (alias) |
{ | ||
"name": "martok", | ||
"version": "0.10.2", | ||
"version": "0.11.0", | ||
"description": "", | ||
@@ -10,13 +10,3 @@ "main": "dist/index.js", | ||
"test": "jest", | ||
"anonymous": "ts-node src/index.ts tests/comparisons/single/anonymous.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"enums": "ts-node src/index.ts tests/comparisons/single/enums.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"enumSpacing": "ts-node src/index.ts tests/comparisons/single/enumSpacing.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"simpleUnion": "ts-node src/index.ts tests/comparisons/single/simpleUnion.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"types": "ts-node src/index.ts tests/comparisons/single/types.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"tagged": "ts-node src/index.ts tests/comparisons/single/tagged.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"tagged2": "ts-node src/index.ts tests/comparisons/single/tagged2.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"tagged3": "ts-node src/index.ts tests/comparisons/single/tagged3.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"literal": "ts-node src/index.ts tests/comparisons/single/stringLiteral.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"faceoff": "ts-node src/index.ts ../../volley/faceoff-backend/src/types/core -o ./schema/faceoff --package net.sarazan.martok --datePattern standard", | ||
"faceoff2": "ts-node src/index.ts types/faceoff -o ./schema/faceoff --package net.sarazan.martok --datePattern standard", | ||
"special": "ts-node src/index.ts tests/comparisons/single/utilityTypes.d.ts -o ./schema/martok --package net.sarazan.martok --datePattern standard", | ||
"lint": "eslint . --ext .ts" | ||
@@ -23,0 +13,0 @@ }, |
@@ -24,3 +24,3 @@ import { Martok } from "../Martok"; | ||
public canGenerate(type: Node): type is UnionTypeNode | EnumDeclaration { | ||
private canGenerate(type: Node): type is UnionTypeNode | EnumDeclaration { | ||
if (isUnionTypeNode(type)) { | ||
@@ -35,3 +35,4 @@ return all(type.types, (value) => { | ||
public generate(name: string, node: UnionTypeNode | EnumDeclaration): Klass { | ||
public generate(name: string, node: Node): Klass | undefined { | ||
if (!this.canGenerate(node)) return undefined; | ||
const generator = this.isStringEnum(node) ? this.strings : this.ordinals; | ||
@@ -38,0 +39,0 @@ return generator.generate(name, node); |
@@ -30,2 +30,3 @@ import { Martok } from "../Martok"; | ||
import { TaggedUnionGenerator } from "./TaggedUnionGenerator"; | ||
import { UtilityGenerator } from "./UtilityGenerator"; | ||
@@ -47,2 +48,3 @@ export type SupportedDeclaration = | ||
public readonly tagged = new TaggedUnionGenerator(this.martok); | ||
public readonly utility = new UtilityGenerator(this.martok); | ||
@@ -88,10 +90,12 @@ private readonly checker = this.martok.program.getTypeChecker(); | ||
if (this.enums.canGenerate(node)) { | ||
return this.enums.generate(name, node); | ||
} | ||
const asEnum = this.enums.generate(name, node); | ||
if (asEnum) return asEnum; | ||
if (isTypeAliasDeclaration(node)) { | ||
if (this.enums.canGenerate(node.type)) { | ||
return this.enums.generate(name, node.type); | ||
} | ||
const typeAsEnum = this.enums.generate(name, node.type); | ||
if (typeAsEnum) return typeAsEnum; | ||
const asUtility = this.utility.generate(name, node.type); | ||
if (asUtility) return asUtility; | ||
const alias = this.generateTypeAlias(node); | ||
@@ -98,0 +102,0 @@ if (alias) return alias; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
204446
134
3629