h-sphere_sql-seal/src/modules/main/init.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

36 lines
No EOL
757 B
TypeScript

import { makeInjector } from "@hypersphere/dity";
import { MainModule } from "./module";
type InitFn = () => void
@(makeInjector<MainModule, 'factory'>()([
'settings.init',
'editor.init',
'syntaxHighlight.init',
'contextMenu.init',
'sync.init',
'debug.init',
'api.init'
]))
export class Init {
async make(
settingsInit: InitFn,
editorInit: InitFn,
highlighInit: InitFn,
contextMenu: InitFn,
syncInit: InitFn,
debugInit: InitFn,
apiInit: InitFn
) {
return () => {
settingsInit()
editorInit()
highlighInit()
contextMenu()
syncInit()
debugInit()
apiInit()
}
}
}