|
|
@ -60,17 +60,25 @@ function get_name(filename: string) {
|
|
|
|
// eslint-disable-next-line no-useless-escape
|
|
|
|
// eslint-disable-next-line no-useless-escape
|
|
|
|
const parts = filename.split(/[\/\\]/);
|
|
|
|
const parts = filename.split(/[\/\\]/);
|
|
|
|
|
|
|
|
|
|
|
|
if (parts.length > 1 && /^index\.\w+/.test(parts[parts.length - 1])) {
|
|
|
|
if (parts.length > 1) {
|
|
|
|
|
|
|
|
const index_match = parts[parts.length - 1].match(/^index(\.\w+)/);
|
|
|
|
|
|
|
|
if (index_match) {
|
|
|
|
parts.pop();
|
|
|
|
parts.pop();
|
|
|
|
|
|
|
|
parts[parts.length - 1] += index_match[1];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const base = parts.pop()
|
|
|
|
const base = parts.pop()
|
|
|
|
.replace(/\..+/, "")
|
|
|
|
.replace(/\.[^.]+$/, "")
|
|
|
|
.replace(/[^a-zA-Z_$0-9]+/g, '_')
|
|
|
|
.replace(/[^a-zA-Z_$0-9]+/g, '_')
|
|
|
|
.replace(/^_/, '')
|
|
|
|
.replace(/^_/, '')
|
|
|
|
.replace(/_$/, '')
|
|
|
|
.replace(/_$/, '')
|
|
|
|
.replace(/^(\d)/, '_$1');
|
|
|
|
.replace(/^(\d)/, '_$1');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!base) {
|
|
|
|
|
|
|
|
throw new Error(`Could not derive component name from file ${filename}`);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return base[0].toUpperCase() + base.slice(1);
|
|
|
|
return base[0].toUpperCase() + base.slice(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|