diff --git a/packages/form-js-viewer/package-lock.json b/packages/form-js-viewer/package-lock.json index 5fcd4f13d..82774903f 100644 --- a/packages/form-js-viewer/package-lock.json +++ b/packages/form-js-viewer/package-lock.json @@ -15,9 +15,9 @@ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "didi": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/didi/-/didi-5.2.1.tgz", - "integrity": "sha512-IKNnajUlD4lWMy/Q9Emkk7H1qnzREgY4UyE3IhmOi/9IKua0JYtYldk928bOdt1yNxN8EiOy1sqtSozEYsmjCg==" + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz", + "integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ==" }, "ids": { "version": "1.0.0", diff --git a/packages/form-js-viewer/package.json b/packages/form-js-viewer/package.json index 63b4ab737..1b4f5003c 100644 --- a/packages/form-js-viewer/package.json +++ b/packages/form-js-viewer/package.json @@ -40,7 +40,7 @@ "dependencies": { "@bpmn-io/snarkdown": "^2.1.0", "classnames": "^2.3.1", - "didi": "^5.2.1", + "didi": "^8.0.1", "ids": "^1.0.0", "min-dash": "^3.7.0", "preact": "^10.5.14", diff --git a/packages/form-js-viewer/src/util/injector.js b/packages/form-js-viewer/src/util/injector.js index 992bd7fa7..46a5fb06c 100644 --- a/packages/form-js-viewer/src/util/injector.js +++ b/packages/form-js-viewer/src/util/injector.js @@ -1,49 +1,10 @@ import { Injector } from 'didi'; export function createInjector(bootstrapModules) { - const modules = [], - components = []; - function hasModule(module) { - return modules.includes(module); - } + const injector = new Injector(bootstrapModules); - function addModule(module) { - modules.push(module); - } - - function visit(module) { - if (hasModule(module)) { - return; - } - - (module.__depends__ || []).forEach(visit); - - if (hasModule(module)) { - return; - } - - addModule(module); - - (module.__init__ || []).forEach(function(component) { - components.push(component); - }); - } - - bootstrapModules.forEach(visit); - - const injector = new Injector(modules); - - components.forEach(function(component) { - try { - injector[ typeof component === 'string' ? 'get' : 'invoke' ](component); - } catch (err) { - console.error('Failed to instantiate component'); - console.error(err.stack); - - throw err; - } - }); + injector.init(); return injector; } \ No newline at end of file