baseflow-local-client
Version:
Official TypeScript/JavaScript client for BaseFlow Local - a local-first BaaS with SQLite database, authentication, file storage, and real-time features
118 lines • 3.95 kB
TypeScript
import { BaseFlowLocalClient } from './client';
import { BaseFlowResponse, LocalBuilder, LocalFilterBuilder, LocalQueryBuilder } from './types';
/**
* A thenable class that represents a BaseFlow Local request.
*/
export declare class LocalRequestBuilder<T = any> implements LocalBuilder<T> {
protected client: BaseFlowLocalClient;
protected table: string;
protected method: string;
protected path: string;
protected params: Record<string, any>;
protected body: any;
protected headers: Record<string, string>;
protected idFilter: any;
protected isSingle: boolean;
constructor(client: BaseFlowLocalClient, table: string);
/**
* Executes the request and returns a promise that resolves with the response.
*/
then<TResult1 = BaseFlowResponse<T>, TResult2 = never>(onfulfilled?: ((value: BaseFlowResponse<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
}
/**
* A builder for creating filters.
*/
export declare class LocalFilterBuilderImpl<T = any> extends LocalRequestBuilder<T> implements LocalFilterBuilder<T> {
/**
* Adds an 'equals' filter to the query.
*/
eq(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'not equals' filter to the query.
*/
neq(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'greater than' filter to the query.
*/
gt(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'greater than or equal to' filter to the query.
*/
gte(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'less than' filter to the query.
*/
lt(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'less than or equal to' filter to the query.
*/
lte(column: keyof T, value: any): LocalFilterBuilder<T>;
/**
* Adds a 'like' filter to the query.
*/
like(column: keyof T, pattern: string): LocalFilterBuilder<T>;
/**
* Adds a 'case-insensitive like' filter to the query.
*/
ilike(column: keyof T, pattern: string): LocalFilterBuilder<T>;
/**
* Adds an 'is' filter to the query.
*/
is(column: keyof T, value: null | boolean): LocalFilterBuilder<T>;
/**
* Adds an 'in' filter to the query.
*/
in(column: keyof T, values: any[]): LocalFilterBuilder<T>;
/**
* Adds a 'match' filter to the query.
*/
match(query: Record<keyof T, any>): LocalFilterBuilder<T>;
/**
* Adds a filter to the query.
*/
filter(column: keyof T, operator: string, value: any): LocalFilterBuilder<T>;
}
/**
* A builder for creating queries.
*/
export declare class LocalQueryBuilderImpl<T = any> extends LocalFilterBuilderImpl<T> implements LocalQueryBuilder<T> {
/**
* Specifies the columns to select.
*/
select(columns?: string): LocalQueryBuilder<T>;
/**
* Inserts data into the table.
*/
insert(data: Partial<T> | Partial<T>[]): LocalRequestBuilder<T>;
/**
* Updates data in the table.
*/
update(data: Partial<T>): LocalFilterBuilder<T>;
/**
* Deletes data from the table.
*/
delete(): LocalFilterBuilder<T>;
/**
* Adds an 'order by' clause to the query.
*/
order(column: keyof T, options?: {
ascending?: boolean;
}): LocalQueryBuilder<T>;
/**
* Limits the number of rows returned.
*/
limit(count: number): LocalQueryBuilder<T>;
/**
* Skips a number of rows.
*/
offset(count: number): LocalQueryBuilder<T>;
/**
* Specifies a range of rows to return.
*/
range(from: number, to: number): LocalQueryBuilder<T>;
/**
* Returns a single row from the query.
*/
single(): LocalFilterBuilder<T>;
}
//# sourceMappingURL=query-builder.d.ts.map