Skip to content

Commit 8c823aa

Browse files
committed
feat(SDK): check for dependencies between viewer modules
1 parent 3036f50 commit 8c823aa

File tree

1 file changed

+14
-3
lines changed
  • engine/core/src/main/resources/view/core

1 file changed

+14
-3
lines changed

engine/core/src/main/resources/view/core/Drawer.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,22 @@ export class Drawer {
9292

9393
instantiateModules () {
9494
this.modules = {}
95-
for (const Module of config.modules) {
95+
96+
const moduleNames = config.modules.map(Module => Module.moduleName ?? Module.name)
97+
98+
for (let idx = 0; idx < config.modules.length; ++idx) {
99+
const Module = config.modules[idx]
96100
try {
97-
this.modules[Module.moduleName || Module.name] = new Module(assets)
101+
const dependencies = Module.dependencies ?? []
102+
for (let dep of dependencies) {
103+
if (!moduleNames.slice(0, idx).includes(dep)) {
104+
throw new Error(`Required module "${dep}" not yet loaded. Make sure it comes first in your config.js "modules" array`)
105+
}
106+
}
107+
108+
this.modules[Module.moduleName ?? Module.name] = new Module(assets)
98109
} catch (error) {
99-
this.handleModuleError(Module.moduleName || Module.name, error)
110+
this.handleModuleError(Module.moduleName ?? Module.name, error)
100111
}
101112
}
102113
}

0 commit comments

Comments
 (0)