Skip to content

Commit 2c5663f

Browse files
committed
fix: 将组件名称转换为 snake 风格以解决名称不一致
1 parent e499422 commit 2c5663f

File tree

4 files changed

+39
-3
lines changed

4 files changed

+39
-3
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"dependencies": {
2525
"chalk": "^4.1.1",
2626
"change-case": "^4.1.2",
27+
"change-case-all": "^2.1.0",
2728
"commander": "^11.0.0",
2829
"cosmiconfig": "^9.0.0",
2930
"fs-extra": "^10.0.0",

src/compiler/ts-loader.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import fs from "fs";
22
import path from "path";
33
import ts from "typescript";
44
import React from "react";
5+
import { snakeCase } from "change-case-all";
56
import { getResourceLoaderName, parsePageRoute } from "../utils.js";
67
import { LoaderContext, LoaderInput, Module } from "../types.js";
78

@@ -118,8 +119,9 @@ export default async function TsLoader(
118119
{
119120
target:
120121
defaultComponentFunc === component ? options.target : undefined,
121-
name:
122-
component.displayName || component.name || `UnnamedComponent${i}`,
122+
name: snakeCase(
123+
component.displayName || component.name || `UnnamedComponent${i}`
124+
),
123125
}
124126
) as {
125127
name: string;

src/utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import path from "path";
22
import fs from "fs-extra";
33
import { cosmiconfig } from "cosmiconfig";
4+
import { snakeCase } from "change-case-all";
45

56
export function toIdent(str: string) {
67
return str.replace(/[^a-zA-Z0-9]/g, "_");
@@ -10,7 +11,7 @@ export function getResourceLoaderName(
1011
fileName: string,
1112
defaultComponentName?: string
1213
) {
13-
const ident = toIdent(defaultComponentName || fileName);
14+
const ident = snakeCase(defaultComponentName || fileName);
1415
return `ui_load_${ident}_resources`;
1516
}
1617

yarn.lock

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,16 @@ chalk@^5.3.0:
789789
resolved "https://registry.npmmirror.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
790790
integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
791791

792+
change-case-all@^2.1.0:
793+
version "2.1.0"
794+
resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-2.1.0.tgz#c838988531bba9fa9e4db124f2d3f53a9607acc1"
795+
integrity sha512-v6b0WWWkZUMHVuYk82l+WROgkUm4qEN2w5hKRNWtEOYwWqUGoi8C6xH0l1RLF1EoWqDFK6MFclmN3od6ws3/uw==
796+
dependencies:
797+
change-case "^5.2.0"
798+
sponge-case "^2.0.2"
799+
swap-case "^3.0.2"
800+
title-case "^3.0.3"
801+
792802
change-case@^4.1.2:
793803
version "4.1.2"
794804
resolved "https://registry.npmmirror.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12"
@@ -807,6 +817,11 @@ change-case@^4.1.2:
807817
snake-case "^3.0.4"
808818
tslib "^2.0.3"
809819

820+
change-case@^5.2.0:
821+
version "5.4.4"
822+
resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.4.4.tgz#0d52b507d8fb8f204343432381d1a6d7bff97a02"
823+
integrity sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==
824+
810825
chokidar@3.5.3:
811826
version "3.5.3"
812827
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -2712,6 +2727,11 @@ split2@^4.0.0:
27122727
resolved "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
27132728
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
27142729

2730+
sponge-case@^2.0.2:
2731+
version "2.0.3"
2732+
resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-2.0.3.tgz#9e004d04332c307e4895b79eeb6c1f3da86eb203"
2733+
integrity sha512-i4h9ZGRfxV6Xw3mpZSFOfbXjf0cQcYmssGWutgNIfFZ2VM+YIWfD71N/kjjwK6X/AAHzBr+rciEcn/L34S8TGw==
2734+
27152735
sprintf-js@~1.0.2:
27162736
version "1.0.3"
27172737
resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -2798,6 +2818,11 @@ supports-color@^7.1.0:
27982818
dependencies:
27992819
has-flag "^4.0.0"
28002820

2821+
swap-case@^3.0.2:
2822+
version "3.0.3"
2823+
resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-3.0.3.tgz#363883b0e8a2837c24d2e0eccb6bdff92e32d711"
2824+
integrity sha512-6p4op8wE9CQv7uDFzulI6YXUw4lD9n4oQierdbFThEKVWVQcbQcUjdP27W8XE7V4QnWmnq9jueSHceyyQnqQVA==
2825+
28012826
teeny-request@7.1.1:
28022827
version "7.1.1"
28032828
resolved "https://registry.npmmirror.com/teeny-request/-/teeny-request-7.1.1.tgz#2b0d156f4a8ad81de44303302ba8d7f1f05e20e6"
@@ -2838,6 +2863,13 @@ text-table@^0.2.0:
28382863
resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
28392864
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
28402865

2866+
title-case@^3.0.3:
2867+
version "3.0.3"
2868+
resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982"
2869+
integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==
2870+
dependencies:
2871+
tslib "^2.0.3"
2872+
28412873
to-fast-properties@^2.0.0:
28422874
version "2.0.0"
28432875
resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"

0 commit comments

Comments
 (0)