1.1.13 • Published 5 months ago

aragami v1.1.13

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

Aragami

Another cache ORM.

Use

const aragami = new Aragami({
  // Defaults to memory store, but to specify redis property you may use Redis store.
  redis: {
    url: 'redis://localhost:6379',
  }
});

@CachePrefix('user')
@CacheTTL(30000)
class User {
  @CacheKey() // Required. To cache with key of this field. Put a function inside to transform.
  @LockKey() // Specifies a key for lock.
  name: string;
  @LockKey() // Multiple lock keys can be specified.
  age: string;
}

async function main() {
  const user = new User();
  user.name = 'John';
  user.age = '30';
  await aragami.set(user); // Set with specific object.
  const user2 = await aragami.get(User, 'John');
  const keys = await aragami.keys(User);
  const values = await aragami.values(User);
  const entries = await aragami.entries(User);
  await aragami.delete(user2);
  await aragami.clear(User);

  // use cache
  const userOfCache = await aragami.cache(User, 'John', () => database.get('John'));
  
  // wraps a function with cache.
  const readUser = aragami.wrap(
    User, 
    (name: string) => database.get(name), // For data fetching
    (name) => name, // Specify cache key.
  );
  const userFromCache = await readUser('John');

  // use lock
  await aragami.lock([
    user, // can be object
    'John', // or string
  ], () => database.save(user))
  
  // wraps a function with lock.
  const saveUser = aragami.useLock(
    (user: User) => database.save(user), // Lock process
    (user) => [user], // Specify lock key. Can be an array.
  )
  await saveUser(user);
}
1.1.12

5 months ago

1.1.11

5 months ago

1.1.13

5 months ago

1.1.9

8 months ago

1.1.10

7 months ago

1.1.8

12 months ago

1.1.7

12 months ago

1.1.6

12 months ago

1.1.5

12 months ago

1.1.4

12 months ago

1.1.3

1 year ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago