h-sphere_sql-seal/src/modules/api/module.ts
Kacper Kula 285684dfc4
Refactoring Project to use proper Inversion of Control (#171)
* chore: reworking plugin internals into modules

* feat: settings module is now working, added debug module, enabled new api module

* chore: restoring external API

* feat: refactoring project to use proper inversion of control

* feat: plugins can now be loaded in any order

* chore: final file migration, all typescript is in modules now

* chore: fixing dependencies of cellParser

* feat: csv and json views are only registered when they are not colliding with other plugins

* feat: fixed library behaviour on canvas
2025-08-10 09:34:54 +01:00

21 lines
No EOL
671 B
TypeScript

import { asFactory, buildContainer } from "@hypersphere/dity";
import { ApiInit } from "./init";
import { Plugin } from "obsidian";
import { SqlSealDatabase } from "../database/database";
import { RendererRegistry } from "../editor/renderer/rendererRegistry";
import { ModernCellParser } from "../syntaxHighlight/cellParser/ModernCellParser";
export const apiModule = buildContainer(c => c
.register({
init: asFactory(ApiInit)
})
.exports('init')
.externals<{
plugin: Plugin,
cellParser: ModernCellParser,
db: SqlSealDatabase,
rendererRegistry: RendererRegistry
}>()
)
export type ApiModule = typeof apiModule