Skip to content

Commit 2d6141f

Browse files
committed
Use buildMode=lualib instead of luaLibProject compiler option
1 parent 8ce2350 commit 2d6141f

9 files changed

Lines changed: 15 additions & 16 deletions

File tree

src/CompilerOptions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export type CompilerOptions = OmitIndexSignature<ts.CompilerOptions> & {
2727
luaBundleEntry?: string;
2828
luaTarget?: LuaTarget;
2929
luaLibImport?: LuaLibImportKind;
30-
luaLibProject?: boolean;
3130
luaPlugins?: LuaPluginImport[];
3231
noImplicitSelf?: boolean;
3332
noHeader?: boolean;
@@ -57,6 +56,7 @@ export enum LuaTarget {
5756
export enum BuildMode {
5857
Default = "default",
5958
Library = "library",
59+
LuaLib = "lualib",
6060
}
6161

6262
export const isBundleEnabled = (options: CompilerOptions) =>

src/cli/parse.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ export const optionDeclarations: CommandLineOption[] = [
4646
type: "enum",
4747
choices: Object.values(LuaLibImportKind),
4848
},
49-
{
50-
name: "luaLibProject",
51-
description: "If this project is lualib source.",
52-
type: "boolean",
53-
},
5449
{
5550
name: "luaTarget",
5651
aliases: ["lt"],

src/lualib/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"noUnusedParameters": true
1111
},
1212
"tstl": {
13+
"buildMode": "lualib",
1314
"luaLibImport": "none",
14-
"noHeader": true,
15-
"luaLibProject": true
15+
"noHeader": true
1616
}
1717
}

src/transformation/utils/lua-ast.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as ts from "typescript";
2-
import { LuaTarget } from "../../CompilerOptions";
2+
import { LuaTarget, BuildMode } from "../../CompilerOptions";
33
import * as lua from "../../LuaAST";
44
import { assert, castArray } from "../../utils";
55
import { TransformationContext } from "../context";
@@ -146,7 +146,7 @@ export function createLocalOrExportedOrGlobalDeclaration(
146146
if (!rhs) {
147147
return [];
148148
} else {
149-
if (context.options.luaLibProject) {
149+
if (context.options.buildMode === BuildMode.LuaLib) {
150150
// assignment to a local variable defined elsewhere
151151
// see sourceFile.ts
152152
assignment = lua.createAssignmentStatement(lhs, rhs, tsOriginal);

src/transformation/visitors/class/setup.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
import { createExportsIdentifier, createLocalOrExportedOrGlobalDeclaration } from "../../utils/lua-ast";
1212
import { LuaLibFeature, transformLuaLibFunction } from "../../utils/lualib";
1313
import { getExtendedNode, getExtendsClause } from "./utils";
14+
import { BuildMode } from "../../../CompilerOptions";
1415

1516
export function createClassSetup(
1617
context: TransformationContext,
@@ -40,7 +41,7 @@ export function createClassSetup(
4041
result.push(lua.createVariableDeclarationStatement(localClassName, defaultExportLeftHandSide));
4142
} else {
4243
const exportScope = getIdentifierExportScope(context, className);
43-
if (exportScope && !context.options.luaLibProject) {
44+
if (exportScope && context.options.buildMode !== BuildMode.LuaLib) {
4445
// local localClassName = ____exports.className
4546
result.push(
4647
lua.createVariableDeclarationStatement(

src/transformation/visitors/identifier.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { isTableExtensionIdentifier } from "./language-extensions/table";
2323
import { isVarargConstantNode } from "./language-extensions/vararg";
2424
import { isOptionalContinuation } from "./optional-chaining";
2525
import { isErrorClass } from "../builtins/error";
26+
import { BuildMode } from "../../CompilerOptions";
2627

2728
export function transformIdentifier(context: TransformationContext, identifier: ts.Identifier): lua.Identifier {
2829
if (isOptionalContinuation(identifier)) {
@@ -73,7 +74,7 @@ export function transformIdentifier(context: TransformationContext, identifier:
7374

7475
export const transformIdentifierExpression: FunctionVisitor<ts.Identifier> = (node, context) => {
7576
const symbol = context.checker.getSymbolAtLocation(node);
76-
if (symbol && !context.options.luaLibProject) {
77+
if (symbol && context.options.buildMode !== BuildMode.LuaLib) {
7778
const exportScope = getSymbolExportScope(context, symbol);
7879
if (exportScope) {
7980
const name = symbol.name;

src/transformation/visitors/modules/import.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { transformIdentifier } from "../identifier";
1212
import { transformPropertyName } from "../literal";
1313
import { LuaLibFeature } from "../../../LuaLib";
1414
import { importLuaLibFeature } from "../../utils/lualib";
15+
import { BuildMode } from "../../../CompilerOptions";
1516

1617
function isNoResolutionPath(context: TransformationContext, moduleSpecifier: ts.Expression): boolean {
1718
const moduleOwnerSymbol = context.checker.getSymbolAtLocation(moduleSpecifier);
@@ -61,7 +62,7 @@ function transformImportSpecifier(
6162
}
6263

6364
export const transformImportDeclaration: FunctionVisitor<ts.ImportDeclaration> = (statement, context) => {
64-
if (context.options.luaLibProject) {
65+
if (context.options.buildMode === BuildMode.LuaLib) {
6566
// in lualib project, imports declare dependencies
6667
// Assume that relevant imports are in the form `import "./module"`
6768

src/transformation/visitors/sourceFile.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { performHoisting, popScope, pushScope, ScopeType } from "../utils/scope"
1010
import { hasExportEquals } from "../utils/typescript";
1111
import { getSymbolIdOfSymbol, getSymbolInfo } from "../utils/symbols";
1212
import { getExportedSymbolsFromScope } from "../utils/export";
13+
import { BuildMode } from "../../CompilerOptions";
1314

1415
export const transformSourceFileNode: FunctionVisitor<ts.SourceFile> = (node, context) => {
1516
let statements: lua.Statement[] = [];
@@ -35,7 +36,7 @@ export const transformSourceFileNode: FunctionVisitor<ts.SourceFile> = (node, co
3536
statements = performHoisting(context, context.transformStatements(node.statements));
3637
popScope(context);
3738

38-
if (context.options.luaLibProject) {
39+
if (context.options.buildMode === BuildMode.LuaLib) {
3940
// Exports are currently assignment statements
4041
const exportedSymbolIds = getExportedSymbolsFromScope(context, context.sourceFile)
4142
.map(symbol => getSymbolIdOfSymbol(context, symbol))

src/transpilation/transpile.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as path from "path";
22
import * as ts from "typescript";
3-
import { CompilerOptions, validateOptions } from "../CompilerOptions";
3+
import { CompilerOptions, validateOptions, BuildMode } from "../CompilerOptions";
44
import { createPrinter } from "../LuaPrinter";
55
import { createVisitorMap, transformSourceFile } from "../transformation";
66
import { isNonNull } from "../utils";
@@ -124,7 +124,7 @@ export function getProgramTranspileResult(
124124
program.getSourceFiles().filter(isEmittableJsonFile).forEach(processSourceFile);
125125
}
126126

127-
if (options.luaLibProject) {
127+
if (options.buildMode === BuildMode.LuaLib) {
128128
// add lualib dependencies json file
129129
transpiledFiles.push(...generateExtraLualibFiles(emitHost, program, transpiledFiles));
130130
}

0 commit comments

Comments
 (0)