Skip to content

Commit b5dd8ef

Browse files
thatcosmonautPerryvw
authored andcommitted
Support special characters in module names (#428)
* transform to underscore when using module with kebab case * support replacement of other special characters * newline endings
1 parent 2d6a138 commit b5dd8ef

File tree

5 files changed

+31
-1
lines changed

5 files changed

+31
-1
lines changed

src/LuaTransformer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ export class LuaTransformer {
334334
return undefined;
335335
}
336336

337-
const tstlIdentifier = (name: string) => "__TSTL_" + name;
337+
const tstlIdentifier = (name: string) => "__TSTL_" + name.replace(new RegExp("-|\\$| |#|'", "g"), "_");
338338
const importUniqueName = tstl.createIdentifier(tstlIdentifier(path.basename((importPath))));
339339
const requireStatement = tstl.createVariableDeclarationStatement(
340340
tstl.createIdentifier(tstlIdentifier(path.basename((importPath)))),
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
local __TSTL_kebab_module = require("kebab-module");
2+
local TestClass = __TSTL_kebab_module.TestClass;
3+
local __TSTL_dollar_module = require("dollar$module");
4+
local TestClass = __TSTL_dollar_module.TestClass;
5+
local __TSTL_singlequote_module = require("singlequote'module");
6+
local TestClass = __TSTL_singlequote_module.TestClass;
7+
local __TSTL_hash_module = require("hash#module");
8+
local TestClass = __TSTL_hash_module.TestClass;
9+
local __TSTL_space_module = require("space module");
10+
local TestClass = __TSTL_space_module.TestClass;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
local __TSTL_kebab_module = require("kebab-module");
2+
local RenamedClass = __TSTL_kebab_module.TestClass;
3+
local __TSTL_dollar_module = require("dollar$module");
4+
local RenamedClass = __TSTL_dollar_module.TestClass;
5+
local __TSTL_singlequote_module = require("singlequote'module");
6+
local RenamedClass = __TSTL_singlequote_module.TestClass;
7+
local __TSTL_hash_module = require("hash#module");
8+
local RenamedClass = __TSTL_hash_module.TestClass;
9+
local __TSTL_space_module = require("space module");
10+
local RenamedClass = __TSTL_space_module.TestClass;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {TestClass} from "kebab-module"
2+
import {TestClass} from "dollar$module"
3+
import {TestClass} from "singlequote'module"
4+
import {TestClass} from "hash#module"
5+
import {TestClass} from "space module"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {TestClass as RenamedClass} from "kebab-module"
2+
import {TestClass as RenamedClass} from "dollar$module"
3+
import {TestClass as RenamedClass} from "singlequote'module"
4+
import {TestClass as RenamedClass} from "hash#module"
5+
import {TestClass as RenamedClass} from "space module"

0 commit comments

Comments
 (0)