Skip to content

Commit 846d1b3

Browse files
authored
refactor: all flattenToken need hashed (#204)
1 parent 10c7642 commit 846d1b3

File tree

3 files changed

+6
-8
lines changed

3 files changed

+6
-8
lines changed

src/util/index.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const flattenTokenCache = new WeakMap<any, string>();
3535
/**
3636
* Flatten token to string, this will auto cache the result when token not change
3737
*/
38-
export function flattenToken(token: any, hashed: boolean = false) {
38+
export function flattenToken(token: any) {
3939
let str = flattenTokenCache.get(token) || '';
4040

4141
if (!str) {
@@ -45,17 +45,15 @@ export function flattenToken(token: any, hashed: boolean = false) {
4545
if (value instanceof Theme) {
4646
str += value.id;
4747
} else if (value && typeof value === 'object') {
48-
str += flattenToken(value, hashed);
48+
str += flattenToken(value);
4949
} else {
5050
str += value;
5151
}
5252
});
5353

5454
// https://github.com/ant-design/ant-design/issues/48386
5555
// Should hash the string to avoid style tag name too long
56-
if (hashed) {
57-
str = hash(str);
58-
}
56+
str = hash(str);
5957

6058
// Put in cache
6159
flattenTokenCache.set(token, str);
@@ -67,7 +65,7 @@ export function flattenToken(token: any, hashed: boolean = false) {
6765
* Convert derivative token to key string
6866
*/
6967
export function token2key(token: any, salt: string): string {
70-
return hash(`${salt}_${flattenToken(token, true)}`);
68+
return hash(`${salt}_${flattenToken(token)}`);
7169
}
7270

7371
const randomSelectorKey = `random-${Date.now()}-${Math.random()}`.replace(

tests/index.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ describe('csssinjs', () => {
202202
const { container } = render(<TokenShower />);
203203

204204
// src/util.tsx - token2key func
205-
expect(container.textContent).toEqual('1cpx0di');
205+
expect(container.textContent).toEqual('1fs647j');
206206
});
207207

208208
it('hash', () => {

tests/util.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ describe('util', () => {
125125
// Repeat call flattenToken
126126
for (let i = 0; i < 10000; i += 1) {
127127
const tokenStr = flattenToken(token);
128-
expect(tokenStr).toEqual('a1');
128+
expect(tokenStr).toEqual('d9a1z5');
129129
}
130130

131131
expect(checkTimes).toEqual(1);

0 commit comments

Comments
 (0)