mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) move home server into core
Summary: This moves enough server material into core to run a home server. The data engine is not yet incorporated (though in manual testing it works when ported). Test Plan: existing tests pass Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2552
This commit is contained in:
71
stubs/app/server/declarations.d.ts
vendored
Normal file
71
stubs/app/server/declarations.d.ts
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
// Copy official sqlite3 types to apply to @gristlabs/sqlite3.
|
||||
declare module "@gristlabs/sqlite3" {
|
||||
export * from 'sqlite3';
|
||||
|
||||
// Add minimal typings for sqlite backup api.
|
||||
// TODO: remove this once the type definitions are updated upstream.
|
||||
import {Database} from 'sqlite3';
|
||||
export class Backup {
|
||||
public readonly remaining: number;
|
||||
public readonly pageCount: number;
|
||||
public readonly idle: boolean;
|
||||
public readonly completed: boolean;
|
||||
public readonly failed: boolean;
|
||||
public step(pages: number, callback?: (err: Error|null) => void): void;
|
||||
}
|
||||
export class DatabaseWithBackup extends Database {
|
||||
public backup(filename: string, callback?: (err: Error|null) => void): Backup;
|
||||
public backup(filename: string, destDbName: 'main', srcDbName: 'main',
|
||||
filenameIsDest: boolean, callback?: (err: Error|null) => void): Backup;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Add declarations of the promisified methods of redis.
|
||||
// This is not exhaustive, there are a *lot* of methods.
|
||||
|
||||
declare module "redis" {
|
||||
function createClient(url?: string): RedisClient;
|
||||
|
||||
class RedisClient {
|
||||
public eval(args: any[], callback?: (err: Error | null, res: any) => void): any;
|
||||
|
||||
public delAsync(key: string): Promise<'OK'>;
|
||||
public flushdbAsync(): Promise<void>;
|
||||
public getAsync(key: string): Promise<string|null>;
|
||||
public hdelAsync(key: string, field: string): Promise<number>;
|
||||
public hgetallAsync(key: string): Promise<{[field: string]: any}|null>;
|
||||
public hkeysAsync(key: string): Promise<string[]|null>;
|
||||
public hmsetAsync(key: string, val: {[field: string]: any}): Promise<'OK'>;
|
||||
public hsetAsync(key: string, field: string, val: string): Promise<1|0>;
|
||||
public keysAsync(pattern: string): Promise<string[]>;
|
||||
public multi(): Multi;
|
||||
public quitAsync(): Promise<void>;
|
||||
public saddAsync(key: string, val: string): Promise<'OK'>;
|
||||
public selectAsync(db: number): Promise<void>;
|
||||
public setAsync(key: string, val: string): Promise<'OK'>;
|
||||
public setexAsync(key: string, ttl: number, val: string): Promise<'OK'>;
|
||||
public sismemberAsync(key: string, val: string): Promise<0|1>;
|
||||
public smembersAsync(key: string): Promise<string[]>;
|
||||
public srandmemberAsync(key: string): Promise<string|null>;
|
||||
public sremAsync(key: string, val: string): Promise<'OK'>;
|
||||
public ttlAsync(key: string): Promise<number|null>;
|
||||
public unwatchAsync(): Promise<'OK'>;
|
||||
public watchAsync(key: string): Promise<void>;
|
||||
}
|
||||
|
||||
class Multi {
|
||||
public del(key: string): Multi;
|
||||
public execAsync(): Promise<any[]|null>;
|
||||
public get(key: string): Multi;
|
||||
public hgetall(key: string): Multi;
|
||||
public hmset(key: string, val: {[field: string]: any}): Multi;
|
||||
public hset(key: string, field: string, val: string): Multi;
|
||||
public sadd(key: string, val: string): Multi;
|
||||
public set(key: string, val: string): Multi;
|
||||
public setex(key: string, ttl: number, val: string): Multi;
|
||||
public smembers(key: string): Multi;
|
||||
public srandmember(key: string): Multi;
|
||||
public srem(key: string, val: string): Multi;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user