typescript-to-lua
Version:
A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!
140 lines (139 loc) • 5.72 kB
TypeScript
import { EmitHost } from "./transpilation";
import * as lua from "./LuaAST";
import { LuaTarget } from "./CompilerOptions";
export declare enum LuaLibFeature {
ArrayAt = "ArrayAt",
ArrayConcat = "ArrayConcat",
ArrayEntries = "ArrayEntries",
ArrayEvery = "ArrayEvery",
ArrayFill = "ArrayFill",
ArrayFilter = "ArrayFilter",
ArrayForEach = "ArrayForEach",
ArrayFind = "ArrayFind",
ArrayFindIndex = "ArrayFindIndex",
ArrayFrom = "ArrayFrom",
ArrayIncludes = "ArrayIncludes",
ArrayIndexOf = "ArrayIndexOf",
ArrayIsArray = "ArrayIsArray",
ArrayJoin = "ArrayJoin",
ArrayMap = "ArrayMap",
ArrayPush = "ArrayPush",
ArrayPushArray = "ArrayPushArray",
ArrayReduce = "ArrayReduce",
ArrayReduceRight = "ArrayReduceRight",
ArrayReverse = "ArrayReverse",
ArrayUnshift = "ArrayUnshift",
ArraySort = "ArraySort",
ArraySlice = "ArraySlice",
ArraySome = "ArraySome",
ArraySplice = "ArraySplice",
ArrayToObject = "ArrayToObject",
ArrayFlat = "ArrayFlat",
ArrayFlatMap = "ArrayFlatMap",
ArraySetLength = "ArraySetLength",
ArrayToReversed = "ArrayToReversed",
ArrayToSorted = "ArrayToSorted",
ArrayToSpliced = "ArrayToSpliced",
ArrayWith = "ArrayWith",
Await = "Await",
Class = "Class",
ClassExtends = "ClassExtends",
CloneDescriptor = "CloneDescriptor",
CountVarargs = "CountVarargs",
Decorate = "Decorate",
DecorateLegacy = "DecorateLegacy",
DecorateParam = "DecorateParam",
Delete = "Delete",
DelegatedYield = "DelegatedYield",
DescriptorGet = "DescriptorGet",
DescriptorSet = "DescriptorSet",
Error = "Error",
FunctionBind = "FunctionBind",
Generator = "Generator",
InstanceOf = "InstanceOf",
InstanceOfObject = "InstanceOfObject",
Iterator = "Iterator",
LuaIteratorSpread = "LuaIteratorSpread",
Map = "Map",
MapGroupBy = "MapGroupBy",
Match = "Match",
MathAtan2 = "MathAtan2",
MathModf = "MathModf",
MathSign = "MathSign",
MathTrunc = "MathTrunc",
New = "New",
Number = "Number",
NumberIsFinite = "NumberIsFinite",
NumberIsInteger = "NumberIsInteger",
NumberIsNaN = "NumberIsNaN",
NumberParseInt = "ParseInt",
NumberParseFloat = "ParseFloat",
NumberToString = "NumberToString",
NumberToFixed = "NumberToFixed",
ObjectAssign = "ObjectAssign",
ObjectDefineProperty = "ObjectDefineProperty",
ObjectEntries = "ObjectEntries",
ObjectFromEntries = "ObjectFromEntries",
ObjectGetOwnPropertyDescriptor = "ObjectGetOwnPropertyDescriptor",
ObjectGetOwnPropertyDescriptors = "ObjectGetOwnPropertyDescriptors",
ObjectGroupBy = "ObjectGroupBy",
ObjectKeys = "ObjectKeys",
ObjectRest = "ObjectRest",
ObjectValues = "ObjectValues",
ParseFloat = "ParseFloat",
ParseInt = "ParseInt",
Promise = "Promise",
PromiseAll = "PromiseAll",
PromiseAllSettled = "PromiseAllSettled",
PromiseAny = "PromiseAny",
PromiseRace = "PromiseRace",
Set = "Set",
SetDescriptor = "SetDescriptor",
SparseArrayNew = "SparseArrayNew",
SparseArrayPush = "SparseArrayPush",
SparseArraySpread = "SparseArraySpread",
WeakMap = "WeakMap",
WeakSet = "WeakSet",
SourceMapTraceBack = "SourceMapTraceBack",
Spread = "Spread",
StringAccess = "StringAccess",
StringCharAt = "StringCharAt",
StringCharCodeAt = "StringCharCodeAt",
StringEndsWith = "StringEndsWith",
StringIncludes = "StringIncludes",
StringPadEnd = "StringPadEnd",
StringPadStart = "StringPadStart",
StringReplace = "StringReplace",
StringReplaceAll = "StringReplaceAll",
StringSlice = "StringSlice",
StringSplit = "StringSplit",
StringStartsWith = "StringStartsWith",
StringSubstr = "StringSubstr",
StringSubstring = "StringSubstring",
StringTrim = "StringTrim",
StringTrimEnd = "StringTrimEnd",
StringTrimStart = "StringTrimStart",
Symbol = "Symbol",
SymbolRegistry = "SymbolRegistry",
TypeOf = "TypeOf",
Unpack = "Unpack",
Using = "Using",
UsingAsync = "UsingAsync"
}
export interface LuaLibFeatureInfo {
dependencies?: LuaLibFeature[];
exports: string[];
}
export type LuaLibModulesInfo = Record<LuaLibFeature, LuaLibFeatureInfo>;
export declare function resolveLuaLibDir(luaTarget: LuaTarget): string;
export declare const luaLibModulesInfoFileName = "lualib_module_info.json";
export declare function getLuaLibModulesInfo(luaTarget: LuaTarget, emitHost: EmitHost): LuaLibModulesInfo;
export declare function getLuaLibExportToFeatureMap(luaTarget: LuaTarget, emitHost: EmitHost): ReadonlyMap<string, LuaLibFeature>;
export declare function readLuaLibFeature(feature: LuaLibFeature, luaTarget: LuaTarget, emitHost: EmitHost): string;
export declare function resolveRecursiveLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost, luaLibModulesInfo?: LuaLibModulesInfo): LuaLibFeature[];
export declare function loadInlineLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost): string;
export declare function loadImportedLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost): lua.Statement[];
export declare function getLuaLibBundle(luaTarget: LuaTarget, emitHost: EmitHost): string;
export declare function getLualibBundleReturn(exportedValues: string[]): string;
export declare function buildMinimalLualibBundle(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost): string;
export declare function findUsedLualibFeatures(luaTarget: LuaTarget, emitHost: EmitHost, luaContents: string[]): Set<LuaLibFeature>;