bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
30 lines (29 loc) • 1.5 kB
TypeScript
import { type em as prototypeEm, FieldPrototype } from "../data/prototype";
import { Entity } from "../data/entities";
import type { EntityIndex, Field } from "../data/fields";
import type { ModuleBuildContext, ModuleBuildContextMcpContext } from "./Module";
import type { EntityRelation } from "../data/relations";
import type { Permission, PermissionContext } from "../auth/authorize/Permission";
export declare class ModuleHelper {
protected ctx: Omit<ModuleBuildContext, "helper">;
constructor(ctx: Omit<ModuleBuildContext, "helper">);
get em(): import("..").EntityManager<import("..").DB>;
get flags(): {
sync_required: boolean;
ctx_reload_required: boolean;
};
ensureEntity(entity: Entity): void;
ensureIndex(index: EntityIndex): void;
ensureRelation(relation: EntityRelation): void;
ensureSchema<Schema extends ReturnType<typeof prototypeEm>>(schema: Schema): Schema;
setEntityFieldConfigs(parent: Field, child: Field, props?: string[]): number;
replaceEntityField(_entity: string | Entity, field: Field | string, _newField: Field | FieldPrototype): void;
granted<P extends Permission<any, any, any, any>>(c: {
context: ModuleBuildContextMcpContext;
raw?: unknown;
}, permission: P, context: PermissionContext<P>): Promise<void>;
granted<P extends Permission<any, any, undefined, any>>(c: {
context: ModuleBuildContextMcpContext;
raw?: unknown;
}, permission: P): Promise<void>;
}