UNPKG

roblox-ts

Version:

A TypeScript-to-Luau Compiler for Roblox

72 lines (71 loc) 4.2 kB
import luau from "@roblox-ts/luau-ast"; import { PathTranslator } from "@roblox-ts/path-translator"; import { RbxPath, RojoResolver } from "@roblox-ts/rojo-resolver"; import { ProjectType } from "../../Shared/constants"; import { ProjectData } from "../../Shared/types"; import { MultiTransformState } from ".."; import { TransformServices, TryUses } from "../types"; import ts from "typescript"; export declare class TransformState { readonly program: ts.Program; readonly data: ProjectData; readonly services: TransformServices; readonly pathTranslator: PathTranslator; readonly multiTransformState: MultiTransformState; readonly compilerOptions: ts.CompilerOptions; readonly rojoResolver: RojoResolver; readonly pkgRojoResolvers: Array<RojoResolver>; readonly nodeModulesPathMapping: Map<string, string>; readonly runtimeLibRbxPath: RbxPath | undefined; readonly typeChecker: ts.TypeChecker; readonly projectType: ProjectType; private readonly sourceFileText; hasExportEquals: boolean; hasExportFrom: boolean; classIdentifierMap: Map<ts.ClassLikeDeclaration, luau.AnyIdentifier>; debugRender(node: luau.Node): string; debugRenderList(list: luau.List<luau.Statement>): string; readonly resolver: ts.EmitResolver; private isInReplicatedFirst; constructor(program: ts.Program, data: ProjectData, services: TransformServices, pathTranslator: PathTranslator, multiTransformState: MultiTransformState, compilerOptions: ts.CompilerOptions, rojoResolver: RojoResolver, pkgRojoResolvers: Array<RojoResolver>, nodeModulesPathMapping: Map<string, string>, runtimeLibRbxPath: RbxPath | undefined, typeChecker: ts.TypeChecker, projectType: ProjectType, sourceFile: ts.SourceFile); readonly tryUsesStack: TryUses[]; pushTryUsesStack(): { usesReturn: boolean; usesBreak: boolean; usesContinue: boolean; }; markTryUses(property: keyof TryUses): void; popTryUsesStack(): void; readonly prereqStatementsStack: luau.List<luau.Statement<luau.SyntaxKind>>[]; prereq(statement: luau.Statement): void; prereqList(statements: luau.List<luau.Statement>): void; pushPrereqStatementsStack(): luau.List<luau.Statement<luau.SyntaxKind>>; popPrereqStatementsStack(): luau.List<luau.Statement<luau.SyntaxKind>>; getLeadingComments(node: ts.Node): luau.List<luau.Comment>; capturePrereqs(callback: () => void): luau.List<luau.Statement<luau.SyntaxKind>>; capture<T>(callback: () => T): [value: T, prereqs: luau.List<luau.Statement>]; noPrereqs(callback: () => luau.Expression): luau.Expression<luau.SyntaxKind>; readonly hoistsByStatement: Map<ts.Statement | ts.CaseClause, ts.Identifier[]>; readonly isHoisted: Map<ts.Symbol, boolean>; private getTypeCache; getType(node: ts.Node): ts.Type; usesRuntimeLib: boolean; TS(node: ts.Node, name: string): luau.PropertyAccessExpression; createRuntimeLibImport(sourceFile: ts.SourceFile): luau.VariableDeclaration; pushToVar(expression: luau.Expression | undefined, name?: string): luau.TemporaryIdentifier; pushToVarIfComplex<T extends luau.Expression>(expression: T, name?: string): Extract<T, luau.SimpleTypes> | luau.TemporaryIdentifier; pushToVarIfNonId<T extends luau.Expression>(expression: T, name?: string): luau.AnyIdentifier; getModuleExports(moduleSymbol: ts.Symbol): ts.Symbol[]; getModuleExportsAliasMap(moduleSymbol: ts.Symbol): Map<ts.Symbol, string>; private getModuleSymbolFromNode; private readonly moduleIdBySymbol; private getModuleIdFromSymbol; setModuleIdBySymbol(moduleSymbol: ts.Symbol, moduleId: luau.AnyIdentifier): void; getModuleIdFromNode(node: ts.Node): luau.AnyIdentifier; getModuleIdPropertyAccess(idSymbol: ts.Symbol): luau.PropertyAccessExpression | undefined; guessVirtualPath(fsPath: string): string | undefined; symbolToIdMap: Map<ts.Symbol, luau.TemporaryIdentifier>; private classElementToObjectKeyMap; setClassElementObjectKey(classElement: ts.ClassElement, identifier: luau.SimpleTypes): void; getClassElementObjectKey(classElement: ts.ClassElement): luau.SimpleTypes | undefined; }