roblox-ts
Version:
<div align="center"><img width=25% src="https://i.imgur.com/yCjHmng.png"></div> <h1 align="center"><a href="https://roblox-ts.github.io/">roblox-ts</a></h1> <div align="center">A TypeScript-to-Lua Compiler for Roblox</div> <br> <div align="center"> <a hr
52 lines (51 loc) • 3.84 kB
TypeScript
import * as ts from "ts-morph";
import { CompilerDirective } from "./compiler";
import { PrecedingStatementContext } from "./CompilerState";
export declare const RBX_SERVICES: Array<string>;
export declare function isRbxService(name: string): boolean;
export declare function isTypeStatement(node: ts.Node): boolean;
export declare function isType(node: ts.Node): boolean;
export declare function isUsedAsType(node: ts.Identifier): boolean;
export declare function inheritsFrom(type: ts.Type, className: string): boolean;
export declare function isTypeOnlyNamespace(node: ts.NamespaceDeclaration): boolean;
export declare function typeConstraint(type: ts.Type, cb: (type: ts.Type) => boolean): boolean;
export declare function laxTypeConstraint(type: ts.Type, cb: (type: ts.Type) => boolean): boolean;
export declare function strictTypeConstraint(type: ts.Type, cb: (type: ts.Type) => boolean): boolean;
export declare function isAnyType(type: ts.Type): boolean;
export declare function isNullableType(type: ts.Type): boolean;
export declare function isBooleanType(type: ts.Type): boolean;
export declare function isNumberType(type: ts.Type): boolean;
export declare function isNumberTypeStrict(type: ts.Type): boolean;
export declare function isStringType(type: ts.Type): boolean;
export declare function isObjectType(type: ts.Type): boolean;
export declare function isEnumType(type: ts.Type): boolean;
export declare function isIterableIterator(type: ts.Type, node: ts.Node): boolean;
export declare function isIterableFunction(type: ts.Type): boolean;
export declare function getCompilerDirectiveWithConstraint(type: ts.Type, directive: CompilerDirective, orCallback?: (t: ts.Type<ts.ts.Type>) => boolean): boolean;
export declare function getCompilerDirectiveWithStrictConstraint(type: ts.Type, directive: CompilerDirective, orCallback?: (t: ts.Type<ts.ts.Type>) => boolean): boolean;
export declare function getCompilerDirectiveWithLaxConstraint(type: ts.Type, directive: CompilerDirective, orCallback?: (t: ts.Type<ts.ts.Type>) => boolean): boolean;
export declare function superExpressionClassInheritsFromSetOrMap(node: ts.Expression): boolean;
export declare function superExpressionClassInheritsFromArray(node: ts.Expression, recursive?: boolean): boolean;
export declare function classDeclarationInheritsFromArray(classExp: ts.ClassDeclaration | ts.ClassExpression, recursive?: boolean): boolean;
export declare function isArrayTypeLax(type: ts.Type): boolean;
export declare function isStringMethodType(type: ts.Type): boolean;
export declare function isArrayType(type: ts.Type): boolean;
export declare function isMapType(type: ts.Type): boolean;
export declare function isSetType(type: ts.Type): boolean;
export declare function isMethodType(type: ts.Type): boolean;
export declare function isArrayMethodType(type: ts.Type): boolean;
export declare function isMapMethodType(type: ts.Type): boolean;
export declare function isSetMethodType(type: ts.Type): boolean;
export declare function isTupleType(node: ts.TypeNode | ts.Type): boolean;
export declare function isTupleReturnType(node: ts.ReturnTypedNode): boolean;
export declare function isTupleReturnTypeCall(node: ts.CallExpression): boolean;
export declare function shouldHoist(ancestor: ts.Node, id: ts.Identifier, checkAncestor?: boolean): boolean;
export declare function shouldPushToPrecedingStatement(arg: ts.Expression, argStr: string, argContext: PrecedingStatementContext): boolean;
/** Returns whether or not the given expression is an expression containing only:
* - constants
* - numeric/string literals
* - unary/binary/ternary expressions
*/
export declare function isConstantExpression(node: ts.Expression, maxDepth?: number): boolean;
/** Calls skipNodesUpwards and returns getType() */
export declare function getType(node: ts.Node): ts.Type<ts.ts.Type>;