studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
277 lines (276 loc) • 9.63 kB
TypeScript
import { LibSQLClientError } from '@withstudiocms/effect/drizzle';
import * as s from 'drizzle-orm/sqlite-core';
import { Effect } from 'effect';
export { LibSQLClientError } from '@withstudiocms/effect/drizzle';
export declare const Users: s.SQLiteTableWithColumns<{
name: "StudioCMSUsers";
schema: undefined;
columns: {
id: s.SQLiteColumn<{
name: "id";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: true;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
url: s.SQLiteColumn<{
name: "url";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
name: s.SQLiteColumn<{
name: "name";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
email: s.SQLiteColumn<{
name: "email";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
avatar: s.SQLiteColumn<{
name: "avatar";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: true;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
username: s.SQLiteColumn<{
name: "username";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
password: s.SQLiteColumn<{
name: "password";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
updatedAt: s.SQLiteColumn<{
name: "updatedAt";
tableName: "StudioCMSUsers";
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
createdAt: s.SQLiteColumn<{
name: "createdAt";
tableName: "StudioCMSUsers";
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
emailVerified: s.SQLiteColumn<{
name: "emailVerified";
tableName: "StudioCMSUsers";
dataType: "boolean";
columnType: "SQLiteBoolean";
data: boolean;
driverParam: number;
notNull: true;
hasDefault: true;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
notifications: s.SQLiteColumn<{
name: "notifications";
tableName: "StudioCMSUsers";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
};
dialect: "sqlite";
}>;
export declare const Permissions: s.SQLiteTableWithColumns<{
name: "StudioCMSPermissions";
schema: undefined;
columns: {
user: s.SQLiteColumn<{
name: "user";
tableName: "StudioCMSPermissions";
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
rank: s.SQLiteColumn<{
name: "rank";
tableName: "StudioCMSPermissions";
dataType: "string";
columnType: "SQLiteText";
data: "unknown" | "owner" | "admin" | "editor" | "visitor";
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: ["owner", "admin", "editor", "visitor", "unknown"];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
};
dialect: "sqlite";
}>;
/**
* Creates a Drizzle client for a LibSQL database and provides utility functions for executing queries.
*
* @param url - The URL of the LibSQL database.
* @param authToken - The authentication token for the LibSQL database.
* @returns An object containing:
* - `execute`: A function to execute a query with error handling, wrapping the result in an Effect.
* - `makeQuery`: A higher-order function to create typed query functions that can optionally use a transaction context.
*
* @example
* const { execute, makeQuery } = yield* libSQLDrizzleClient(url, authToken);
* const result = yield* execute((db) => db.select(...));
*/
export declare const libSQLDrizzleClient: (url: string, authToken: string) => Effect.Effect<{
execute: <T>(fn: (client: import("drizzle-orm/libsql").LibSQLDatabase<Record<string, never>> | import("@astrojs/db/runtime").Database) => Promise<T>) => Effect.Effect<T, LibSQLClientError, never>;
makeQuery: <A, E, R, Input = never>(queryFn: (execute: import("@withstudiocms/effect/drizzle").ExecuteFn<Record<string, unknown>>, input: Input) => Effect.Effect<A, E, R>) => (...args: [Input] extends [never] ? [] : [input: Input]) => Effect.Effect<A, E, R>;
}, LibSQLClientError, never>;