Skip to content

Commit 7613081

Browse files
committed
chore: add server playground
1 parent d0024dd commit 7613081

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

playground/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"type": "module",
44
"private": true,
55
"scripts": {
6-
"start": "cross-env NODE_NO_WARNINGS=1 node --loader ts-node/esm src/index.ts"
6+
"start": "cross-env NODE_NO_WARNINGS=1 node --loader ts-node/esm src/index.ts",
7+
"start-server": "cross-env NODE_NO_WARNINGS=1 node --loader ts-node/esm src/server.ts"
78
},
89
"dependencies": {
910
"@aws-sdk/client-dynamodb": "^3.658.1",

playground/src/server.ts

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { createServer } from 'node:http'
2+
import { setTimeout } from 'node:timers/promises'
3+
import { BentoCache, bentostore } from 'bentocache'
4+
import { redisDriver } from 'bentocache/drivers/redis'
5+
6+
const bento = new BentoCache({
7+
default: 'redis',
8+
stores: {
9+
redis: bentostore().useL2Layer(redisDriver({ connection: { host: '127.0.0.1', port: 6379 } })),
10+
},
11+
})
12+
13+
function getCachedValue() {
14+
return bento.getOrSet({
15+
key: 'foo',
16+
factory: async () => {
17+
await setTimeout(1000)
18+
return 'bar'
19+
},
20+
ttl: '4s',
21+
})
22+
}
23+
24+
const server = createServer(async (_req, res) => {
25+
res.writeHead(200, { 'Content-Type': 'application/json' })
26+
27+
const value = await getCachedValue()
28+
res.end(JSON.stringify(value))
29+
})
30+
31+
server.listen(8042, () => {
32+
console.log('Listening on http://localhost:8042')
33+
})

0 commit comments

Comments
 (0)