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

teableio / teable / 8421654220

25 Mar 2024 02:22PM CUT coverage: 79.934% (+53.8%) from 26.087%
8421654220

Pull #495

github

web-flow
Merge 4faeebea5 into 1869c986d
Pull Request #495: chore: add licenses for non-NPM packages

3256 of 3853 branches covered (84.51%)

25152 of 31466 relevant lines covered (79.93%)

1188.29 hits per line

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

73.91
/apps/nestjs-backend/src/cache/cache.provider.ts
1
/* eslint-disable @typescript-eslint/naming-convention */
2✔
2
import path from 'path';
2✔
3
import KeyvRedis from '@keyv/redis';
2✔
4
import KeyvSqlite from '@keyv/sqlite';
2✔
5
import type { Provider } from '@nestjs/common';
2✔
6
import { Logger } from '@nestjs/common';
2✔
7
import * as fse from 'fs-extra';
2✔
8
import Keyv from 'keyv';
2✔
9
import { match } from 'ts-pattern';
2✔
10
import type { ICacheConfig } from '../configs/cache.config';
2✔
11
import { cacheConfig } from '../configs/cache.config';
2✔
12
import { CacheService } from './cache.service';
2✔
13

2✔
14
export const CacheProvider: Provider = {
2✔
15
  provide: CacheService,
2✔
16
  inject: [cacheConfig.KEY],
2✔
17
  useFactory: async (config: ICacheConfig) => {
2✔
18
    const { provider, sqlite, redis } = config;
64✔
19

64✔
20
    Logger.log(`[Cache Manager Adapter]: ${provider}`);
64✔
21

64✔
22
    const store = match(provider)
64✔
23
      .with('memory', () => new Map())
64✔
24
      .with('sqlite', () => {
64✔
25
        const uri = sqlite.uri.replace(/^sqlite:\/\//, '');
×
26
        fse.ensureFileSync(uri);
×
27

×
28
        Logger.log(`[Cache Manager File Path]: ${path.resolve(uri)}`);
×
29

×
30
        return new KeyvSqlite({
×
31
          ...sqlite,
×
32
          uri,
×
33
        });
×
34
      })
×
35
      .with('redis', () => new KeyvRedis(redis, { useRedisSets: false }))
64✔
36
      .exhaustive();
64✔
37

64✔
38
    const keyv = new Keyv({ namespace: 'teable_cache', store: store });
64✔
39
    keyv.on('error', (error) => {
64✔
40
      error && Logger.error(error, 'Cache Manager Connection Error');
×
41
    });
×
42

64✔
43
    Logger.log(`[Cache Manager Namespace]: ${keyv.opts.namespace}`);
64✔
44
    return new CacheService(keyv);
64✔
45
  },
64✔
46
};
2✔
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