fix: componentName can contain dot notation

This commit is contained in:
LeoYuan 袁力皓 2022-11-28 16:40:44 +08:00 committed by 林熠
parent 3e485b07da
commit 3a0ab6d441
2 changed files with 6 additions and 2 deletions

View File

@ -16,7 +16,7 @@ import {
IWithDependency,
} from '../../types';
import { isValidIdentifier } from '../../utils/validate';
import { isValidIdentifier, isValidComponentName } from '../../utils/validate';
// TODO: main 这个信息到底怎么用,是不是外部包不需要使用?
const DEP_MAIN_BLOCKLIST = ['lib', 'lib/index', 'es', 'es/index', 'main'];
@ -261,7 +261,7 @@ function buildPackageImport(
if (!isValidIdentifier(name)) {
throw new CodeGeneratorError(`Invalid Identifier [${name}]`);
}
if (info.nodeIdentifier && !isValidIdentifier(info.nodeIdentifier)) {
if (info.nodeIdentifier && !isValidComponentName(info.nodeIdentifier)) {
throw new CodeGeneratorError(`Invalid Identifier [${info.nodeIdentifier}]`);
}
});

View File

@ -2,6 +2,10 @@ export const isValidIdentifier = (name: string) => {
return /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/.test(name);
};
export const isValidComponentName = (name: string) => {
return /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF.]*$/.test(name);
};
export const ensureValidClassName = (name: string) => {
if (!isValidIdentifier(name)) {
return `$${name.replace(/[^_$a-zA-Z0-9]/g, '')}`;