@stacksjs/cache 0.65.0 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drivers/dynamodb.d.ts +1 -1
- package/dist/drivers/filesystem.d.ts +1 -1
- package/dist/drivers/index.d.ts +1 -1
- package/dist/drivers/memory.d.ts +1 -1
- package/dist/drivers/redis.d.ts +1 -1
- package/dist/index.js +161 -164
- package/package.json +4 -6
- package/dist/drivers/type.d.ts +0 -16
- package/dist/index.js.map +0 -571
- package/src/drivers/dynamodb.ts +0 -80
- package/src/drivers/filesystem.ts +0 -66
- package/src/drivers/index.ts +0 -29
- package/src/drivers/memory.ts +0 -66
- package/src/drivers/redis.ts +0 -65
- package/src/drivers/type.ts +0 -17
- package/src/index.ts +0 -2
package/src/drivers/dynamodb.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { CacheDriver } from './type'
|
|
2
|
-
import process from 'node:process'
|
|
3
|
-
import { BentoCache, bentostore } from 'bentocache'
|
|
4
|
-
import { dynamoDbDriver } from 'bentocache/drivers/dynamodb'
|
|
5
|
-
|
|
6
|
-
const awsAccessKeyId = process.env.AWS_ACCESS_KEY_ID || 'dummy'
|
|
7
|
-
const awsSecretAccessKey = process.env.AWS_SECRET_ACCESS_KEY || 'dummy'
|
|
8
|
-
const dynamoEndpoint = process.env.AWS_DYNAMODB_ENDPOINT || 'http://localhost:8000'
|
|
9
|
-
const tableName = process.env.AWS_DYNAMODB_TABLE || 'stacks'
|
|
10
|
-
const region = process.env.AWS_REGION || 'us-east-1'
|
|
11
|
-
|
|
12
|
-
const client = new BentoCache({
|
|
13
|
-
default: 'dynamo',
|
|
14
|
-
stores: {
|
|
15
|
-
dynamo: bentostore().useL2Layer(
|
|
16
|
-
dynamoDbDriver({
|
|
17
|
-
endpoint: dynamoEndpoint,
|
|
18
|
-
region,
|
|
19
|
-
table: {
|
|
20
|
-
name: tableName,
|
|
21
|
-
},
|
|
22
|
-
credentials: {
|
|
23
|
-
accessKeyId: awsAccessKeyId,
|
|
24
|
-
secretAccessKey: awsSecretAccessKey,
|
|
25
|
-
},
|
|
26
|
-
}),
|
|
27
|
-
),
|
|
28
|
-
},
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
export const dynamodb: CacheDriver = {
|
|
32
|
-
async set(key: string, value: string, ttl?: number): Promise<void> {
|
|
33
|
-
await client.set({
|
|
34
|
-
key,
|
|
35
|
-
value,
|
|
36
|
-
gracePeriod: { enabled: true, duration: '5m' },
|
|
37
|
-
})
|
|
38
|
-
},
|
|
39
|
-
async setForever(key: string, value: string, ttl?: number): Promise<void> {
|
|
40
|
-
await client.setForever({
|
|
41
|
-
key,
|
|
42
|
-
value,
|
|
43
|
-
})
|
|
44
|
-
},
|
|
45
|
-
async get(key: string): Promise<string | undefined | null> {
|
|
46
|
-
const items = await client.get<string>(key)
|
|
47
|
-
|
|
48
|
-
return items
|
|
49
|
-
},
|
|
50
|
-
async getOrSet(key: string, value: string): Promise<string | undefined | null> {
|
|
51
|
-
const items = await client.getOrSet(key, () => value)
|
|
52
|
-
|
|
53
|
-
return items
|
|
54
|
-
},
|
|
55
|
-
async del(key: string): Promise<void> {
|
|
56
|
-
await client.delete({ key })
|
|
57
|
-
},
|
|
58
|
-
async deleteMany(keys: string[]): Promise<void> {
|
|
59
|
-
await client.deleteMany({ keys })
|
|
60
|
-
},
|
|
61
|
-
async remove(key: string): Promise<void> {
|
|
62
|
-
await client.delete({ key })
|
|
63
|
-
},
|
|
64
|
-
async has(key: string): Promise<boolean> {
|
|
65
|
-
return await client.has({ key })
|
|
66
|
-
},
|
|
67
|
-
async missing(key: string): Promise<boolean> {
|
|
68
|
-
return await client.missing({ key })
|
|
69
|
-
},
|
|
70
|
-
async deleteAll(): Promise<void> {
|
|
71
|
-
await client.clear()
|
|
72
|
-
},
|
|
73
|
-
async clear(): Promise<void> {
|
|
74
|
-
await client.clear()
|
|
75
|
-
},
|
|
76
|
-
async disconnect(): Promise<void> {
|
|
77
|
-
await client.disconnect()
|
|
78
|
-
},
|
|
79
|
-
client,
|
|
80
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { CacheDriver } from './type'
|
|
2
|
-
import { BentoCache, bentostore } from 'bentocache'
|
|
3
|
-
import { fileDriver } from 'bentocache/drivers/file'
|
|
4
|
-
|
|
5
|
-
const client = new BentoCache({
|
|
6
|
-
default: 'redis',
|
|
7
|
-
stores: {
|
|
8
|
-
redis: bentostore().useL2Layer(
|
|
9
|
-
fileDriver({
|
|
10
|
-
directory: './cache',
|
|
11
|
-
pruneInterval: '1h',
|
|
12
|
-
}),
|
|
13
|
-
),
|
|
14
|
-
},
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
export const fileSystem: CacheDriver = {
|
|
18
|
-
async set(key: string, value: string, ttl?: number): Promise<void> {
|
|
19
|
-
await client.set({
|
|
20
|
-
key,
|
|
21
|
-
value,
|
|
22
|
-
gracePeriod: { enabled: true, duration: '5m' },
|
|
23
|
-
})
|
|
24
|
-
},
|
|
25
|
-
async setForever(key: string, value: string, ttl?: number): Promise<void> {
|
|
26
|
-
await client.setForever({
|
|
27
|
-
key,
|
|
28
|
-
value,
|
|
29
|
-
})
|
|
30
|
-
},
|
|
31
|
-
async get(key: string): Promise<string | undefined | null> {
|
|
32
|
-
const items = await client.get<string>(key)
|
|
33
|
-
|
|
34
|
-
return items
|
|
35
|
-
},
|
|
36
|
-
async getOrSet(key: string, value: string): Promise<string | undefined | null> {
|
|
37
|
-
const items = await client.getOrSet(key, () => value)
|
|
38
|
-
|
|
39
|
-
return items
|
|
40
|
-
},
|
|
41
|
-
async del(key: string): Promise<void> {
|
|
42
|
-
await client.delete({ key })
|
|
43
|
-
},
|
|
44
|
-
async deleteMany(keys: string[]): Promise<void> {
|
|
45
|
-
await client.deleteMany({ keys })
|
|
46
|
-
},
|
|
47
|
-
async remove(key: string): Promise<void> {
|
|
48
|
-
await client.delete({ key })
|
|
49
|
-
},
|
|
50
|
-
async has(key: string): Promise<boolean> {
|
|
51
|
-
return await client.has({ key })
|
|
52
|
-
},
|
|
53
|
-
async missing(key: string): Promise<boolean> {
|
|
54
|
-
return await client.missing({ key })
|
|
55
|
-
},
|
|
56
|
-
async deleteAll(): Promise<void> {
|
|
57
|
-
await client.clear()
|
|
58
|
-
},
|
|
59
|
-
async clear(): Promise<void> {
|
|
60
|
-
await client.clear()
|
|
61
|
-
},
|
|
62
|
-
async disconnect(): Promise<void> {
|
|
63
|
-
await client.disconnect()
|
|
64
|
-
},
|
|
65
|
-
client,
|
|
66
|
-
}
|
package/src/drivers/index.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { CacheDriver } from './type'
|
|
2
|
-
import { config } from '@stacksjs/config'
|
|
3
|
-
import { dynamodb } from './dynamodb'
|
|
4
|
-
import { fileSystem } from './filesystem'
|
|
5
|
-
import { memory } from './memory'
|
|
6
|
-
|
|
7
|
-
import { redis } from './redis'
|
|
8
|
-
|
|
9
|
-
const driver = config.cache.driver || 'memory'
|
|
10
|
-
|
|
11
|
-
let driverInstance = fileSystem
|
|
12
|
-
|
|
13
|
-
if (driver === 'redis') {
|
|
14
|
-
driverInstance = redis
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (driver === 'fileSystem') {
|
|
18
|
-
driverInstance = fileSystem
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (driver === 'memory') {
|
|
22
|
-
driverInstance = memory
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (driver === 'dynamodb') {
|
|
26
|
-
driverInstance = dynamodb
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export const cache: CacheDriver = driverInstance
|
package/src/drivers/memory.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { CacheDriver } from './type'
|
|
2
|
-
import { BentoCache, bentostore } from 'bentocache'
|
|
3
|
-
import { memoryDriver } from 'bentocache/drivers/memory'
|
|
4
|
-
|
|
5
|
-
const client = new BentoCache({
|
|
6
|
-
default: 'memory',
|
|
7
|
-
stores: {
|
|
8
|
-
memory: bentostore().useL1Layer(
|
|
9
|
-
memoryDriver({
|
|
10
|
-
maxSize: 10 * 1024 * 1024,
|
|
11
|
-
maxItems: 1000,
|
|
12
|
-
}),
|
|
13
|
-
),
|
|
14
|
-
},
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
export const memory: CacheDriver = {
|
|
18
|
-
async set(key: string, value: string, ttl?: number): Promise<void> {
|
|
19
|
-
await client.set({
|
|
20
|
-
key,
|
|
21
|
-
value,
|
|
22
|
-
gracePeriod: { enabled: true, duration: '5m' },
|
|
23
|
-
})
|
|
24
|
-
},
|
|
25
|
-
async setForever(key: string, value: string, ttl?: number): Promise<void> {
|
|
26
|
-
await client.setForever({
|
|
27
|
-
key,
|
|
28
|
-
value,
|
|
29
|
-
})
|
|
30
|
-
},
|
|
31
|
-
async get(key: string): Promise<string | undefined | null> {
|
|
32
|
-
const items = await client.get<string>(key)
|
|
33
|
-
|
|
34
|
-
return items
|
|
35
|
-
},
|
|
36
|
-
async getOrSet(key: string, value: string): Promise<string | undefined | null> {
|
|
37
|
-
const items = await client.getOrSet(key, () => value)
|
|
38
|
-
|
|
39
|
-
return items
|
|
40
|
-
},
|
|
41
|
-
async del(key: string): Promise<void> {
|
|
42
|
-
await client.delete({ key })
|
|
43
|
-
},
|
|
44
|
-
async deleteMany(keys: string[]): Promise<void> {
|
|
45
|
-
await client.deleteMany({ keys })
|
|
46
|
-
},
|
|
47
|
-
async remove(key: string): Promise<void> {
|
|
48
|
-
await client.delete({ key })
|
|
49
|
-
},
|
|
50
|
-
async has(key: string): Promise<boolean> {
|
|
51
|
-
return await client.has({ key })
|
|
52
|
-
},
|
|
53
|
-
async missing(key: string): Promise<boolean> {
|
|
54
|
-
return await client.missing({ key })
|
|
55
|
-
},
|
|
56
|
-
async deleteAll(): Promise<void> {
|
|
57
|
-
await client.clear()
|
|
58
|
-
},
|
|
59
|
-
async clear(): Promise<void> {
|
|
60
|
-
await client.clear()
|
|
61
|
-
},
|
|
62
|
-
async disconnect(): Promise<void> {
|
|
63
|
-
await client.disconnect()
|
|
64
|
-
},
|
|
65
|
-
client,
|
|
66
|
-
}
|
package/src/drivers/redis.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { CacheDriver } from './type'
|
|
2
|
-
import { BentoCache, bentostore } from 'bentocache'
|
|
3
|
-
import { redisDriver } from 'bentocache/drivers/redis'
|
|
4
|
-
|
|
5
|
-
const client = new BentoCache({
|
|
6
|
-
default: 'redis',
|
|
7
|
-
stores: {
|
|
8
|
-
redis: bentostore().useL2Layer(
|
|
9
|
-
redisDriver({
|
|
10
|
-
connection: { host: '127.0.0.1', port: 6379 },
|
|
11
|
-
}),
|
|
12
|
-
),
|
|
13
|
-
},
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
export const redis: CacheDriver = {
|
|
17
|
-
async set(key: string, value: string, ttl?: number): Promise<void> {
|
|
18
|
-
await client.set({
|
|
19
|
-
key,
|
|
20
|
-
value,
|
|
21
|
-
gracePeriod: { enabled: true, duration: '5m' },
|
|
22
|
-
})
|
|
23
|
-
},
|
|
24
|
-
async setForever(key: string, value: string, ttl?: number): Promise<void> {
|
|
25
|
-
await client.setForever({
|
|
26
|
-
key,
|
|
27
|
-
value,
|
|
28
|
-
})
|
|
29
|
-
},
|
|
30
|
-
async get(key: string): Promise<string | undefined | null> {
|
|
31
|
-
const items = await client.get<string>(key)
|
|
32
|
-
|
|
33
|
-
return items
|
|
34
|
-
},
|
|
35
|
-
async getOrSet(key: string, value: string): Promise<string | undefined | null> {
|
|
36
|
-
const items = await client.getOrSet(key, () => value)
|
|
37
|
-
|
|
38
|
-
return items
|
|
39
|
-
},
|
|
40
|
-
async del(key: string): Promise<void> {
|
|
41
|
-
await client.delete({ key })
|
|
42
|
-
},
|
|
43
|
-
async deleteMany(keys: string[]): Promise<void> {
|
|
44
|
-
await client.deleteMany({ keys })
|
|
45
|
-
},
|
|
46
|
-
async remove(key: string): Promise<void> {
|
|
47
|
-
await client.delete({ key })
|
|
48
|
-
},
|
|
49
|
-
async has(key: string): Promise<boolean> {
|
|
50
|
-
return await client.has({ key })
|
|
51
|
-
},
|
|
52
|
-
async missing(key: string): Promise<boolean> {
|
|
53
|
-
return await client.missing({ key })
|
|
54
|
-
},
|
|
55
|
-
async deleteAll(): Promise<void> {
|
|
56
|
-
await client.clear()
|
|
57
|
-
},
|
|
58
|
-
async clear(): Promise<void> {
|
|
59
|
-
await client.clear()
|
|
60
|
-
},
|
|
61
|
-
async disconnect(): Promise<void> {
|
|
62
|
-
await client.disconnect()
|
|
63
|
-
},
|
|
64
|
-
client,
|
|
65
|
-
}
|
package/src/drivers/type.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { BentoCache } from 'bentocache'
|
|
2
|
-
|
|
3
|
-
export interface CacheDriver {
|
|
4
|
-
set: (key: string, value: string, ttl?: number) => Promise<void>
|
|
5
|
-
setForever: (key: string, value: string, ttl?: number) => Promise<void>
|
|
6
|
-
get: (key: string) => Promise<string | undefined | null>
|
|
7
|
-
getOrSet: (key: string, value: string) => Promise<string | undefined | null>
|
|
8
|
-
remove: (key: string) => Promise<void>
|
|
9
|
-
has: (key: string) => Promise<boolean>
|
|
10
|
-
missing: (key: string) => Promise<boolean>
|
|
11
|
-
del: (key: string) => Promise<void>
|
|
12
|
-
deleteMany: (keys: string[]) => Promise<void>
|
|
13
|
-
clear: () => Promise<void>
|
|
14
|
-
deleteAll: () => Promise<void>
|
|
15
|
-
disconnect: () => Promise<void>
|
|
16
|
-
client: BentoCache<Record<string, any>>
|
|
17
|
-
}
|
package/src/index.ts
DELETED