typescript-to-lua 1.9.0 → 1.10.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CompilerOptions.d.ts +1 -0
- package/dist/CompilerOptions.js +1 -0
- package/dist/LuaAST.d.ts +43 -37
- package/dist/LuaAST.js +48 -38
- package/dist/LuaLib.d.ts +12 -6
- package/dist/LuaLib.js +31 -21
- package/dist/LuaPrinter.d.ts +1 -0
- package/dist/LuaPrinter.js +10 -4
- package/dist/lualib/5.0/ArrayConcat.lua +22 -0
- package/dist/lualib/5.0/ArrayEntries.lua +13 -0
- package/dist/lualib/5.0/ArrayEvery.lua +8 -0
- package/dist/lualib/5.0/ArrayFilter.lua +11 -0
- package/dist/lualib/5.0/ArrayFind.lua +9 -0
- package/dist/lualib/5.0/ArrayFindIndex.lua +8 -0
- package/dist/lualib/5.0/ArrayFlat.lua +27 -0
- package/dist/lualib/5.0/ArrayFlatMap.lua +17 -0
- package/dist/lualib/5.0/ArrayForEach.lua +5 -0
- package/dist/lualib/5.0/ArrayFrom.lua +29 -0
- package/dist/lualib/5.0/ArrayIncludes.lua +19 -0
- package/dist/lualib/5.0/ArrayIndexOf.lua +24 -0
- package/dist/lualib/5.0/ArrayIsArray.lua +3 -0
- package/dist/lualib/5.0/ArrayJoin.lua +10 -0
- package/dist/lualib/5.0/ArrayMap.lua +7 -0
- package/dist/lualib/5.0/ArrayPush.lua +9 -0
- package/dist/lualib/5.0/ArrayPushArray.lua +8 -0
- package/dist/lualib/5.0/ArrayReduce.lua +23 -0
- package/dist/lualib/5.0/ArrayReduceRight.lua +23 -0
- package/dist/lualib/5.0/ArrayReverse.lua +12 -0
- package/dist/lualib/5.0/ArraySetLength.lua +12 -0
- package/dist/lualib/5.0/ArraySlice.lua +43 -0
- package/dist/lualib/5.0/ArraySome.lua +8 -0
- package/dist/lualib/5.0/ArraySort.lua +11 -0
- package/dist/lualib/5.0/ArraySplice.lua +77 -0
- package/dist/lualib/5.0/ArrayToObject.lua +7 -0
- package/dist/lualib/5.0/ArrayUnshift.lua +14 -0
- package/dist/lualib/5.0/Await.lua +54 -0
- package/dist/lualib/5.0/Class.lua +6 -0
- package/dist/lualib/5.0/ClassExtends.lua +24 -0
- package/dist/lualib/5.0/CloneDescriptor.lua +28 -0
- package/dist/lualib/5.0/CountVarargs.lua +4 -0
- package/dist/lualib/5.0/Decorate.lua +36 -0
- package/dist/lualib/5.0/DecorateParam.lua +3 -0
- package/dist/lualib/5.0/DelegatedYield.lua +34 -0
- package/dist/lualib/5.0/Delete.lua +19 -0
- package/dist/lualib/5.0/Error.lua +85 -0
- package/dist/lualib/5.0/FunctionBind.lua +11 -0
- package/dist/lualib/5.0/Generator.lua +34 -0
- package/dist/lualib/5.0/InstanceOf.lua +18 -0
- package/dist/lualib/5.0/InstanceOfObject.lua +4 -0
- package/dist/lualib/5.0/Iterator.lua +40 -0
- package/dist/lualib/5.0/LuaIteratorSpread.lua +9 -0
- package/dist/lualib/5.0/Map.lua +140 -0
- package/dist/lualib/5.0/Match.lua +13 -0
- package/dist/lualib/5.0/MathAtan2.lua +1 -0
- package/dist/lualib/5.0/MathModf.lua +10 -0
- package/dist/lualib/5.0/MathSign.lua +8 -0
- package/dist/lualib/5.0/Modulo50.lua +3 -0
- package/dist/lualib/5.0/New.lua +5 -0
- package/dist/lualib/5.0/Number.lua +26 -0
- package/dist/lualib/5.0/NumberIsFinite.lua +3 -0
- package/dist/lualib/5.0/NumberIsNaN.lua +3 -0
- package/dist/lualib/5.0/NumberToString.lua +47 -0
- package/dist/lualib/5.0/ObjectAssign.lua +10 -0
- package/dist/lualib/5.0/ObjectDefineProperty.lua +59 -0
- package/dist/lualib/5.0/ObjectEntries.lua +9 -0
- package/dist/lualib/5.0/ObjectFromEntries.lua +20 -0
- package/dist/lualib/5.0/ObjectGetOwnPropertyDescriptor.lua +10 -0
- package/dist/lualib/5.0/ObjectGetOwnPropertyDescriptors.lua +7 -0
- package/dist/lualib/5.0/ObjectKeys.lua +9 -0
- package/dist/lualib/5.0/ObjectRest.lua +9 -0
- package/dist/lualib/5.0/ObjectValues.lua +9 -0
- package/dist/lualib/5.0/ParseFloat.lua +18 -0
- package/dist/lualib/5.0/ParseInt.lua +49 -0
- package/dist/lualib/5.0/Promise.lua +176 -0
- package/dist/lualib/5.0/PromiseAll.lua +44 -0
- package/dist/lualib/5.0/PromiseAllSettled.lua +48 -0
- package/dist/lualib/5.0/PromiseAny.lua +41 -0
- package/dist/lualib/5.0/PromiseRace.lua +28 -0
- package/dist/lualib/5.0/Set.lua +130 -0
- package/dist/lualib/5.0/SetDescriptor.lua +79 -0
- package/dist/lualib/5.0/SourceMapTraceBack.lua +56 -0
- package/dist/lualib/5.0/SparseArrayNew.lua +5 -0
- package/dist/lualib/5.0/SparseArrayPush.lua +9 -0
- package/dist/lualib/5.0/SparseArraySpread.lua +3 -0
- package/dist/lualib/5.0/Spread.lua +15 -0
- package/dist/lualib/5.0/StringAccess.lua +5 -0
- package/dist/lualib/5.0/StringCharAt.lua +9 -0
- package/dist/lualib/5.0/StringCharCodeAt.lua +13 -0
- package/dist/lualib/5.0/StringEndsWith.lua +10 -0
- package/dist/lualib/5.0/StringIncludes.lua +9 -0
- package/dist/lualib/5.0/StringPadEnd.lua +26 -0
- package/dist/lualib/5.0/StringPadStart.lua +26 -0
- package/dist/lualib/5.0/StringReplace.lua +20 -0
- package/dist/lualib/5.0/StringReplaceAll.lua +42 -0
- package/dist/lualib/5.0/StringSlice.lua +15 -0
- package/dist/lualib/5.0/StringSplit.lua +36 -0
- package/dist/lualib/5.0/StringStartsWith.lua +10 -0
- package/dist/lualib/5.0/StringSubstr.lua +15 -0
- package/dist/lualib/5.0/StringSubstring.lua +17 -0
- package/dist/lualib/5.0/StringTrim.lua +4 -0
- package/dist/lualib/5.0/StringTrimEnd.lua +4 -0
- package/dist/lualib/5.0/StringTrimStart.lua +4 -0
- package/dist/lualib/5.0/Symbol.lua +15 -0
- package/dist/lualib/5.0/SymbolRegistry.lua +17 -0
- package/dist/lualib/5.0/TypeOf.lua +10 -0
- package/dist/lualib/5.0/Unpack.lua +1 -0
- package/dist/lualib/5.0/WeakMap.lua +45 -0
- package/dist/lualib/5.0/WeakSet.lua +41 -0
- package/dist/lualib/5.0/lualib_bundle.lua +2574 -0
- package/dist/lualib/5.0/lualib_module_info.json +672 -0
- package/dist/lualib/universal/ArrayConcat.lua +22 -0
- package/dist/lualib/universal/ArrayEntries.lua +13 -0
- package/dist/lualib/universal/ArrayEvery.lua +8 -0
- package/dist/lualib/universal/ArrayFilter.lua +11 -0
- package/dist/lualib/universal/ArrayFind.lua +9 -0
- package/dist/lualib/universal/ArrayFindIndex.lua +8 -0
- package/dist/lualib/universal/ArrayFlat.lua +27 -0
- package/dist/lualib/universal/ArrayFlatMap.lua +17 -0
- package/dist/lualib/universal/ArrayForEach.lua +5 -0
- package/dist/lualib/universal/ArrayFrom.lua +29 -0
- package/dist/lualib/universal/ArrayIncludes.lua +19 -0
- package/dist/lualib/universal/ArrayIndexOf.lua +24 -0
- package/dist/lualib/universal/ArrayIsArray.lua +3 -0
- package/dist/lualib/universal/ArrayJoin.lua +10 -0
- package/dist/lualib/universal/ArrayMap.lua +7 -0
- package/dist/lualib/universal/ArrayPush.lua +9 -0
- package/dist/lualib/universal/ArrayPushArray.lua +8 -0
- package/dist/lualib/universal/ArrayReduce.lua +23 -0
- package/dist/lualib/universal/ArrayReduceRight.lua +23 -0
- package/dist/lualib/universal/ArrayReverse.lua +12 -0
- package/dist/lualib/universal/ArraySetLength.lua +12 -0
- package/dist/lualib/universal/ArraySlice.lua +43 -0
- package/dist/lualib/universal/ArraySome.lua +8 -0
- package/dist/lualib/universal/ArraySort.lua +11 -0
- package/dist/lualib/universal/ArraySplice.lua +77 -0
- package/dist/lualib/universal/ArrayToObject.lua +7 -0
- package/dist/lualib/universal/ArrayUnshift.lua +14 -0
- package/dist/lualib/universal/Await.lua +54 -0
- package/dist/lualib/universal/Class.lua +6 -0
- package/dist/lualib/universal/ClassExtends.lua +24 -0
- package/dist/lualib/universal/CloneDescriptor.lua +28 -0
- package/dist/lualib/universal/CountVarargs.lua +3 -0
- package/dist/lualib/universal/Decorate.lua +36 -0
- package/dist/lualib/universal/DecorateParam.lua +3 -0
- package/dist/lualib/universal/DelegatedYield.lua +34 -0
- package/dist/lualib/universal/Delete.lua +19 -0
- package/dist/lualib/universal/Error.lua +82 -0
- package/dist/lualib/universal/FunctionBind.lua +11 -0
- package/dist/lualib/universal/Generator.lua +31 -0
- package/dist/lualib/universal/InstanceOf.lua +18 -0
- package/dist/lualib/universal/InstanceOfObject.lua +4 -0
- package/dist/lualib/universal/Iterator.lua +40 -0
- package/dist/lualib/universal/LuaIteratorSpread.lua +9 -0
- package/dist/lualib/universal/Map.lua +140 -0
- package/dist/lualib/universal/Match.lua +1 -0
- package/dist/lualib/universal/MathAtan2.lua +1 -0
- package/dist/lualib/universal/MathModf.lua +1 -0
- package/dist/lualib/universal/MathSign.lua +8 -0
- package/dist/lualib/universal/Modulo50.lua +3 -0
- package/dist/lualib/universal/New.lua +5 -0
- package/dist/lualib/universal/Number.lua +26 -0
- package/dist/lualib/universal/NumberIsFinite.lua +3 -0
- package/dist/lualib/universal/NumberIsNaN.lua +3 -0
- package/dist/lualib/universal/NumberToString.lua +44 -0
- package/dist/lualib/universal/ObjectAssign.lua +10 -0
- package/dist/lualib/universal/ObjectDefineProperty.lua +59 -0
- package/dist/lualib/universal/ObjectEntries.lua +9 -0
- package/dist/lualib/universal/ObjectFromEntries.lua +20 -0
- package/dist/lualib/universal/ObjectGetOwnPropertyDescriptor.lua +10 -0
- package/dist/lualib/universal/ObjectGetOwnPropertyDescriptors.lua +7 -0
- package/dist/lualib/universal/ObjectKeys.lua +9 -0
- package/dist/lualib/universal/ObjectRest.lua +9 -0
- package/dist/lualib/universal/ObjectValues.lua +9 -0
- package/dist/lualib/universal/ParseFloat.lua +18 -0
- package/dist/lualib/universal/ParseInt.lua +43 -0
- package/dist/lualib/universal/Promise.lua +176 -0
- package/dist/lualib/universal/PromiseAll.lua +44 -0
- package/dist/lualib/universal/PromiseAllSettled.lua +48 -0
- package/dist/lualib/universal/PromiseAny.lua +41 -0
- package/dist/lualib/universal/PromiseRace.lua +28 -0
- package/dist/lualib/universal/Set.lua +130 -0
- package/dist/lualib/universal/SetDescriptor.lua +79 -0
- package/dist/lualib/universal/SourceMapTraceBack.lua +56 -0
- package/dist/lualib/universal/SparseArrayNew.lua +5 -0
- package/dist/lualib/universal/SparseArrayPush.lua +9 -0
- package/dist/lualib/universal/SparseArraySpread.lua +8 -0
- package/dist/lualib/universal/Spread.lua +15 -0
- package/dist/lualib/universal/StringAccess.lua +5 -0
- package/dist/lualib/universal/StringCharAt.lua +9 -0
- package/dist/lualib/universal/StringCharCodeAt.lua +13 -0
- package/dist/lualib/universal/StringEndsWith.lua +6 -0
- package/dist/lualib/universal/StringIncludes.lua +9 -0
- package/dist/lualib/universal/StringPadEnd.lua +26 -0
- package/dist/lualib/universal/StringPadStart.lua +26 -0
- package/dist/lualib/universal/StringReplace.lua +20 -0
- package/dist/lualib/universal/StringReplaceAll.lua +42 -0
- package/dist/lualib/universal/StringSlice.lua +15 -0
- package/dist/lualib/universal/StringSplit.lua +36 -0
- package/dist/lualib/universal/StringStartsWith.lua +6 -0
- package/dist/lualib/universal/StringSubstr.lua +15 -0
- package/dist/lualib/universal/StringSubstring.lua +17 -0
- package/dist/lualib/universal/StringTrim.lua +4 -0
- package/dist/lualib/universal/StringTrimEnd.lua +4 -0
- package/dist/lualib/universal/StringTrimStart.lua +4 -0
- package/dist/lualib/universal/Symbol.lua +15 -0
- package/dist/lualib/universal/SymbolRegistry.lua +17 -0
- package/dist/lualib/universal/TypeOf.lua +10 -0
- package/dist/lualib/universal/Unpack.lua +1 -0
- package/dist/lualib/universal/WeakMap.lua +45 -0
- package/dist/lualib/universal/WeakSet.lua +41 -0
- package/dist/lualib/universal/lualib_bundle.lua +2534 -0
- package/dist/lualib/universal/lualib_module_info.json +671 -0
- package/dist/lualib/universal/universal/CountVarargs.lua +3 -0
- package/dist/lualib/universal/universal/Match.lua +1 -0
- package/dist/lualib/universal/universal/MathModf.lua +1 -0
- package/dist/lualib/universal/universal/SparseArraySpread.lua +8 -0
- package/dist/lualib/universal/universal/Unpack.lua +1 -0
- package/dist/lualib-build/plugin.js +12 -2
- package/dist/transformation/builtins/array.d.ts +1 -1
- package/dist/transformation/builtins/array.js +12 -2
- package/dist/transformation/builtins/function.js +4 -2
- package/dist/transformation/builtins/index.js +11 -3
- package/dist/transformation/builtins/string.d.ts +1 -1
- package/dist/transformation/builtins/string.js +8 -1
- package/dist/transformation/utils/diagnostics.d.ts +2 -4
- package/dist/transformation/utils/lua-ast.js +3 -1
- package/dist/transformation/utils/typescript/index.js +2 -2
- package/dist/transformation/visitors/binary-expression/bit.js +4 -2
- package/dist/transformation/visitors/binary-expression/index.js +4 -0
- package/dist/transformation/visitors/break-continue.js +4 -2
- package/dist/transformation/visitors/class/index.js +9 -4
- package/dist/transformation/visitors/class/members/fields.js +6 -2
- package/dist/transformation/visitors/class/members/method.js +4 -2
- package/dist/transformation/visitors/errors.js +4 -2
- package/dist/transformation/visitors/function.js +2 -1
- package/dist/transformation/visitors/language-extensions/operators.js +2 -1
- package/dist/transformation/visitors/literal.js +12 -4
- package/dist/transformation/visitors/modules/export.js +1 -1
- package/dist/transformation/visitors/spread.js +4 -1
- package/dist/transformation/visitors/typescript.js +1 -0
- package/dist/transpilation/bundle.js +11 -4
- package/dist/transpilation/transpiler.js +3 -1
- package/package.json +18 -18
- package/language-extensions/index.d.ts +0 -676
package/dist/CompilerOptions.js
CHANGED
package/dist/LuaAST.d.ts
CHANGED
|
@@ -20,42 +20,43 @@ export declare enum SyntaxKind {
|
|
|
20
20
|
NumericLiteral = 16,
|
|
21
21
|
NilKeyword = 17,
|
|
22
22
|
DotsKeyword = 18,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
23
|
+
ArgKeyword = 19,
|
|
24
|
+
TrueKeyword = 20,
|
|
25
|
+
FalseKeyword = 21,
|
|
26
|
+
FunctionExpression = 22,
|
|
27
|
+
TableFieldExpression = 23,
|
|
28
|
+
TableExpression = 24,
|
|
29
|
+
UnaryExpression = 25,
|
|
30
|
+
BinaryExpression = 26,
|
|
31
|
+
CallExpression = 27,
|
|
32
|
+
MethodCallExpression = 28,
|
|
33
|
+
Identifier = 29,
|
|
34
|
+
TableIndexExpression = 30,
|
|
35
|
+
AdditionOperator = 31,
|
|
36
|
+
SubtractionOperator = 32,
|
|
37
|
+
MultiplicationOperator = 33,
|
|
38
|
+
DivisionOperator = 34,
|
|
39
|
+
FloorDivisionOperator = 35,
|
|
40
|
+
ModuloOperator = 36,
|
|
41
|
+
PowerOperator = 37,
|
|
42
|
+
NegationOperator = 38,
|
|
43
|
+
ConcatOperator = 39,
|
|
44
|
+
LengthOperator = 40,
|
|
45
|
+
EqualityOperator = 41,
|
|
46
|
+
InequalityOperator = 42,
|
|
47
|
+
LessThanOperator = 43,
|
|
48
|
+
LessEqualOperator = 44,
|
|
49
|
+
GreaterThanOperator = 45,
|
|
50
|
+
GreaterEqualOperator = 46,
|
|
51
|
+
AndOperator = 47,
|
|
52
|
+
OrOperator = 48,
|
|
53
|
+
NotOperator = 49,
|
|
54
|
+
BitwiseAndOperator = 50,
|
|
55
|
+
BitwiseOrOperator = 51,
|
|
56
|
+
BitwiseExclusiveOrOperator = 52,
|
|
57
|
+
BitwiseRightShiftOperator = 53,
|
|
58
|
+
BitwiseLeftShiftOperator = 54,
|
|
59
|
+
BitwiseNotOperator = 55
|
|
59
60
|
}
|
|
60
61
|
export declare type UnaryBitwiseOperator = SyntaxKind.BitwiseNotOperator;
|
|
61
62
|
export declare type UnaryOperator = SyntaxKind.NegationOperator | SyntaxKind.LengthOperator | SyntaxKind.NotOperator | UnaryBitwiseOperator;
|
|
@@ -212,6 +213,11 @@ export interface DotsLiteral extends Expression {
|
|
|
212
213
|
}
|
|
213
214
|
export declare function isDotsLiteral(node: Node): node is DotsLiteral;
|
|
214
215
|
export declare function createDotsLiteral(tsOriginal?: ts.Node): DotsLiteral;
|
|
216
|
+
export interface ArgLiteral extends Expression {
|
|
217
|
+
kind: SyntaxKind.ArgKeyword;
|
|
218
|
+
}
|
|
219
|
+
export declare function isArgLiteral(node: Node): node is ArgLiteral;
|
|
220
|
+
export declare function createArgLiteral(tsOriginal?: ts.Node): ArgLiteral;
|
|
215
221
|
export interface NumericLiteral extends Expression {
|
|
216
222
|
kind: SyntaxKind.NumericLiteral;
|
|
217
223
|
value: number;
|
|
@@ -224,7 +230,7 @@ export interface StringLiteral extends Expression {
|
|
|
224
230
|
}
|
|
225
231
|
export declare function isStringLiteral(node: Node): node is StringLiteral;
|
|
226
232
|
export declare function createStringLiteral(value: string, tsOriginal?: ts.Node): StringLiteral;
|
|
227
|
-
export declare function isLiteral(node: Node): node is NilLiteral | DotsLiteral | BooleanLiteral | NumericLiteral | StringLiteral;
|
|
233
|
+
export declare function isLiteral(node: Node): node is NilLiteral | DotsLiteral | ArgLiteral | BooleanLiteral | NumericLiteral | StringLiteral;
|
|
228
234
|
export interface FunctionExpression extends Expression {
|
|
229
235
|
kind: SyntaxKind.FunctionExpression;
|
|
230
236
|
params?: Identifier[];
|
package/dist/LuaAST.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Simplified Lua AST based roughly on http://lua-users.org/wiki/MetaLuaAbstractSyntaxTree,
|
|
3
3
|
// https://www.lua.org/manual/5.3/manual.html#9 and the TS AST implementation
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
6
|
-
exports.isInlineFunctionExpression = exports.isFunctionDefinition = exports.isAssignmentLeftHandSideExpression = exports.createTableIndexExpression = exports.isTableIndexExpression = exports.createAnonymousIdentifier = exports.cloneIdentifier = exports.createIdentifier = exports.isIdentifier = exports.createMethodCallExpression = exports.isMethodCallExpression = exports.createCallExpression = exports.isCallExpression = exports.createBinaryExpression = exports.isBinaryExpression = exports.createUnaryExpression = exports.isUnaryExpression = exports.createTableExpression = exports.isTableExpression = exports.createTableFieldExpression = exports.isTableFieldExpression = exports.createFunctionExpression = exports.isFunctionExpression = void 0;
|
|
5
|
+
exports.isStringLiteral = exports.createNumericLiteral = exports.isNumericLiteral = exports.createArgLiteral = exports.isArgLiteral = exports.createDotsLiteral = exports.isDotsLiteral = exports.createBooleanLiteral = exports.isBooleanLiteral = exports.createNilLiteral = exports.isNilLiteral = exports.createExpressionStatement = exports.isExpressionStatement = exports.createBreakStatement = exports.isBreakStatement = exports.createReturnStatement = exports.isReturnStatement = exports.createLabelStatement = exports.isLabelStatement = exports.createGotoStatement = exports.isGotoStatement = exports.createForInStatement = exports.isForInStatement = exports.createForStatement = exports.isForStatement = exports.createRepeatStatement = exports.isRepeatStatement = exports.createWhileStatement = exports.isWhileStatement = exports.isIterationStatement = exports.createIfStatement = exports.isIfStatement = exports.createAssignmentStatement = exports.isAssignmentStatement = exports.createVariableDeclarationStatement = exports.isVariableDeclarationStatement = exports.createDoStatement = exports.isDoStatement = exports.createBlock = exports.isBlock = exports.createFile = exports.isFile = exports.setNodeFlags = exports.getOriginalPos = exports.setNodeOriginal = exports.setNodePosition = exports.cloneNode = exports.createNode = exports.NodeFlags = exports.SyntaxKind = void 0;
|
|
6
|
+
exports.isInlineFunctionExpression = exports.isFunctionDefinition = exports.isAssignmentLeftHandSideExpression = exports.createTableIndexExpression = exports.isTableIndexExpression = exports.createAnonymousIdentifier = exports.cloneIdentifier = exports.createIdentifier = exports.isIdentifier = exports.createMethodCallExpression = exports.isMethodCallExpression = exports.createCallExpression = exports.isCallExpression = exports.createBinaryExpression = exports.isBinaryExpression = exports.createUnaryExpression = exports.isUnaryExpression = exports.createTableExpression = exports.isTableExpression = exports.createTableFieldExpression = exports.isTableFieldExpression = exports.createFunctionExpression = exports.isFunctionExpression = exports.isLiteral = exports.createStringLiteral = void 0;
|
|
7
7
|
// We can elide a lot of nodes especially tokens and keywords
|
|
8
8
|
// because we don't create the AST from text
|
|
9
9
|
const ts = require("typescript");
|
|
@@ -31,51 +31,52 @@ var SyntaxKind;
|
|
|
31
31
|
SyntaxKind[SyntaxKind["NumericLiteral"] = 16] = "NumericLiteral";
|
|
32
32
|
SyntaxKind[SyntaxKind["NilKeyword"] = 17] = "NilKeyword";
|
|
33
33
|
SyntaxKind[SyntaxKind["DotsKeyword"] = 18] = "DotsKeyword";
|
|
34
|
-
SyntaxKind[SyntaxKind["
|
|
35
|
-
SyntaxKind[SyntaxKind["
|
|
36
|
-
SyntaxKind[SyntaxKind["
|
|
37
|
-
SyntaxKind[SyntaxKind["
|
|
38
|
-
SyntaxKind[SyntaxKind["
|
|
39
|
-
SyntaxKind[SyntaxKind["
|
|
40
|
-
SyntaxKind[SyntaxKind["
|
|
41
|
-
SyntaxKind[SyntaxKind["
|
|
42
|
-
SyntaxKind[SyntaxKind["
|
|
43
|
-
SyntaxKind[SyntaxKind["
|
|
44
|
-
SyntaxKind[SyntaxKind["
|
|
34
|
+
SyntaxKind[SyntaxKind["ArgKeyword"] = 19] = "ArgKeyword";
|
|
35
|
+
SyntaxKind[SyntaxKind["TrueKeyword"] = 20] = "TrueKeyword";
|
|
36
|
+
SyntaxKind[SyntaxKind["FalseKeyword"] = 21] = "FalseKeyword";
|
|
37
|
+
SyntaxKind[SyntaxKind["FunctionExpression"] = 22] = "FunctionExpression";
|
|
38
|
+
SyntaxKind[SyntaxKind["TableFieldExpression"] = 23] = "TableFieldExpression";
|
|
39
|
+
SyntaxKind[SyntaxKind["TableExpression"] = 24] = "TableExpression";
|
|
40
|
+
SyntaxKind[SyntaxKind["UnaryExpression"] = 25] = "UnaryExpression";
|
|
41
|
+
SyntaxKind[SyntaxKind["BinaryExpression"] = 26] = "BinaryExpression";
|
|
42
|
+
SyntaxKind[SyntaxKind["CallExpression"] = 27] = "CallExpression";
|
|
43
|
+
SyntaxKind[SyntaxKind["MethodCallExpression"] = 28] = "MethodCallExpression";
|
|
44
|
+
SyntaxKind[SyntaxKind["Identifier"] = 29] = "Identifier";
|
|
45
|
+
SyntaxKind[SyntaxKind["TableIndexExpression"] = 30] = "TableIndexExpression";
|
|
45
46
|
// Operators
|
|
46
47
|
// Arithmetic
|
|
47
|
-
SyntaxKind[SyntaxKind["AdditionOperator"] =
|
|
48
|
-
SyntaxKind[SyntaxKind["SubtractionOperator"] =
|
|
49
|
-
SyntaxKind[SyntaxKind["MultiplicationOperator"] =
|
|
50
|
-
SyntaxKind[SyntaxKind["DivisionOperator"] =
|
|
51
|
-
SyntaxKind[SyntaxKind["FloorDivisionOperator"] =
|
|
52
|
-
SyntaxKind[SyntaxKind["ModuloOperator"] =
|
|
53
|
-
SyntaxKind[SyntaxKind["PowerOperator"] =
|
|
54
|
-
SyntaxKind[SyntaxKind["NegationOperator"] =
|
|
48
|
+
SyntaxKind[SyntaxKind["AdditionOperator"] = 31] = "AdditionOperator";
|
|
49
|
+
SyntaxKind[SyntaxKind["SubtractionOperator"] = 32] = "SubtractionOperator";
|
|
50
|
+
SyntaxKind[SyntaxKind["MultiplicationOperator"] = 33] = "MultiplicationOperator";
|
|
51
|
+
SyntaxKind[SyntaxKind["DivisionOperator"] = 34] = "DivisionOperator";
|
|
52
|
+
SyntaxKind[SyntaxKind["FloorDivisionOperator"] = 35] = "FloorDivisionOperator";
|
|
53
|
+
SyntaxKind[SyntaxKind["ModuloOperator"] = 36] = "ModuloOperator";
|
|
54
|
+
SyntaxKind[SyntaxKind["PowerOperator"] = 37] = "PowerOperator";
|
|
55
|
+
SyntaxKind[SyntaxKind["NegationOperator"] = 38] = "NegationOperator";
|
|
55
56
|
// Concat
|
|
56
|
-
SyntaxKind[SyntaxKind["ConcatOperator"] =
|
|
57
|
+
SyntaxKind[SyntaxKind["ConcatOperator"] = 39] = "ConcatOperator";
|
|
57
58
|
// Length
|
|
58
|
-
SyntaxKind[SyntaxKind["LengthOperator"] =
|
|
59
|
+
SyntaxKind[SyntaxKind["LengthOperator"] = 40] = "LengthOperator";
|
|
59
60
|
// Relational Ops
|
|
60
|
-
SyntaxKind[SyntaxKind["EqualityOperator"] =
|
|
61
|
-
SyntaxKind[SyntaxKind["InequalityOperator"] =
|
|
62
|
-
SyntaxKind[SyntaxKind["LessThanOperator"] =
|
|
63
|
-
SyntaxKind[SyntaxKind["LessEqualOperator"] =
|
|
61
|
+
SyntaxKind[SyntaxKind["EqualityOperator"] = 41] = "EqualityOperator";
|
|
62
|
+
SyntaxKind[SyntaxKind["InequalityOperator"] = 42] = "InequalityOperator";
|
|
63
|
+
SyntaxKind[SyntaxKind["LessThanOperator"] = 43] = "LessThanOperator";
|
|
64
|
+
SyntaxKind[SyntaxKind["LessEqualOperator"] = 44] = "LessEqualOperator";
|
|
64
65
|
// Syntax Sugar `x > y` <=> `not (y <= x)`
|
|
65
66
|
// but we should probably use them to make the output code more readable
|
|
66
|
-
SyntaxKind[SyntaxKind["GreaterThanOperator"] =
|
|
67
|
-
SyntaxKind[SyntaxKind["GreaterEqualOperator"] =
|
|
67
|
+
SyntaxKind[SyntaxKind["GreaterThanOperator"] = 45] = "GreaterThanOperator";
|
|
68
|
+
SyntaxKind[SyntaxKind["GreaterEqualOperator"] = 46] = "GreaterEqualOperator";
|
|
68
69
|
// Logical
|
|
69
|
-
SyntaxKind[SyntaxKind["AndOperator"] =
|
|
70
|
-
SyntaxKind[SyntaxKind["OrOperator"] =
|
|
71
|
-
SyntaxKind[SyntaxKind["NotOperator"] =
|
|
70
|
+
SyntaxKind[SyntaxKind["AndOperator"] = 47] = "AndOperator";
|
|
71
|
+
SyntaxKind[SyntaxKind["OrOperator"] = 48] = "OrOperator";
|
|
72
|
+
SyntaxKind[SyntaxKind["NotOperator"] = 49] = "NotOperator";
|
|
72
73
|
// Bitwise
|
|
73
|
-
SyntaxKind[SyntaxKind["BitwiseAndOperator"] =
|
|
74
|
-
SyntaxKind[SyntaxKind["BitwiseOrOperator"] =
|
|
75
|
-
SyntaxKind[SyntaxKind["BitwiseExclusiveOrOperator"] =
|
|
76
|
-
SyntaxKind[SyntaxKind["BitwiseRightShiftOperator"] =
|
|
77
|
-
SyntaxKind[SyntaxKind["BitwiseLeftShiftOperator"] =
|
|
78
|
-
SyntaxKind[SyntaxKind["BitwiseNotOperator"] =
|
|
74
|
+
SyntaxKind[SyntaxKind["BitwiseAndOperator"] = 50] = "BitwiseAndOperator";
|
|
75
|
+
SyntaxKind[SyntaxKind["BitwiseOrOperator"] = 51] = "BitwiseOrOperator";
|
|
76
|
+
SyntaxKind[SyntaxKind["BitwiseExclusiveOrOperator"] = 52] = "BitwiseExclusiveOrOperator";
|
|
77
|
+
SyntaxKind[SyntaxKind["BitwiseRightShiftOperator"] = 53] = "BitwiseRightShiftOperator";
|
|
78
|
+
SyntaxKind[SyntaxKind["BitwiseLeftShiftOperator"] = 54] = "BitwiseLeftShiftOperator";
|
|
79
|
+
SyntaxKind[SyntaxKind["BitwiseNotOperator"] = 55] = "BitwiseNotOperator";
|
|
79
80
|
})(SyntaxKind = exports.SyntaxKind || (exports.SyntaxKind = {}));
|
|
80
81
|
var NodeFlags;
|
|
81
82
|
(function (NodeFlags) {
|
|
@@ -330,6 +331,14 @@ function createDotsLiteral(tsOriginal) {
|
|
|
330
331
|
return createNode(SyntaxKind.DotsKeyword, tsOriginal);
|
|
331
332
|
}
|
|
332
333
|
exports.createDotsLiteral = createDotsLiteral;
|
|
334
|
+
function isArgLiteral(node) {
|
|
335
|
+
return node.kind === SyntaxKind.ArgKeyword;
|
|
336
|
+
}
|
|
337
|
+
exports.isArgLiteral = isArgLiteral;
|
|
338
|
+
function createArgLiteral(tsOriginal) {
|
|
339
|
+
return createNode(SyntaxKind.ArgKeyword, tsOriginal);
|
|
340
|
+
}
|
|
341
|
+
exports.createArgLiteral = createArgLiteral;
|
|
333
342
|
function isNumericLiteral(node) {
|
|
334
343
|
return node.kind === SyntaxKind.NumericLiteral;
|
|
335
344
|
}
|
|
@@ -353,6 +362,7 @@ exports.createStringLiteral = createStringLiteral;
|
|
|
353
362
|
function isLiteral(node) {
|
|
354
363
|
return (isNilLiteral(node) ||
|
|
355
364
|
isDotsLiteral(node) ||
|
|
365
|
+
isArgLiteral(node) ||
|
|
356
366
|
isBooleanLiteral(node) ||
|
|
357
367
|
isNumericLiteral(node) ||
|
|
358
368
|
isStringLiteral(node));
|
package/dist/LuaLib.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EmitHost } from "./transpilation";
|
|
2
2
|
import * as lua from "./LuaAST";
|
|
3
|
+
import { LuaTarget } from "./CompilerOptions";
|
|
3
4
|
export declare enum LuaLibFeature {
|
|
4
5
|
ArrayConcat = "ArrayConcat",
|
|
5
6
|
ArrayEntries = "ArrayEntries",
|
|
@@ -32,6 +33,7 @@ export declare enum LuaLibFeature {
|
|
|
32
33
|
Class = "Class",
|
|
33
34
|
ClassExtends = "ClassExtends",
|
|
34
35
|
CloneDescriptor = "CloneDescriptor",
|
|
36
|
+
CountVarargs = "CountVarargs",
|
|
35
37
|
Decorate = "Decorate",
|
|
36
38
|
DecorateParam = "DecorateParam",
|
|
37
39
|
Delete = "Delete",
|
|
@@ -44,8 +46,11 @@ export declare enum LuaLibFeature {
|
|
|
44
46
|
Iterator = "Iterator",
|
|
45
47
|
LuaIteratorSpread = "LuaIteratorSpread",
|
|
46
48
|
Map = "Map",
|
|
49
|
+
Match = "Match",
|
|
47
50
|
MathAtan2 = "MathAtan2",
|
|
51
|
+
MathModf = "MathModf",
|
|
48
52
|
MathSign = "MathSign",
|
|
53
|
+
Modulo50 = "Modulo50",
|
|
49
54
|
New = "New",
|
|
50
55
|
Number = "Number",
|
|
51
56
|
NumberIsFinite = "NumberIsFinite",
|
|
@@ -103,10 +108,11 @@ export interface LuaLibFeatureInfo {
|
|
|
103
108
|
exports: string[];
|
|
104
109
|
}
|
|
105
110
|
export declare type LuaLibModulesInfo = Record<LuaLibFeature, LuaLibFeatureInfo>;
|
|
111
|
+
export declare function resolveLuaLibDir(luaTarget: LuaTarget): string;
|
|
106
112
|
export declare const luaLibModulesInfoFileName = "lualib_module_info.json";
|
|
107
|
-
export declare function getLuaLibModulesInfo(emitHost: EmitHost): LuaLibModulesInfo;
|
|
108
|
-
export declare function readLuaLibFeature(feature: LuaLibFeature, emitHost: EmitHost): string;
|
|
109
|
-
export declare function resolveRecursiveLualibFeatures(features: Iterable<LuaLibFeature>, emitHost: EmitHost, luaLibModulesInfo?: LuaLibModulesInfo): LuaLibFeature[];
|
|
110
|
-
export declare function loadInlineLualibFeatures(features: Iterable<LuaLibFeature>, emitHost: EmitHost): string;
|
|
111
|
-
export declare function loadImportedLualibFeatures(features: Iterable<LuaLibFeature>, emitHost: EmitHost): lua.Statement[];
|
|
112
|
-
export declare function getLuaLibBundle(emitHost: EmitHost): string;
|
|
113
|
+
export declare function getLuaLibModulesInfo(luaTarget: LuaTarget, emitHost: EmitHost): LuaLibModulesInfo;
|
|
114
|
+
export declare function readLuaLibFeature(feature: LuaLibFeature, luaTarget: LuaTarget, emitHost: EmitHost): string;
|
|
115
|
+
export declare function resolveRecursiveLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost, luaLibModulesInfo?: LuaLibModulesInfo): LuaLibFeature[];
|
|
116
|
+
export declare function loadInlineLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost): string;
|
|
117
|
+
export declare function loadImportedLualibFeatures(features: Iterable<LuaLibFeature>, luaTarget: LuaTarget, emitHost: EmitHost): lua.Statement[];
|
|
118
|
+
export declare function getLuaLibBundle(luaTarget: LuaTarget, emitHost: EmitHost): string;
|
package/dist/LuaLib.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLuaLibBundle = exports.loadImportedLualibFeatures = exports.loadInlineLualibFeatures = exports.resolveRecursiveLualibFeatures = exports.readLuaLibFeature = exports.getLuaLibModulesInfo = exports.luaLibModulesInfoFileName = exports.LuaLibFeature = void 0;
|
|
3
|
+
exports.getLuaLibBundle = exports.loadImportedLualibFeatures = exports.loadInlineLualibFeatures = exports.resolveRecursiveLualibFeatures = exports.readLuaLibFeature = exports.getLuaLibModulesInfo = exports.luaLibModulesInfoFileName = exports.resolveLuaLibDir = exports.LuaLibFeature = void 0;
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const lua = require("./LuaAST");
|
|
6
|
+
const CompilerOptions_1 = require("./CompilerOptions");
|
|
6
7
|
var LuaLibFeature;
|
|
7
8
|
(function (LuaLibFeature) {
|
|
8
9
|
LuaLibFeature["ArrayConcat"] = "ArrayConcat";
|
|
@@ -36,6 +37,7 @@ var LuaLibFeature;
|
|
|
36
37
|
LuaLibFeature["Class"] = "Class";
|
|
37
38
|
LuaLibFeature["ClassExtends"] = "ClassExtends";
|
|
38
39
|
LuaLibFeature["CloneDescriptor"] = "CloneDescriptor";
|
|
40
|
+
LuaLibFeature["CountVarargs"] = "CountVarargs";
|
|
39
41
|
LuaLibFeature["Decorate"] = "Decorate";
|
|
40
42
|
LuaLibFeature["DecorateParam"] = "DecorateParam";
|
|
41
43
|
LuaLibFeature["Delete"] = "Delete";
|
|
@@ -48,8 +50,11 @@ var LuaLibFeature;
|
|
|
48
50
|
LuaLibFeature["Iterator"] = "Iterator";
|
|
49
51
|
LuaLibFeature["LuaIteratorSpread"] = "LuaIteratorSpread";
|
|
50
52
|
LuaLibFeature["Map"] = "Map";
|
|
53
|
+
LuaLibFeature["Match"] = "Match";
|
|
51
54
|
LuaLibFeature["MathAtan2"] = "MathAtan2";
|
|
55
|
+
LuaLibFeature["MathModf"] = "MathModf";
|
|
52
56
|
LuaLibFeature["MathSign"] = "MathSign";
|
|
57
|
+
LuaLibFeature["Modulo50"] = "Modulo50";
|
|
53
58
|
LuaLibFeature["New"] = "New";
|
|
54
59
|
LuaLibFeature["Number"] = "Number";
|
|
55
60
|
LuaLibFeature["NumberIsFinite"] = "NumberIsFinite";
|
|
@@ -102,24 +107,29 @@ var LuaLibFeature;
|
|
|
102
107
|
LuaLibFeature["TypeOf"] = "TypeOf";
|
|
103
108
|
LuaLibFeature["Unpack"] = "Unpack";
|
|
104
109
|
})(LuaLibFeature = exports.LuaLibFeature || (exports.LuaLibFeature = {}));
|
|
110
|
+
function resolveLuaLibDir(luaTarget) {
|
|
111
|
+
const luaLibDir = luaTarget === CompilerOptions_1.LuaTarget.Lua50 ? "5.0" : "universal";
|
|
112
|
+
return path.resolve(__dirname, path.join("..", "dist", "lualib", luaLibDir));
|
|
113
|
+
}
|
|
114
|
+
exports.resolveLuaLibDir = resolveLuaLibDir;
|
|
105
115
|
exports.luaLibModulesInfoFileName = "lualib_module_info.json";
|
|
106
|
-
|
|
107
|
-
function getLuaLibModulesInfo(emitHost) {
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
const luaLibModulesInfo = new Map();
|
|
117
|
+
function getLuaLibModulesInfo(luaTarget, emitHost) {
|
|
118
|
+
const lualibPath = path.join(resolveLuaLibDir(luaTarget), exports.luaLibModulesInfoFileName);
|
|
119
|
+
if (!luaLibModulesInfo.has(lualibPath)) {
|
|
110
120
|
const result = emitHost.readFile(lualibPath);
|
|
111
121
|
if (result !== undefined) {
|
|
112
|
-
luaLibModulesInfo
|
|
122
|
+
luaLibModulesInfo.set(lualibPath, JSON.parse(result));
|
|
113
123
|
}
|
|
114
124
|
else {
|
|
115
125
|
throw new Error(`Could not load lualib dependencies from '${lualibPath}'`);
|
|
116
126
|
}
|
|
117
127
|
}
|
|
118
|
-
return luaLibModulesInfo;
|
|
128
|
+
return luaLibModulesInfo.get(lualibPath);
|
|
119
129
|
}
|
|
120
130
|
exports.getLuaLibModulesInfo = getLuaLibModulesInfo;
|
|
121
|
-
function readLuaLibFeature(feature, emitHost) {
|
|
122
|
-
const featurePath = path.
|
|
131
|
+
function readLuaLibFeature(feature, luaTarget, emitHost) {
|
|
132
|
+
const featurePath = path.join(resolveLuaLibDir(luaTarget), `${feature}.lua`);
|
|
123
133
|
const luaLibFeature = emitHost.readFile(featurePath);
|
|
124
134
|
if (luaLibFeature === undefined) {
|
|
125
135
|
throw new Error(`Could not load lualib feature from '${featurePath}'`);
|
|
@@ -127,7 +137,7 @@ function readLuaLibFeature(feature, emitHost) {
|
|
|
127
137
|
return luaLibFeature;
|
|
128
138
|
}
|
|
129
139
|
exports.readLuaLibFeature = readLuaLibFeature;
|
|
130
|
-
function resolveRecursiveLualibFeatures(features, emitHost, luaLibModulesInfo = getLuaLibModulesInfo(emitHost)) {
|
|
140
|
+
function resolveRecursiveLualibFeatures(features, luaTarget, emitHost, luaLibModulesInfo = getLuaLibModulesInfo(luaTarget, emitHost)) {
|
|
131
141
|
const loadedFeatures = new Set();
|
|
132
142
|
const result = [];
|
|
133
143
|
function load(feature) {
|
|
@@ -147,17 +157,17 @@ function resolveRecursiveLualibFeatures(features, emitHost, luaLibModulesInfo =
|
|
|
147
157
|
return result;
|
|
148
158
|
}
|
|
149
159
|
exports.resolveRecursiveLualibFeatures = resolveRecursiveLualibFeatures;
|
|
150
|
-
function loadInlineLualibFeatures(features, emitHost) {
|
|
160
|
+
function loadInlineLualibFeatures(features, luaTarget, emitHost) {
|
|
151
161
|
let result = "";
|
|
152
|
-
for (const feature of resolveRecursiveLualibFeatures(features, emitHost)) {
|
|
153
|
-
const luaLibFeature = readLuaLibFeature(feature, emitHost);
|
|
162
|
+
for (const feature of resolveRecursiveLualibFeatures(features, luaTarget, emitHost)) {
|
|
163
|
+
const luaLibFeature = readLuaLibFeature(feature, luaTarget, emitHost);
|
|
154
164
|
result += luaLibFeature + "\n";
|
|
155
165
|
}
|
|
156
166
|
return result;
|
|
157
167
|
}
|
|
158
168
|
exports.loadInlineLualibFeatures = loadInlineLualibFeatures;
|
|
159
|
-
function loadImportedLualibFeatures(features, emitHost) {
|
|
160
|
-
const luaLibModuleInfo = getLuaLibModulesInfo(emitHost);
|
|
169
|
+
function loadImportedLualibFeatures(features, luaTarget, emitHost) {
|
|
170
|
+
const luaLibModuleInfo = getLuaLibModulesInfo(luaTarget, emitHost);
|
|
161
171
|
const imports = Array.from(features).flatMap(feature => luaLibModuleInfo[feature].exports);
|
|
162
172
|
const requireCall = lua.createCallExpression(lua.createIdentifier("require"), [
|
|
163
173
|
lua.createStringLiteral("lualib_bundle"),
|
|
@@ -175,19 +185,19 @@ function loadImportedLualibFeatures(features, emitHost) {
|
|
|
175
185
|
return statements;
|
|
176
186
|
}
|
|
177
187
|
exports.loadImportedLualibFeatures = loadImportedLualibFeatures;
|
|
178
|
-
|
|
179
|
-
function getLuaLibBundle(emitHost) {
|
|
180
|
-
|
|
181
|
-
|
|
188
|
+
const luaLibBundleContent = new Map();
|
|
189
|
+
function getLuaLibBundle(luaTarget, emitHost) {
|
|
190
|
+
const lualibPath = path.join(resolveLuaLibDir(luaTarget), "lualib_bundle.lua");
|
|
191
|
+
if (!luaLibBundleContent.has(lualibPath)) {
|
|
182
192
|
const result = emitHost.readFile(lualibPath);
|
|
183
193
|
if (result !== undefined) {
|
|
184
|
-
luaLibBundleContent
|
|
194
|
+
luaLibBundleContent.set(lualibPath, result);
|
|
185
195
|
}
|
|
186
196
|
else {
|
|
187
197
|
throw new Error(`Could not load lualib bundle from '${lualibPath}'`);
|
|
188
198
|
}
|
|
189
199
|
}
|
|
190
|
-
return luaLibBundleContent;
|
|
200
|
+
return luaLibBundleContent.get(lualibPath);
|
|
191
201
|
}
|
|
192
202
|
exports.getLuaLibBundle = getLuaLibBundle;
|
|
193
203
|
//# sourceMappingURL=LuaLib.js.map
|
package/dist/LuaPrinter.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ export declare class LuaPrinter {
|
|
|
60
60
|
printNumericLiteral(expression: lua.NumericLiteral): SourceNode;
|
|
61
61
|
printNilLiteral(expression: lua.NilLiteral): SourceNode;
|
|
62
62
|
printDotsLiteral(expression: lua.DotsLiteral): SourceNode;
|
|
63
|
+
printArgLiteral(expression: lua.ArgLiteral): SourceNode;
|
|
63
64
|
printBooleanLiteral(expression: lua.BooleanLiteral): SourceNode;
|
|
64
65
|
private printFunctionParameters;
|
|
65
66
|
printFunctionExpression(expression: lua.FunctionExpression): SourceNode;
|
package/dist/LuaPrinter.js
CHANGED
|
@@ -128,20 +128,21 @@ class LuaPrinter {
|
|
|
128
128
|
return `__TS__SourceMapTraceBack(debug.getinfo(1).short_src, ${mapString});`;
|
|
129
129
|
}
|
|
130
130
|
printFile(file) {
|
|
131
|
-
var _a;
|
|
131
|
+
var _a, _b;
|
|
132
132
|
let sourceChunks = [file.trivia];
|
|
133
133
|
if (!this.options.noHeader) {
|
|
134
134
|
sourceChunks.push(exports.tstlHeader);
|
|
135
135
|
}
|
|
136
|
-
const
|
|
136
|
+
const luaTarget = (_a = this.options.luaTarget) !== null && _a !== void 0 ? _a : CompilerOptions_1.LuaTarget.Universal;
|
|
137
|
+
const luaLibImport = (_b = this.options.luaLibImport) !== null && _b !== void 0 ? _b : CompilerOptions_1.LuaLibImportKind.Require;
|
|
137
138
|
if (luaLibImport === CompilerOptions_1.LuaLibImportKind.Require && file.luaLibFeatures.size > 0) {
|
|
138
139
|
// Import lualib features
|
|
139
|
-
sourceChunks = this.printStatementArray((0, LuaLib_1.loadImportedLualibFeatures)(file.luaLibFeatures, this.emitHost));
|
|
140
|
+
sourceChunks = this.printStatementArray((0, LuaLib_1.loadImportedLualibFeatures)(file.luaLibFeatures, luaTarget, this.emitHost));
|
|
140
141
|
}
|
|
141
142
|
else if (luaLibImport === CompilerOptions_1.LuaLibImportKind.Inline && file.luaLibFeatures.size > 0) {
|
|
142
143
|
// Inline lualib features
|
|
143
144
|
sourceChunks.push("-- Lua Library inline imports\n");
|
|
144
|
-
sourceChunks.push((0, LuaLib_1.loadInlineLualibFeatures)(file.luaLibFeatures, this.emitHost));
|
|
145
|
+
sourceChunks.push((0, LuaLib_1.loadInlineLualibFeatures)(file.luaLibFeatures, luaTarget, this.emitHost));
|
|
145
146
|
sourceChunks.push("-- End of Lua Library inline imports\n");
|
|
146
147
|
}
|
|
147
148
|
if (this.options.sourceMapTraceback && !(0, CompilerOptions_1.isBundleEnabled)(this.options)) {
|
|
@@ -405,6 +406,8 @@ class LuaPrinter {
|
|
|
405
406
|
return this.printNilLiteral(expression);
|
|
406
407
|
case lua.SyntaxKind.DotsKeyword:
|
|
407
408
|
return this.printDotsLiteral(expression);
|
|
409
|
+
case lua.SyntaxKind.ArgKeyword:
|
|
410
|
+
return this.printArgLiteral(expression);
|
|
408
411
|
case lua.SyntaxKind.TrueKeyword:
|
|
409
412
|
case lua.SyntaxKind.FalseKeyword:
|
|
410
413
|
return this.printBooleanLiteral(expression);
|
|
@@ -442,6 +445,9 @@ class LuaPrinter {
|
|
|
442
445
|
printDotsLiteral(expression) {
|
|
443
446
|
return this.createSourceNode(expression, "...");
|
|
444
447
|
}
|
|
448
|
+
printArgLiteral(expression) {
|
|
449
|
+
return this.createSourceNode(expression, "arg");
|
|
450
|
+
}
|
|
445
451
|
printBooleanLiteral(expression) {
|
|
446
452
|
return this.createSourceNode(expression, expression.kind === lua.SyntaxKind.TrueKeyword ? "true" : "false");
|
|
447
453
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
local function __TS__ArrayConcat(self, ...)
|
|
2
|
+
local items = arg
|
|
3
|
+
local result = {}
|
|
4
|
+
local len = 0
|
|
5
|
+
for i = 1, table.getn(self) do
|
|
6
|
+
len = len + 1
|
|
7
|
+
result[len] = self[i]
|
|
8
|
+
end
|
|
9
|
+
for i = 1, table.getn(items) do
|
|
10
|
+
local item = items[i]
|
|
11
|
+
if __TS__ArrayIsArray(item) then
|
|
12
|
+
for j = 1, table.getn(item) do
|
|
13
|
+
len = len + 1
|
|
14
|
+
result[len] = item[j]
|
|
15
|
+
end
|
|
16
|
+
else
|
|
17
|
+
len = len + 1
|
|
18
|
+
result[len] = item
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
return result
|
|
22
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
local function __TS__ArrayEntries(array)
|
|
2
|
+
local key = 0
|
|
3
|
+
return {
|
|
4
|
+
[Symbol.iterator] = function(self)
|
|
5
|
+
return self
|
|
6
|
+
end,
|
|
7
|
+
next = function(self)
|
|
8
|
+
local result = {done = array[key + 1] == nil, value = {key, array[key + 1]}}
|
|
9
|
+
key = key + 1
|
|
10
|
+
return result
|
|
11
|
+
end
|
|
12
|
+
}
|
|
13
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
local function __TS__ArrayFlat(self, depth)
|
|
2
|
+
if depth == nil then
|
|
3
|
+
depth = 1
|
|
4
|
+
end
|
|
5
|
+
local result = {}
|
|
6
|
+
local len = 0
|
|
7
|
+
for i = 1, table.getn(self) do
|
|
8
|
+
local value = self[i]
|
|
9
|
+
if depth > 0 and __TS__ArrayIsArray(value) then
|
|
10
|
+
local toAdd
|
|
11
|
+
if depth == 1 then
|
|
12
|
+
toAdd = value
|
|
13
|
+
else
|
|
14
|
+
toAdd = __TS__ArrayFlat(value, depth - 1)
|
|
15
|
+
end
|
|
16
|
+
for j = 1, table.getn(toAdd) do
|
|
17
|
+
local val = toAdd[j]
|
|
18
|
+
len = len + 1
|
|
19
|
+
result[len] = val
|
|
20
|
+
end
|
|
21
|
+
else
|
|
22
|
+
len = len + 1
|
|
23
|
+
result[len] = value
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
return result
|
|
27
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
local function __TS__ArrayFlatMap(self, callback, thisArg)
|
|
2
|
+
local result = {}
|
|
3
|
+
local len = 0
|
|
4
|
+
for i = 1, table.getn(self) do
|
|
5
|
+
local value = callback(thisArg, self[i], i - 1, self)
|
|
6
|
+
if __TS__ArrayIsArray(value) then
|
|
7
|
+
for j = 1, table.getn(value) do
|
|
8
|
+
len = len + 1
|
|
9
|
+
result[len] = value[j]
|
|
10
|
+
end
|
|
11
|
+
else
|
|
12
|
+
len = len + 1
|
|
13
|
+
result[len] = value
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
return result
|
|
17
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
local __TS__ArrayFrom
|
|
2
|
+
do
|
|
3
|
+
local function arrayLikeStep(self, index)
|
|
4
|
+
index = index + 1
|
|
5
|
+
if index > self.length then
|
|
6
|
+
return
|
|
7
|
+
end
|
|
8
|
+
return index, self[index]
|
|
9
|
+
end
|
|
10
|
+
local function arrayLikeIterator(arr)
|
|
11
|
+
if type(arr.length) == "number" then
|
|
12
|
+
return arrayLikeStep, arr, 0
|
|
13
|
+
end
|
|
14
|
+
return __TS__Iterator(arr)
|
|
15
|
+
end
|
|
16
|
+
function __TS__ArrayFrom(arrayLike, mapFn, thisArg)
|
|
17
|
+
local result = {}
|
|
18
|
+
if mapFn == nil then
|
|
19
|
+
for ____, v in arrayLikeIterator(arrayLike) do
|
|
20
|
+
result[table.getn(result) + 1] = v
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
for i, v in arrayLikeIterator(arrayLike) do
|
|
24
|
+
result[table.getn(result) + 1] = mapFn(thisArg, v, i - 1)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
return result
|
|
28
|
+
end
|
|
29
|
+
end
|