refactor/imports (#217)

* refactored core and core/utils imports

* refactored core and core/utils imports

* refactored media imports

* refactored auth imports

* refactored data imports

* updated package json exports, fixed mm config

* fix tests
This commit is contained in:
dswbx
2025-07-22 20:17:11 +02:00
committed by GitHub
parent 1ec3ba0e92
commit ca55503e66
214 changed files with 680 additions and 791 deletions
+6 -9
View File
@@ -1,19 +1,16 @@
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
import { Guard } from "../../src/auth";
import { parse } from "bknd/core";
import {
Entity,
type EntityData,
EntityManager,
ManyToOneRelation,
TextField,
} from "../../src/data";
import { Guard } from "../../src/auth/authorize/Guard";
import { parse } from "core/utils/schema";
import { DataController } from "../../src/data/api/DataController";
import { dataConfigSchema } from "../../src/data/data-schema";
import { disableConsoleLog, enableConsoleLog, getDummyConnection } from "../helper";
import type { RepositoryResultJSON } from "data/entities/query/RepositoryResult";
import type { MutatorResultJSON } from "data/entities/mutation/MutatorResult";
import { Entity, EntityManager, type EntityData } from "data/entities";
import { TextField } from "data/fields";
import { ManyToOneRelation } from "data/relations";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
beforeAll(() => disableConsoleLog(["log", "warn"]));
+2 -8
View File
@@ -1,12 +1,6 @@
import { afterAll, describe, expect, test } from "bun:test";
import {
Entity,
EntityManager,
NumberField,
PrimaryField,
Repository,
TextField,
} from "../../src/data";
import { Entity, EntityManager } from "data/entities";
import { TextField, PrimaryField, NumberField } from "data/fields";
import { getDummyConnection } from "./helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+1 -1
View File
@@ -2,7 +2,7 @@ import { unlink } from "node:fs/promises";
import type { SqliteDatabase } from "kysely";
// @ts-ignore
import Database from "libsql";
import { SqliteLocalConnection } from "../../src/data";
import { SqliteLocalConnection } from "data/connection/sqlite/SqliteLocalConnection";
export function getDummyDatabase(memory: boolean = true): {
dummyDb: SqliteDatabase;
+5 -8
View File
@@ -1,13 +1,10 @@
// eslint-disable-next-line import/no-unresolved
import { afterAll, describe, expect, test } from "bun:test";
import {
Entity,
EntityManager,
ManyToOneRelation,
NumberField,
SchemaManager,
TextField,
} from "../../src/data";
import { Entity } from "data/entities";
import { EntityManager } from "data/entities/EntityManager";
import { ManyToOneRelation } from "data/relations";
import { NumberField, TextField } from "data/fields";
import { SchemaManager } from "data/schema/SchemaManager";
import { getDummyConnection } from "./helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+3 -2
View File
@@ -1,7 +1,8 @@
// eslint-disable-next-line import/no-unresolved
import { afterAll, describe, expect, test } from "bun:test";
import { Entity, EntityManager, Mutator, NumberField, TextField } from "../../src/data";
import { TransformPersistFailedException } from "../../src/data/errors";
import { Entity, EntityManager } from "data/entities";
import { NumberField, TextField } from "data/fields";
import { TransformPersistFailedException } from "data/errors";
import { getDummyConnection } from "./helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+4 -2
View File
@@ -1,6 +1,8 @@
import { afterAll, expect as bunExpect, describe, test } from "bun:test";
import { stripMark } from "bknd/core";
import { Entity, EntityManager, PolymorphicRelation, TextField } from "../../src/data";
import { stripMark } from "core/utils/schema";
import { Entity, EntityManager } from "data/entities";
import { TextField } from "data/fields";
import { PolymorphicRelation } from "data/relations";
import { getDummyConnection } from "./helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+12 -11
View File
@@ -2,19 +2,20 @@ import { describe, expect, test } from "bun:test";
import {
BooleanField,
DateField,
Entity,
EntityIndex,
EntityManager,
EnumField,
JsonField,
NumberField,
TextField,
EntityIndex,
} from "data/fields";
import { Entity, EntityManager } from "data/entities";
import {
ManyToManyRelation,
ManyToOneRelation,
NumberField,
OneToOneRelation,
PolymorphicRelation,
TextField,
} from "../../src/data";
import { DummyConnection } from "../../src/data/connection/DummyConnection";
} from "data/relations";
import { DummyConnection } from "data/connection/DummyConnection";
import {
FieldPrototype,
type FieldSchema,
@@ -32,8 +33,8 @@ import {
number,
relation,
text,
} from "../../src/data/prototype";
import { MediaField } from "../../src/media/MediaField";
} from "data/prototype";
import { MediaField } from "media/MediaField";
describe("prototype", () => {
test("...", () => {
@@ -296,9 +297,9 @@ describe("prototype", () => {
new Entity("posts", [new TextField("name"), new TextField("slug", { required: true })]),
new Entity("comments", [new TextField("some")]),
new Entity("users", [new TextField("email")]),
];
] as const;
const _em2 = new EntityManager(
es,
[...es],
new DummyConnection(),
[new ManyToOneRelation(es[0], es[1]), new ManyToOneRelation(es[0], es[2])],
[
+11 -10
View File
@@ -1,13 +1,14 @@
// eslint-disable-next-line import/no-unresolved
import { afterAll, describe, expect, test } from "bun:test";
import { Entity, EntityManager, TextField } from "../../src/data";
import { Entity, EntityManager } from "data/entities";
import { TextField } from "data/fields";
import {
ManyToManyRelation,
ManyToOneRelation,
OneToOneRelation,
PolymorphicRelation,
RelationField,
} from "../../src/data/relations";
} from "data/relations";
import { getDummyConnection } from "./helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
@@ -77,7 +78,7 @@ describe("Relations", async () => {
const em = new EntityManager(entities, dummyConnection, relations);
// verify naming
const rel = em.relations.all[0];
const rel = em.relations.all[0]!;
expect(rel.source.entity.name).toBe(posts.name);
expect(rel.source.reference).toBe(posts.name);
expect(rel.target.entity.name).toBe(users.name);
@@ -89,11 +90,11 @@ describe("Relations", async () => {
// verify low level relation
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name)[0].source.entity).toBe(posts);
expect(em.relationsOf(users.name)[0]!.source.entity).toBe(posts);
expect(posts.field("author_id")).toBeInstanceOf(RelationField);
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name)[0].source.entity).toBe(posts);
expect(em.relationsOf(users.name)[0]!.source.entity).toBe(posts);
// verify high level relation (from users)
const userPostsRel = em.relationOf(users.name, "posts");
@@ -191,7 +192,7 @@ describe("Relations", async () => {
const em = new EntityManager(entities, dummyConnection, relations);
// verify naming
const rel = em.relations.all[0];
const rel = em.relations.all[0]!;
expect(rel.source.entity.name).toBe(users.name);
expect(rel.source.reference).toBe(users.name);
expect(rel.target.entity.name).toBe(settings.name);
@@ -202,8 +203,8 @@ describe("Relations", async () => {
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name).length).toBe(1);
expect(em.relationsOf(users.name)[0].source.entity).toBe(users);
expect(em.relationsOf(users.name)[0].target.entity).toBe(settings);
expect(em.relationsOf(users.name)[0]!.source.entity).toBe(users);
expect(em.relationsOf(users.name)[0]!.target.entity).toBe(settings);
// verify high level relation (from users)
const userSettingRel = em.relationOf(users.name, settings.name);
@@ -323,7 +324,7 @@ describe("Relations", async () => {
);
// mutation info
expect(relations[0].helper(posts.name)!.getMutationInfo()).toEqual({
expect(relations[0]!.helper(posts.name)!.getMutationInfo()).toEqual({
reference: "categories",
local_field: undefined,
$set: false,
@@ -334,7 +335,7 @@ describe("Relations", async () => {
cardinality: undefined,
relation_type: "m:n",
});
expect(relations[0].helper(categories.name)!.getMutationInfo()).toEqual({
expect(relations[0]!.helper(categories.name)!.getMutationInfo()).toEqual({
reference: "posts",
local_field: undefined,
$set: false,
+2 -2
View File
@@ -1,6 +1,6 @@
import { describe, expect, test } from "bun:test";
import { Entity, NumberField, TextField } from "data";
import * as p from "data/prototype";
import { Entity } from "data/entities";
import { NumberField, TextField } from "data/fields";
describe("[data] Entity", async () => {
const entity = new Entity("test", [
@@ -1,12 +1,8 @@
import { afterAll, describe, expect, test } from "bun:test";
import {
Entity,
EntityManager,
ManyToManyRelation,
ManyToOneRelation,
SchemaManager,
} from "../../../src/data";
import { UnableToConnectException } from "../../../src/data/errors";
import { Entity, EntityManager } from "data/entities";
import { ManyToManyRelation, ManyToOneRelation } from "data/relations";
import { SchemaManager } from "data/schema/SchemaManager";
import { UnableToConnectException } from "data/errors";
import { getDummyConnection } from "../helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+4 -2
View File
@@ -1,6 +1,8 @@
import { afterAll, describe, expect, test } from "bun:test";
import { Entity, EntityManager, ManyToOneRelation, TextField } from "../../../src/data";
import { JoinBuilder } from "../../../src/data/entities/query/JoinBuilder";
import { Entity, EntityManager } from "data/entities";
import { ManyToOneRelation } from "data/relations";
import { TextField } from "data/fields";
import { JoinBuilder } from "data/entities/query/JoinBuilder";
import { getDummyConnection } from "../helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+6 -8
View File
@@ -1,18 +1,16 @@
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
import type { EventManager } from "../../../src/core/events";
import { Entity, EntityManager } from "data/entities";
import {
Entity,
EntityManager,
ManyToOneRelation,
MutatorEvents,
NumberField,
OneToOneRelation,
type RelationField,
RelationField,
RelationMutator,
TextField,
} from "../../../src/data";
import * as proto from "../../../src/data/prototype";
} from "data/relations";
import { NumberField, TextField } from "data/fields";
import * as proto from "data/prototype";
import { getDummyConnection, disableConsoleLog, enableConsoleLog } from "../../helper";
import { MutatorEvents } from "data/events";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
afterAll(afterAllCleanup);
+5 -12
View File
@@ -1,17 +1,10 @@
import { afterAll, describe, expect, test } from "bun:test";
import type { Kysely, Transaction } from "kysely";
import { Perf } from "core/utils";
import {
Entity,
EntityManager,
LibsqlConnection,
ManyToOneRelation,
RepositoryEvents,
TextField,
entity as $entity,
text as $text,
em as $em,
} from "data";
import { TextField } from "data/fields";
import { em as $em, entity as $entity, text as $text } from "data/prototype";
import { Entity, EntityManager } from "data/entities";
import { ManyToOneRelation } from "data/relations";
import { RepositoryEvents } from "data/events";
import { getDummyConnection } from "../helper";
type E = Kysely<any> | Transaction<any>;
@@ -1,7 +1,9 @@
// eslint-disable-next-line import/no-unresolved
import { afterAll, describe, expect, test } from "bun:test";
import { randomString } from "../../../src/core/utils";
import { Entity, EntityIndex, EntityManager, SchemaManager, TextField } from "../../../src/data";
import { randomString } from "core/utils";
import { Entity, EntityManager } from "data/entities";
import { TextField, EntityIndex } from "data/fields";
import { SchemaManager } from "data/schema/SchemaManager";
import { getDummyConnection } from "../helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
+1 -1
View File
@@ -1,6 +1,6 @@
import { describe, test, expect } from "bun:test";
import { getDummyConnection } from "../helper";
import { type WhereQuery, WhereBuilder } from "data";
import { WhereBuilder, type WhereQuery } from "data/entities/query/WhereBuilder";
function qb() {
const c = getDummyConnection();
+5 -10
View File
@@ -1,14 +1,9 @@
import { describe, expect, test } from "bun:test";
import {
Entity,
EntityManager,
ManyToManyRelation,
ManyToOneRelation,
PolymorphicRelation,
TextField,
WithBuilder,
} from "../../../src/data";
import * as proto from "../../../src/data/prototype";
import { Entity, EntityManager } from "data/entities";
import { ManyToManyRelation, ManyToOneRelation, PolymorphicRelation } from "data/relations";
import { TextField } from "data/fields";
import * as proto from "data/prototype";
import { WithBuilder } from "data/entities/query/WithBuilder";
import { schemaToEm } from "../../helper";
import { getDummyConnection } from "../helper";
@@ -1,5 +1,5 @@
import { afterAll, describe, expect, test } from "bun:test";
import { EntityManager } from "../../../../src/data";
import { EntityManager } from "data/entities/EntityManager";
import { getDummyConnection } from "../../helper";
const { dummyConnection, afterAllCleanup } = getDummyConnection();
@@ -1,9 +1,10 @@
import { bunTestRunner } from "adapter/bun/test";
import { describe, expect, test } from "bun:test";
import { BooleanField } from "../../../../src/data";
import { BooleanField } from "data/fields";
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
describe("[data] BooleanField", async () => {
fieldTestSuite({ expect, test }, BooleanField, { defaultValue: true, schemaType: "boolean" });
fieldTestSuite(bunTestRunner, BooleanField, { defaultValue: true, schemaType: "boolean" });
test("transformRetrieve", async () => {
const field = new BooleanField("test");
@@ -1,5 +1,5 @@
import { describe, expect, test } from "bun:test";
import { DateField, dateFieldConfigSchema } from "../../../../src/data";
import { describe, test } from "bun:test";
import { DateField } from "data/fields";
import { fieldTestSuite } from "data/fields/field-test-suite";
import { bunTestRunner } from "adapter/bun/test";
@@ -1,5 +1,6 @@
import { bunTestRunner } from "adapter/bun/test";
import { describe, expect, test } from "bun:test";
import { EnumField } from "../../../../src/data";
import { EnumField } from "data/fields";
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
function options(strings: string[]) {
@@ -8,7 +9,7 @@ function options(strings: string[]) {
describe("[data] EnumField", async () => {
fieldTestSuite(
{ expect, test },
bunTestRunner,
// @ts-ignore
EnumField,
{ defaultValue: "a", schemaType: "text" },
+1 -1
View File
@@ -2,7 +2,7 @@ import { describe, expect, test } from "bun:test";
import { baseFieldConfigSchema, Field } from "../../../../src/data/fields/Field";
import { fieldTestSuite } from "data/fields/field-test-suite";
import { bunTestRunner } from "adapter/bun/test";
import { stripMark } from "bknd/core";
import { stripMark } from "core/utils/schema";
describe("[data] Field", async () => {
class FieldSpec extends Field {
@@ -1,6 +1,7 @@
import { describe, expect, test } from "bun:test";
import { Entity, EntityIndex, Field } from "../../../../src/data";
import { s } from "bknd/core";
import { Entity } from "data/entities";
import { Field, EntityIndex } from "data/fields";
import { s } from "core/utils/schema";
class TestField extends Field {
protected getSchema(): any {
@@ -1,10 +1,11 @@
import { bunTestRunner } from "adapter/bun/test";
import { describe, expect, test } from "bun:test";
import { JsonField } from "../../../../src/data";
import { JsonField } from "data/fields";
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
describe("[data] JsonField", async () => {
const field = new JsonField("test");
fieldTestSuite({ expect, test }, JsonField, {
fieldTestSuite(bunTestRunner, JsonField, {
defaultValue: { a: 1 },
sampleValues: ["string", { test: 1 }, 1],
schemaType: "text",
@@ -1,5 +1,5 @@
import { describe, expect, test } from "bun:test";
import { JsonSchemaField } from "../../../../src/data";
import { JsonSchemaField } from "data/fields";
import { fieldTestSuite } from "data/fields/field-test-suite";
describe("[data] JsonSchemaField", async () => {
@@ -1,5 +1,6 @@
import { bunTestRunner } from "adapter/bun/test";
import { describe, expect, test } from "bun:test";
import { NumberField } from "../../../../src/data";
import { NumberField } from "data/fields";
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
describe("[data] NumberField", async () => {
@@ -15,5 +16,5 @@ describe("[data] NumberField", async () => {
expect(transformPersist(field2, 10000)).resolves.toBe(10000);
});
fieldTestSuite({ expect, test }, NumberField, { defaultValue: 12, schemaType: "integer" });
fieldTestSuite(bunTestRunner, NumberField, { defaultValue: 12, schemaType: "integer" });
});
@@ -1,5 +1,5 @@
import { describe, expect, test } from "bun:test";
import { PrimaryField } from "../../../../src/data";
import { PrimaryField } from "data/fields";
describe("[data] PrimaryField", async () => {
const field = new PrimaryField("primary");
@@ -1,5 +1,5 @@
import { describe, expect, test } from "bun:test";
import { TextField, textFieldConfigSchema } from "../../../../src/data";
import { TextField } from "data/fields";
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
import { bunTestRunner } from "adapter/bun/test";
@@ -1,11 +1,11 @@
import { describe, expect, it, test } from "bun:test";
import { Entity, type EntityManager } from "../../../../src/data";
import { Entity, type EntityManager } from "data/entities";
import {
type BaseRelationConfig,
EntityRelation,
EntityRelationAnchor,
RelationTypes,
} from "../../../../src/data/relations";
} from "data/relations";
class TestEntityRelation extends EntityRelation {
constructor(config?: BaseRelationConfig) {
@@ -24,11 +24,11 @@ class TestEntityRelation extends EntityRelation {
return this;
}
buildWith(a: any, b: any, c: any): any {
buildWith(): any {
return;
}
buildJoin(a: any, b: any): any {
buildJoin(): any {
return;
}
}