UNPKG

updraft

Version:

Javascript ORM-like storage in SQLite (WebSQL or other), synced to the cloud

61 lines (50 loc) 1.54 kB
namespace Updraft { export interface Rejector { (err: Error): void; } export interface DbStatement { sql: string; params?: (string | number)[]; } export function DbExecuteSequence(transaction: DbTransaction, statements: DbStatement[], nextCallback: DbTransactionCallback) { let i = 0; let act = (tx: DbTransaction): void => { if (i < statements.length) { let which = statements[i]; i++; tx.executeSql(which.sql, which.params, act); } else { nextCallback(tx); } }; act(transaction); } export interface DbErrorCallback { (error: Error): void; } export interface DbWrapper { transaction(callback: DbTransactionCallback, errorCallback: DbErrorCallback): void; readTransaction(callback: DbTransactionCallback, errorCallback: DbErrorCallback): void; } export interface DbTransactionCallback { (transaction: DbTransaction): void; } export interface DbCommitCallback { (): void; } export interface DbTransaction { executeSql(sql: string, params: (string | number)[], callback: DbResultsCallback): void; each(sql: string, params: (string | number)[], callback: DbEachResultCallback, final: DbTransactionCallback): void; commit(callback: DbCommitCallback): void; } export interface DbResultsCallback { (transaction: DbTransaction, results: any[]): void; } export interface DbEachResultCallback { (transaction: DbTransaction, result: any): void; } export interface DbCallback<Result> { (transaction: DbTransaction, result: Result): void; } }