• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

teableio / teable / 19327211074

13 Nov 2025 09:43AM UTC coverage: 74.204% (+0.04%) from 74.163%
19327211074

Pull #2130

github

web-flow
Merge 1c59c7c41 into 24950f6b1
Pull Request #2130: perf: improve selection clear perf

11163 of 12040 branches covered (92.72%)

66 of 67 new or added lines in 5 files covered. (98.51%)

5 existing lines in 2 files now uncovered.

54233 of 73086 relevant lines covered (74.2%)

4228.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.67
/apps/nestjs-backend/src/features/access-token/access-token.encryptor.ts
1
import { authConfig } from '../../configs/auth.config';
2✔
2
import { Encryptor } from '../../utils/encryptor';
3

4
interface ITokenEncryptor {
5
  sign: string;
6
}
7

8
let accessTokenEncryptor: Encryptor<ITokenEncryptor>;
2✔
9

10
const getAccessTokenEncryptor = () => {
2✔
11
  if (!accessTokenEncryptor) {
48✔
12
    accessTokenEncryptor = new Encryptor<ITokenEncryptor>({
4✔
13
      ...authConfig().accessToken.encryption,
4✔
14
      encoding: 'base64',
4✔
15
    });
4✔
16
  }
4✔
17
  return accessTokenEncryptor;
48✔
18
};
48✔
19

20
export const getAccessToken = (accessTokenId: string, sign: string) => {
2✔
21
  return `${authConfig().accessToken.prefix}_${accessTokenId}_${getAccessTokenEncryptor().encrypt({
26✔
22
    sign,
26✔
23
  })}`;
26✔
24
};
26✔
25

26
export const splitAccessToken = (accessToken: string) => {
2✔
27
  const [prefix = '', accessTokenId = '', encryptedSign = ''] = accessToken.split('_');
24✔
28
  if (!accessTokenId) {
24✔
29
    return null;
2✔
30
  }
2✔
31
  if (prefix !== authConfig().accessToken.prefix) {
23!
UNCOV
32
    return null;
×
UNCOV
33
  }
✔
34
  const { sign } = getAccessTokenEncryptor().decrypt(encryptedSign);
22✔
35
  if (!sign) {
23!
36
    return null;
×
37
  }
✔
38
  return { prefix, accessTokenId, sign };
22✔
39
};
22✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc