diff options
Diffstat (limited to '')
| -rw-r--r-- | src/context.ts | 12 | ||||
| -rw-r--r-- | src/eval.ts | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/context.ts b/src/context.ts index 14b5115..bdae0d3 100644 --- a/src/context.ts +++ b/src/context.ts @@ -12,7 +12,11 @@ export interface CtxOptions { export const createContext = (options: CtxOptions): Ctx => { const project = new Project({ compilerOptions: { - target: ScriptTarget.ES3, + target: ScriptTarget.ESNext, + strict: true, + alwaysStrict: true, + disableSizeLimit: true, + isolatedModules: true, }, }) @@ -27,7 +31,7 @@ export const createContext = (options: CtxOptions): Ctx => { } const typeToString = (ty: Type | undefined): string => - ty ? typeChecker.compilerObject.typeToString(ty.compilerType) : '' + ty ? typeChecker.getTypeText(ty) : '' const [resultTypeNode] = sourceFile.addStatements( `type ${RESULT_TYPE_NAME} = {}` @@ -56,7 +60,9 @@ export const createContext = (options: CtxOptions): Ctx => { const getTypeValue = (ty: Type | undefined): any => { try { return JSON.parse(typeToString(ty)) - } catch(_) { return } + } catch(_) { + return null + } } const ctx: Ctx = { diff --git a/src/eval.ts b/src/eval.ts index 8c8940f..19a5557 100644 --- a/src/eval.ts +++ b/src/eval.ts @@ -23,9 +23,11 @@ export const evaluateType = async ( effTyp: Type ): Promise<string[]> => { const name = effTyp.getSymbol()?.getName() - const args = effTyp.getTypeArguments() + // console.log(ctx.typeToString(effTyp)) + // console.log(name, args.map(ctx.typeToString)) + return match(name, { DefineEffect: async () => { const [nameTyp, exprTyp] = args |
