mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-26 11:17:04 +08:00
fix: dots can now be used in module names (#7655)
Only known extensions are stripped from the end of module names
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -21,6 +21,7 @@ package-lock.json
|
||||
.c9/
|
||||
*.launch
|
||||
.settings/
|
||||
.atom
|
||||
|
||||
# IDE - VSCode
|
||||
.vscode/*
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { createViewFromEntry } from "tns-core-modules/ui/builder";
|
||||
import { sanitizeModuleName } from "tns-core-modules/ui/builder/module-name-sanitizer";
|
||||
|
||||
import { assertEqual, assertNull, assertThrows, assertNotNull } from "../../tk-unit";
|
||||
|
||||
const COMPONENT_MODULE = "ui/builder/component-module";
|
||||
@ -36,3 +38,13 @@ export function test_create_view_from_entry_with_path_with_tilde() {
|
||||
const view = getViewComponent("~/" + COMPONENT_MODULE);
|
||||
assertNotNull(view, `Module starting with "~/" could not be loaded`);
|
||||
}
|
||||
|
||||
export function test_sanitize_module_name_with_removable_extension() {
|
||||
const moduleName = sanitizeModuleName("./xml-declaration/mainPage.xml");
|
||||
assertEqual(moduleName, "./xml-declaration/mainPage");
|
||||
}
|
||||
|
||||
export function test_sanitize_module_name_with_non_removable_extension() {
|
||||
const moduleName = sanitizeModuleName("app/views/main.page");
|
||||
assertEqual(moduleName, "app/views/main.page");
|
||||
}
|
||||
|
@ -10,10 +10,9 @@ export function sanitizeModuleName(moduleName: string, removeExtension: boolean
|
||||
}
|
||||
|
||||
if (removeExtension) {
|
||||
const lastDot = moduleName.lastIndexOf(".");
|
||||
if (lastDot > 0) {
|
||||
moduleName = moduleName.substr(0, lastDot);
|
||||
}
|
||||
const extToRemove = ["js", "ts", "xml", "html", "css", "scss"];
|
||||
const extensionRegEx = new RegExp(`(.*)\\.(?:${extToRemove.join("|")})`, "i");
|
||||
moduleName = moduleName.replace(extensionRegEx, "$1");
|
||||
}
|
||||
|
||||
return moduleName;
|
||||
|
Reference in New Issue
Block a user