0.1.129 • Published 1 year ago

socket-cache v0.1.129

Weekly downloads
52
License
MIT
Repository
github
Last release
1 year ago

Socket Cache

Blazing fast HTTP network socket caching library for NodeJS

Coverage Status Github Build Status NPM version Downloads Snyk

Usage

Create inmemory cache

// cache.js
import { cache } from 'socket-cache';

interface CacheKey {
  id: string | undefined;
  expiresIn: number;
}

interface CacheValue {
  value: Buffer[];
  expiresAt: number;
}

const storage = new Map<string, CacheValue>();

export default createCache<CacheKey>({
  mapToKey: ({ url }) => ({ id: url, expiresIn: 1000 }),
  set(key, value) {
    if (key.id) {
      const expiresAt = Date.now() + key.expiresIn;
      storage.set(key.id, { value, expiresAt });
    }
  },
  get(key) {
    if (key.id && storage.has(key.id)) {
      const { value, expiresAt } = storage.get(key.id);
      if (expiresAt > Date.now()) {
        return value;
      }
      storage.delete(key.id);
    }
    return null;
  }
});

Cached server

import http from 'http';
import cache from './cache';

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  const isCached = await cache(req, res);
  if (!isCached) {
    next();
  } else {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end(`Hello World ${new Date()}`);
  }
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

License

License The MIT License Copyright (c) 2023 Ivan Zakharchanka

0.1.129

1 year ago

0.1.128

1 year ago

0.1.125

1 year ago

0.1.127

1 year ago

0.1.126

1 year ago

0.1.124

1 year ago

0.1.123

1 year ago

0.1.122

1 year ago

0.1.121

1 year ago

0.1.120

1 year ago

0.1.119

1 year ago

0.1.118

1 year ago

0.1.117

1 year ago

0.1.116

1 year ago

0.1.115

1 year ago

0.1.114

1 year ago

0.1.113

1 year ago

0.1.112

1 year ago

0.1.111

1 year ago

0.1.110

1 year ago

0.1.109

1 year ago

0.1.108

1 year ago

0.1.107

1 year ago

0.1.106

1 year ago

0.1.105

1 year ago

0.1.104

1 year ago

0.1.103

1 year ago

0.1.102

1 year ago

0.1.101

1 year ago

0.1.100

1 year ago

0.1.99

1 year ago

0.1.98

1 year ago

0.1.96

1 year ago

0.1.97

1 year ago

0.1.95

1 year ago

0.1.94

1 year ago

0.1.93

1 year ago

0.1.92

1 year ago

0.1.91

1 year ago

0.1.90

1 year ago

0.1.89

1 year ago

0.1.87

1 year ago

0.1.88

1 year ago

0.1.86

1 year ago

0.1.85

1 year ago

0.1.84

1 year ago

0.1.83

1 year ago

0.1.82

1 year ago

0.1.81

2 years ago

0.1.80

2 years ago

0.1.74

2 years ago

0.1.75

2 years ago

0.1.76

2 years ago

0.1.77

2 years ago

0.1.78

2 years ago

0.1.79

2 years ago

0.1.70

2 years ago

0.1.71

2 years ago

0.1.72

2 years ago

0.1.73

2 years ago

0.1.64

2 years ago

0.1.65

2 years ago

0.1.66

2 years ago

0.1.67

2 years ago

0.1.68

2 years ago

0.1.69

2 years ago

0.1.53

2 years ago

0.1.54

2 years ago

0.1.55

2 years ago

0.1.56

2 years ago

0.1.57

2 years ago

0.1.58

2 years ago

0.1.59

2 years ago

0.1.63

2 years ago

0.1.60

2 years ago

0.1.61

2 years ago

0.1.62

2 years ago

0.1.52

2 years ago

0.1.50

2 years ago

0.1.51

2 years ago

0.1.49

2 years ago

0.1.41

2 years ago

0.1.42

2 years ago

0.1.43

2 years ago

0.1.44

2 years ago

0.1.45

2 years ago

0.1.46

2 years ago

0.1.47

2 years ago

0.1.48

2 years ago

0.1.40

2 years ago

0.1.38

2 years ago

0.1.39

2 years ago

0.1.30

2 years ago

0.1.31

2 years ago

0.1.32

2 years ago

0.1.33

2 years ago

0.1.34

2 years ago

0.1.35

2 years ago

0.1.36

2 years ago

0.1.37

2 years ago

0.1.27

2 years ago

0.1.28

2 years ago

0.1.29

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.1.23

2 years ago

0.1.24

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.16

2 years ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.1

4 years ago