# SessionStore

#### Default functions

```typescript
abstract create(session: T): void | Promise<void>;
abstract update(sid: string, patch: Partial<T>): void | Promise<void>;
abstract delete(sid: string): void | Promise<void>;
abstract get(sid: string): (T | null) | Promise<T | null>;

revoke = async(sid: string) =>
{
    await this.update(sid, {valid: false} as Partial<T>);
}
```

#### Creating custom store

```typescript
// Some session class
class MySession extends SessionCore
{
    public someValue: any;
    constructor(user: string, someValue: any)
    {
        super(user);
        this.someValue = someValue;
    }
};

// Store class
class MyStore extends SessionStore<MySession>
{
    public create = (session: MySession): void | Promise<void> => 
    {
        // Some code
    }
    public update = (sid: string, patch: Partial<MySession>): void | Promise<void> => 
    {
        // Some code
    }
    public delete = (sid: string): void | Promise<void> =>
    {
        // Some code
    }
    public get = (sid: string): MySession | Promise<MySession | null> | null =>
    {
        // Some code
    }
};
```
