From ad93fe4b7519edada07801d306f37d7bd832b03e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:30:16 +0300 Subject: [PATCH] server-esm: Remove dynamic imports due to past circular issues --- src/becca/becca-interface.ts | 19 ++++--------------- src/becca/entities/rows.ts | 2 +- src/services/options.ts | 6 ++---- src/services/search/services/search.ts | 2 +- src/services/sync.ts | 3 +-- 5 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/becca/becca-interface.ts b/src/becca/becca-interface.ts index 09ae01959..562ec85db 100644 --- a/src/becca/becca-interface.ts +++ b/src/becca/becca-interface.ts @@ -155,9 +155,7 @@ export default class Becca { } getRevision(revisionId: string): BRevision | null { - const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); - - const BRevision = require('./entities/brevision'); // avoiding circular dependency problems + const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); return row ? new BRevision(row) : null; } @@ -179,9 +177,7 @@ export default class Becca { WHERE attachmentId = ? AND isDeleted = 0` : `SELECT * FROM attachments WHERE attachmentId = ? AND isDeleted = 0`; - const BAttachment = require('./entities/battachment'); // avoiding circular dependency problems - - return sql.getRows(query, [attachmentId]) + return sql.getRows(query, [attachmentId]) .map(row => new BAttachment(row))[0]; } @@ -194,7 +190,6 @@ export default class Becca { } getAttachments(attachmentIds: string[]): BAttachment[] { - const BAttachment = require('./entities/battachment'); // avoiding circular dependency problems return sql.getManyRows("SELECT * FROM attachments WHERE attachmentId IN (???) AND isDeleted = 0", attachmentIds) .map(row => new BAttachment(row)); } @@ -204,9 +199,7 @@ export default class Becca { return null; } - const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); - - const BBlob = require('./entities/bblob'); // avoiding circular dependency problems + const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); return row ? new BBlob(row) : null; } @@ -248,16 +241,12 @@ export default class Becca { } getRecentNotesFromQuery(query: string, params: string[] = []): BRecentNote[] { - const rows = sql.getRows(query, params); - - const BRecentNote = require('./entities/brecent_note'); // avoiding circular dependency problems + const rows = sql.getRows(query, params); return rows.map(row => new BRecentNote(row)); } getRevisionsFromQuery(query: string, params: string[] = []): BRevision[] { const rows = sql.getRows(query, params); - - const BRevision = require('./entities/brevision'); // avoiding circular dependency problems return rows.map(row => new BRevision(row)); } diff --git a/src/becca/entities/rows.ts b/src/becca/entities/rows.ts index 119d392ec..bb4c70a78 100644 --- a/src/becca/entities/rows.ts +++ b/src/becca/entities/rows.ts @@ -42,7 +42,7 @@ export interface OptionRow { name: string; value: string; isSynced: boolean; - utcDateModified: string; + utcDateModified?: string; } export interface EtapiTokenRow { diff --git a/src/services/options.ts b/src/services/options.ts index 0f2a81b57..bd9b289ad 100644 --- a/src/services/options.ts +++ b/src/services/options.ts @@ -1,4 +1,5 @@ import becca from "../becca/becca.js"; +import BOption from "../becca/entities/boption.js"; import { OptionRow } from '../becca/entities/rows'; import sql from "./sql.js"; @@ -68,10 +69,7 @@ function setOption(name: string, value: string | number | boolean) { } } -function createOption(name: string, value: string | number, isSynced: boolean) { - // to avoid circular dependency, need to find a better solution - const BOption = require('../becca/entities/boption'); - +function createOption(name: string, value: string, isSynced: boolean) { new BOption({ name: name, value: value, diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 755034477..5b289ff9d 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -16,6 +16,7 @@ import BAttribute from "../../../becca/entities/battribute.js"; import { SearchParams, TokenStructure } from "./types"; import Expression from "../expressions/expression.js"; import sql from "../../sql.js"; +import scriptService from "../../script.js"; function searchFromNote(note: BNote) { let searchResultNoteIds; @@ -78,7 +79,6 @@ function searchFromRelation(note: BNote, relationName: string) { return []; } - const scriptService = require('../../script'); // TODO: to avoid circular dependency const result = scriptService.executeNote(scriptNote, {originEntity: note}); if (!Array.isArray(result)) { diff --git a/src/services/sync.ts b/src/services/sync.ts index 7adea4206..f5b6e6178 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -19,6 +19,7 @@ import entityConstructor from "../becca/entity_constructor.js"; import becca from "../becca/becca.js"; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; import { CookieJar, ExecOpts } from './request_interface'; +import setupService from "./setup.js"; let proxyToggle = true; @@ -107,8 +108,6 @@ async function sync() { } async function login() { - const setupService = require('./setup'); // circular dependency issue - if (!await setupService.hasSyncServerSchemaAndSeed()) { await setupService.sendSeedToSyncServer(); }