bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
79 lines (78 loc) • 5.75 kB
TypeScript
import { ManyToManyRelation, type ManyToManyRelationConfig } from "./ManyToManyRelation";
import { ManyToOneRelation, type ManyToOneRelationConfig } from "./ManyToOneRelation";
import { OneToOneRelation, type OneToOneRelationConfig } from "./OneToOneRelation";
import { PolymorphicRelation, type PolymorphicRelationConfig } from "./PolymorphicRelation";
import { type RelationType, RelationTypes } from "./relation-types";
export * from "./EntityRelation";
export * from "./EntityRelationAnchor";
export * from "./RelationHelper";
export * from "./RelationMutator";
export * from "./RelationAccessor";
import { RelationField, type RelationFieldBaseConfig, type RelationFieldConfig, relationFieldConfigSchema } from "./RelationField";
export { OneToOneRelation, type OneToOneRelationConfig, ManyToOneRelation, type ManyToOneRelationConfig, ManyToManyRelation, type ManyToManyRelationConfig, PolymorphicRelation, type PolymorphicRelationConfig, RelationTypes, type RelationType, RelationField, relationFieldConfigSchema, type RelationFieldBaseConfig, type RelationFieldConfig, };
export declare const RelationClassMap: {
readonly "1:1": {
readonly schema: import("@sinclair/typebox").TObject<{
required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
sourceCardinality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
with_limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
fieldConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
label: import("@sinclair/typebox").TString;
}>>;
}>;
readonly cls: typeof OneToOneRelation;
};
readonly "n:1": {
readonly schema: import("@sinclair/typebox").TObject<{
required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
sourceCardinality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
with_limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
fieldConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
label: import("@sinclair/typebox").TString;
}>>;
}>;
readonly cls: typeof ManyToOneRelation;
};
readonly "m:n": {
readonly schema: import("@sinclair/typebox").TObject<{
required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
connectionTable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
connectionTableMappedName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
readonly cls: typeof ManyToManyRelation;
};
readonly poly: {
readonly schema: import("@sinclair/typebox").TObject<{
required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
targetCardinality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>;
readonly cls: typeof PolymorphicRelation;
};
};
export declare const RelationFieldClassMap: {
readonly relation: {
readonly schema: import("@sinclair/typebox").TObject<{
default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
reference: import("@sinclair/typebox").TString;
target: import("@sinclair/typebox").TString;
target_field: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
target_field_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"text" | "integer">>;
on_delete: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
}>;
readonly field: typeof RelationField;
};
};