From cbbb0e068bc6e6342ed842180e65c356fff5e02c Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Tue, 19 Feb 2019 19:53:24 -0800 Subject: [PATCH 1/3] transform to underscore when using module with kebab case --- src/LuaTransformer.ts | 2 +- test/translation/lua/modulesImportNamedKebab.lua | 2 ++ test/translation/lua/modulesImportRenamedKebab.lua | 2 ++ test/translation/ts/modulesImportNamedKebab.ts | 1 + test/translation/ts/modulesImportRenamedKebab.ts | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 test/translation/lua/modulesImportNamedKebab.lua create mode 100644 test/translation/lua/modulesImportRenamedKebab.lua create mode 100644 test/translation/ts/modulesImportNamedKebab.ts create mode 100644 test/translation/ts/modulesImportRenamedKebab.ts diff --git a/src/LuaTransformer.ts b/src/LuaTransformer.ts index a831b6a69..a8acbb2a9 100644 --- a/src/LuaTransformer.ts +++ b/src/LuaTransformer.ts @@ -334,7 +334,7 @@ export class LuaTransformer { return undefined; } - const tstlIdentifier = (name: string) => "__TSTL_" + name; + const tstlIdentifier = (name: string) => "__TSTL_" + name.replace(new RegExp("-", "g"), "_"); const importUniqueName = tstl.createIdentifier(tstlIdentifier(path.basename((importPath)))); const requireStatement = tstl.createVariableDeclarationStatement( tstl.createIdentifier(tstlIdentifier(path.basename((importPath)))), diff --git a/test/translation/lua/modulesImportNamedKebab.lua b/test/translation/lua/modulesImportNamedKebab.lua new file mode 100644 index 000000000..ad19a1399 --- /dev/null +++ b/test/translation/lua/modulesImportNamedKebab.lua @@ -0,0 +1,2 @@ +local __TSTL_kebab_module = require("kebab-module"); +local TestClass = __TSTL_kebab_module.TestClass; diff --git a/test/translation/lua/modulesImportRenamedKebab.lua b/test/translation/lua/modulesImportRenamedKebab.lua new file mode 100644 index 000000000..b472ff04b --- /dev/null +++ b/test/translation/lua/modulesImportRenamedKebab.lua @@ -0,0 +1,2 @@ +local __TSTL_kebab_module = require("kebab-module"); +local RenamedClass = __TSTL_kebab_module.TestClass; diff --git a/test/translation/ts/modulesImportNamedKebab.ts b/test/translation/ts/modulesImportNamedKebab.ts new file mode 100644 index 000000000..806123c5a --- /dev/null +++ b/test/translation/ts/modulesImportNamedKebab.ts @@ -0,0 +1 @@ +import {TestClass} from "kebab-module" diff --git a/test/translation/ts/modulesImportRenamedKebab.ts b/test/translation/ts/modulesImportRenamedKebab.ts new file mode 100644 index 000000000..c06a1e124 --- /dev/null +++ b/test/translation/ts/modulesImportRenamedKebab.ts @@ -0,0 +1 @@ +import {TestClass as RenamedClass} from "kebab-module" From 81f15b6b2cdf917577961abc5ad8feccf3e7e504 Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Tue, 19 Feb 2019 20:41:22 -0800 Subject: [PATCH 2/3] support replacement of other special characters --- src/LuaTransformer.ts | 2 +- test/translation/lua/modulesImportNamedKebab.lua | 2 -- .../translation/lua/modulesImportNamedSpecialChars.lua | 10 ++++++++++ test/translation/lua/modulesImportRenamedKebab.lua | 2 -- .../lua/modulesImportRenamedSpecialChars.lua | 10 ++++++++++ test/translation/ts/modulesImportNamedKebab.ts | 1 - test/translation/ts/modulesImportNamedSpecialChars.ts | 5 +++++ test/translation/ts/modulesImportRenamedKebab.ts | 1 - .../translation/ts/modulesImportRenamedSpecialChars.ts | 5 +++++ 9 files changed, 31 insertions(+), 7 deletions(-) delete mode 100644 test/translation/lua/modulesImportNamedKebab.lua create mode 100644 test/translation/lua/modulesImportNamedSpecialChars.lua delete mode 100644 test/translation/lua/modulesImportRenamedKebab.lua create mode 100644 test/translation/lua/modulesImportRenamedSpecialChars.lua delete mode 100644 test/translation/ts/modulesImportNamedKebab.ts create mode 100644 test/translation/ts/modulesImportNamedSpecialChars.ts delete mode 100644 test/translation/ts/modulesImportRenamedKebab.ts create mode 100644 test/translation/ts/modulesImportRenamedSpecialChars.ts diff --git a/src/LuaTransformer.ts b/src/LuaTransformer.ts index a8acbb2a9..16bfa9646 100644 --- a/src/LuaTransformer.ts +++ b/src/LuaTransformer.ts @@ -334,7 +334,7 @@ export class LuaTransformer { return undefined; } - const tstlIdentifier = (name: string) => "__TSTL_" + name.replace(new RegExp("-", "g"), "_"); + const tstlIdentifier = (name: string) => "__TSTL_" + name.replace(new RegExp("-|\\$| |#|'", "g"), "_"); const importUniqueName = tstl.createIdentifier(tstlIdentifier(path.basename((importPath)))); const requireStatement = tstl.createVariableDeclarationStatement( tstl.createIdentifier(tstlIdentifier(path.basename((importPath)))), diff --git a/test/translation/lua/modulesImportNamedKebab.lua b/test/translation/lua/modulesImportNamedKebab.lua deleted file mode 100644 index ad19a1399..000000000 --- a/test/translation/lua/modulesImportNamedKebab.lua +++ /dev/null @@ -1,2 +0,0 @@ -local __TSTL_kebab_module = require("kebab-module"); -local TestClass = __TSTL_kebab_module.TestClass; diff --git a/test/translation/lua/modulesImportNamedSpecialChars.lua b/test/translation/lua/modulesImportNamedSpecialChars.lua new file mode 100644 index 000000000..3f594d30e --- /dev/null +++ b/test/translation/lua/modulesImportNamedSpecialChars.lua @@ -0,0 +1,10 @@ +local __TSTL_kebab_module = require("kebab-module"); +local TestClass = __TSTL_kebab_module.TestClass; +local __TSTL_dollar_module = require("dollar$module"); +local TestClass = __TSTL_dollar_module.TestClass; +local __TSTL_singlequote_module = require("singlequote'module"); +local TestClass = __TSTL_singlequote_module.TestClass; +local __TSTL_hash_module = require("hash#module"); +local TestClass = __TSTL_hash_module.TestClass; +local __TSTL_space_module = require("space module"); +local TestClass = __TSTL_space_module.TestClass; \ No newline at end of file diff --git a/test/translation/lua/modulesImportRenamedKebab.lua b/test/translation/lua/modulesImportRenamedKebab.lua deleted file mode 100644 index b472ff04b..000000000 --- a/test/translation/lua/modulesImportRenamedKebab.lua +++ /dev/null @@ -1,2 +0,0 @@ -local __TSTL_kebab_module = require("kebab-module"); -local RenamedClass = __TSTL_kebab_module.TestClass; diff --git a/test/translation/lua/modulesImportRenamedSpecialChars.lua b/test/translation/lua/modulesImportRenamedSpecialChars.lua new file mode 100644 index 000000000..6d3473ff8 --- /dev/null +++ b/test/translation/lua/modulesImportRenamedSpecialChars.lua @@ -0,0 +1,10 @@ +local __TSTL_kebab_module = require("kebab-module"); +local RenamedClass = __TSTL_kebab_module.TestClass; +local __TSTL_dollar_module = require("dollar$module"); +local RenamedClass = __TSTL_dollar_module.TestClass; +local __TSTL_singlequote_module = require("singlequote'module"); +local RenamedClass = __TSTL_singlequote_module.TestClass; +local __TSTL_hash_module = require("hash#module"); +local RenamedClass = __TSTL_hash_module.TestClass; +local __TSTL_space_module = require("space module"); +local RenamedClass = __TSTL_space_module.TestClass; \ No newline at end of file diff --git a/test/translation/ts/modulesImportNamedKebab.ts b/test/translation/ts/modulesImportNamedKebab.ts deleted file mode 100644 index 806123c5a..000000000 --- a/test/translation/ts/modulesImportNamedKebab.ts +++ /dev/null @@ -1 +0,0 @@ -import {TestClass} from "kebab-module" diff --git a/test/translation/ts/modulesImportNamedSpecialChars.ts b/test/translation/ts/modulesImportNamedSpecialChars.ts new file mode 100644 index 000000000..0bdcbd32f --- /dev/null +++ b/test/translation/ts/modulesImportNamedSpecialChars.ts @@ -0,0 +1,5 @@ +import {TestClass} from "kebab-module" +import {TestClass} from "dollar$module" +import {TestClass} from "singlequote'module" +import {TestClass} from "hash#module" +import {TestClass} from "space module" \ No newline at end of file diff --git a/test/translation/ts/modulesImportRenamedKebab.ts b/test/translation/ts/modulesImportRenamedKebab.ts deleted file mode 100644 index c06a1e124..000000000 --- a/test/translation/ts/modulesImportRenamedKebab.ts +++ /dev/null @@ -1 +0,0 @@ -import {TestClass as RenamedClass} from "kebab-module" diff --git a/test/translation/ts/modulesImportRenamedSpecialChars.ts b/test/translation/ts/modulesImportRenamedSpecialChars.ts new file mode 100644 index 000000000..96cb6c7b5 --- /dev/null +++ b/test/translation/ts/modulesImportRenamedSpecialChars.ts @@ -0,0 +1,5 @@ +import {TestClass as RenamedClass} from "kebab-module" +import {TestClass as RenamedClass} from "dollar$module" +import {TestClass as RenamedClass} from "singlequote'module" +import {TestClass as RenamedClass} from "hash#module" +import {TestClass as RenamedClass} from "space module" \ No newline at end of file From 9bfff18ebbb5b53f4245ae80ba9c11cb99382fdd Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Tue, 19 Feb 2019 20:43:32 -0800 Subject: [PATCH 3/3] newline endings --- test/translation/lua/modulesImportNamedSpecialChars.lua | 2 +- test/translation/lua/modulesImportRenamedSpecialChars.lua | 2 +- test/translation/ts/modulesImportNamedSpecialChars.ts | 2 +- test/translation/ts/modulesImportRenamedSpecialChars.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/translation/lua/modulesImportNamedSpecialChars.lua b/test/translation/lua/modulesImportNamedSpecialChars.lua index 3f594d30e..837c6ae21 100644 --- a/test/translation/lua/modulesImportNamedSpecialChars.lua +++ b/test/translation/lua/modulesImportNamedSpecialChars.lua @@ -7,4 +7,4 @@ local TestClass = __TSTL_singlequote_module.TestClass; local __TSTL_hash_module = require("hash#module"); local TestClass = __TSTL_hash_module.TestClass; local __TSTL_space_module = require("space module"); -local TestClass = __TSTL_space_module.TestClass; \ No newline at end of file +local TestClass = __TSTL_space_module.TestClass; diff --git a/test/translation/lua/modulesImportRenamedSpecialChars.lua b/test/translation/lua/modulesImportRenamedSpecialChars.lua index 6d3473ff8..000113c65 100644 --- a/test/translation/lua/modulesImportRenamedSpecialChars.lua +++ b/test/translation/lua/modulesImportRenamedSpecialChars.lua @@ -7,4 +7,4 @@ local RenamedClass = __TSTL_singlequote_module.TestClass; local __TSTL_hash_module = require("hash#module"); local RenamedClass = __TSTL_hash_module.TestClass; local __TSTL_space_module = require("space module"); -local RenamedClass = __TSTL_space_module.TestClass; \ No newline at end of file +local RenamedClass = __TSTL_space_module.TestClass; diff --git a/test/translation/ts/modulesImportNamedSpecialChars.ts b/test/translation/ts/modulesImportNamedSpecialChars.ts index 0bdcbd32f..cff06e7c0 100644 --- a/test/translation/ts/modulesImportNamedSpecialChars.ts +++ b/test/translation/ts/modulesImportNamedSpecialChars.ts @@ -2,4 +2,4 @@ import {TestClass} from "kebab-module" import {TestClass} from "dollar$module" import {TestClass} from "singlequote'module" import {TestClass} from "hash#module" -import {TestClass} from "space module" \ No newline at end of file +import {TestClass} from "space module" diff --git a/test/translation/ts/modulesImportRenamedSpecialChars.ts b/test/translation/ts/modulesImportRenamedSpecialChars.ts index 96cb6c7b5..10cc4b0cc 100644 --- a/test/translation/ts/modulesImportRenamedSpecialChars.ts +++ b/test/translation/ts/modulesImportRenamedSpecialChars.ts @@ -2,4 +2,4 @@ import {TestClass as RenamedClass} from "kebab-module" import {TestClass as RenamedClass} from "dollar$module" import {TestClass as RenamedClass} from "singlequote'module" import {TestClass as RenamedClass} from "hash#module" -import {TestClass as RenamedClass} from "space module" \ No newline at end of file +import {TestClass as RenamedClass} from "space module"